Meshes
Meshes in FiniteElementContainers leverage a very abstract interface. Currently, only an Exodus interface is directly supported within the main package but others could be readily supported through package extensions which we are planning on.
FiniteElementContainers.AbstractMesh — Type
abstract type AbstractMeshFiniteElementContainers.FileMesh — Type
struct FileMesh{MeshObj} <: FiniteElementContainers.AbstractMeshfile_name::Stringmesh_obj::Any
Mesh type that has a handle to an open mesh file object. This type's methods are "overridden" in extensions.
See FiniteElementContainersExodusExt for an example.
FiniteElementContainers.file_name — Method
file_name(mesh::FiniteElementContainers.AbstractMesh) -> Any
Returns file name for an mesh type
Structured Meshes
Simple structured meshes on rectangles or parallepipeds can be create through StructuredMesh mesh type.
FiniteElementContainers.StructuredMesh — Type
struct StructuredMesh{ND, RT<:Number, IT<:Integer, EConns} <: FiniteElementContainers.AbstractMeshnodal_coords::H1Field{RT, Vector{RT}, ND} where {ND, RT<:Number}element_block_names::Vector{Symbol}element_types::Vector{Symbol}element_conns::Anyelement_id_maps::Dict{Symbol, Vector{IT}} where IT<:Integernode_id_map::Vector{IT} where IT<:Integernodeset_nodes::Dict{Symbol, Vector{IT}} where IT<:Integersideset_elems::Dict{Symbol, Vector{IT}} where IT<:Integersideset_nodes::Dict{Symbol, Vector{IT}} where IT<:Integersideset_sides::Dict{Symbol, Vector{IT}} where IT<:Integersideset_side_nodes::Dict{Symbol, Matrix{IT}} where IT<:Integer
Unstructured Meshes
Unstructured meshes (e.g. those read from a file created by a mesher) can be created with the following mesh type
FiniteElementContainers.UnstructuredMesh — Type
struct UnstructuredMesh{MeshObj, ND, RT<:Number, IT<:Integer, EConns, EdgeConns, FaceConns} <: FiniteElementContainers.AbstractMeshmesh_obj::Anynodal_coords::H1Field{RT, Vector{RT}, ND} where {ND, RT<:Number}element_block_names::Vector{Symbol}element_types::Vector{Symbol}element_conns::Anyelement_id_maps::Dict{Symbol, Vector{IT}} where IT<:Integernode_id_map::Vector{IT} where IT<:Integernodeset_nodes::Dict{Symbol, Vector{IT}} where IT<:Integersideset_elems::Dict{Symbol, Vector{IT}} where IT<:Integersideset_nodes::Dict{Symbol, Vector{IT}} where IT<:Integersideset_sides::Dict{Symbol, Vector{IT}} where IT<:Integersideset_side_nodes::Dict{Symbol, Matrix{IT}} where IT<:Integeredge_conns::Anyface_conns::Any
FiniteElementContainers.UnstructuredMesh — Method
UnstructuredMesh(
file_type::FiniteElementContainers.AbstractMeshType,
file_name::String,
create_edges::Bool,
create_faces::Bool
) -> UnstructuredMesh{MeshObj, ND, RT, IT, EConns, EdgeConns, Nothing} where {MeshObj, ND, RT<:Number, IT<:Integer, EConns, EdgeConns}
FiniteElementContainers.UnstructuredMesh — Method
UnstructuredMesh(
file_name::String;
create_edges,
create_faces
) -> UnstructuredMesh{MeshObj, ND, RT, IT, EConns, EdgeConns, Nothing} where {MeshObj, ND, RT<:Number, IT<:Integer, EConns, EdgeConns}
FiniteElementContainers.UnstructuredMesh — Method
UnstructuredMesh(
file::FileMesh{T},
create_edges::Bool,
create_faces::Bool
) -> UnstructuredMesh{MeshObj, ND, RT, IT, EConns, EdgeConns, Nothing} where {MeshObj, ND, RT<:Number, IT<:Integer, EConns, EdgeConns}
Exodus interface API
FiniteElementContainers.FileMesh — Method
struct FileMesh{MeshObj} <: FiniteElementContainers.AbstractMeshfile_name::Stringmesh_obj::Any
FiniteElementContainers.coordinates — Method
coordinates(
mesh::FileMesh{Exodus.ExodusDatabase{M, I, B, F}}
) -> Matrix
FiniteElementContainers.element_block_id_map — Method
element_block_id_map(
mesh::FileMesh{<:Exodus.ExodusDatabase},
id
) -> Any
FiniteElementContainers.element_block_ids — Method
element_block_ids(
mesh::FileMesh{<:Exodus.ExodusDatabase}
) -> Any
FiniteElementContainers.element_block_names — Method
element_block_names(
mesh::FileMesh{<:Exodus.ExodusDatabase}
) -> Any
FiniteElementContainers.node_cmaps — Method
node_cmaps(
mesh::FileMesh{<:Exodus.ExodusDatabase},
rank
) -> Vector
FiniteElementContainers.nodeset_ids — Method
nodeset_ids(mesh::FileMesh{<:Exodus.ExodusDatabase}) -> Any
FiniteElementContainers.nodeset_names — Method
nodeset_names(
mesh::FileMesh{<:Exodus.ExodusDatabase}
) -> Any
FiniteElementContainers.sideset_ids — Method
sideset_ids(mesh::FileMesh{<:Exodus.ExodusDatabase}) -> Any
FiniteElementContainers.sideset_names — Method
sideset_names(
mesh::FileMesh{<:Exodus.ExodusDatabase}
) -> Any