Open jtveiten opened 6 years ago
Basically, there are two implementations of how to read ABAQUS input files. The first one is just reading the mesh, looks that it is triggering for *NODE, *ELEMENT, *NSET, *SURFACE, and writing data to dictionary where it later on goes to Mesh
struct:
mutable struct Mesh
nodes :: Dict{Int, Vector{Float64}}
node_sets :: Dict{Symbol, Set{Int}}
elements :: Dict{Int, Vector{Int}}
element_types :: Dict{Int, Symbol}
element_codes :: Dict{Int, Symbol}
element_sets :: Dict{Symbol, Set{Int}}
surface_sets :: Dict{Symbol, Vector{Tuple{Int, Symbol}}}
surface_types :: Dict{Symbol, Symbol}
end
In this first implementation, things are kept simple and only topological information is parsed from the file. The other implementation is parsing the whole file and fetching additional information from the model. It looks that in that implementation, sort of parsing the *SOLID SECTION is done in some level, but it looks that this is going to be a huge work of parsing all of the data from the input file correctly.
The Model
struct is following:
mutable struct Model
path :: String
name :: String
mesh :: Mesh
materials :: Dict{Symbol, AbstractMaterial}
properties :: Vector{AbstractProperty}
boundary_conditions :: Vector{AbstractBoundaryCondition}
steps :: Vector{AbstractStep}
end
Here, solid section is parsed to properties
field.
keyword *solid section isn't parsed correctly if used for t2d2 elements when given area of truss in line below keyword
The input snippet is:
When parsed, it doesn't fail when you read the model, but no area is defined
If the input is like this:
the parsing of the model will fail.
Without being too well versed in the code, it may look like the solid section needs to be closed in the second case and support that nu isn't given in the material definition.
Here is the full input file tried