/AbaqusReader.jl

AbaqusReader.jl is a parse for ABAQUS FEM models. It's capable of parsing the geometry accurately, including surface sets, node sets, and other relevant geometrical data used in FEM calculations. Other option is to parse whole model, including boundary conditions, material data and load steps.

Primary LanguageJuliaMIT LicenseMIT

AbaqusReader.jl

Build StatusCoverage Status

AbaqusReader.jl can be used to parse ABAQUS .inp file format. Two functions is exported: abaqus_read_mesh(filename::String) can be used to parse mesh to simple Dict-based structure. With function abaqus_read_model(filename::String) it's also possible to parse more information from model, like boundary conditions and steps.

Reading mesh is made simple:

julia> using AbaqusReader
julia> filename = Pkg.dir("AbaqusReader", "test", "test_parse_mesh", "cube_tet4.inp")
julia> mesh = abaqus_read_mesh(filename)
Dict{String,Dict} with 7 entries:
  "nodes"         => Dict(7=>[0.0, 10.0, 10.0],4=>[10.0, 0.0, 0.0],9=>[10.0, 10…
  "element_sets"  => Dict("CUBE"=>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1…
  "element_types" => Dict{Integer,Symbol}(Pair{Integer,Symbol}(2, :Tet4),Pair{I…
  "elements"      => Dict{Integer,Array{Integer,1}}(Pair{Integer,Array{Integer,…
  "surface_sets"  => Dict("LOAD"=>Tuple{Int64,Symbol}[(16, :S1), (8, :S1)],"ORD…
  "surface_types" => Dict("LOAD"=>:ELEMENT,"ORDER"=>:ELEMENT)
  "node_sets"     => Dict("SYM23"=>[5, 6, 7, 8],"SYM12"=>[5, 6, 3, 4],"NALL"=>[…

Like said, mesh is a simple dictionary containing other dictionaries like elements, nodes, element_sets and so on. This is a good starting point to construct own finite element implementations based on real models done using ABAQUS.

If boundary conditions are also requested, abaqus_read_model must be used:

julia> model = abaqus_read_model("abaqus_file.inp")

This returns AbaqusReader.Model instance.

Supported elements

  • C3D4
  • C3D8
  • C3D10
  • C3D20
  • C3D20E
  • S3
  • STRI65
  • CPS4
  • T2D2
  • T3D2