Domains
A domain in Cthonios is a group of element sections and all the associated datastructures necessary to run a finite element calculation.
Index
Cthonios.AbstractDomain — Typeabstract type AbstractDomainAbstract base type for domains.
Cthonios.Domain — TypeDomain(
mesh_file::String,
sections_in
) -> Cthonios.Domain{C, D, S, DBCs, Vector{Int64}, NBCs, NS} where {C<:(FiniteElementContainers.VectorizedNodalField{_A, 2, _B, _C, _D} where {_A, _B, _C, _D<:AbstractVector{_A}}), D<:(DofManager{Int64, _A, _B, Vector{Float64}, _C} where {_A, _B, _C<:(AbstractArray{Int64})}), S<:NamedTuple, DBCs<:NamedTuple, NBCs<:NamedTuple, NS<:NamedTuple}
Domain(
mesh_file::String,
sections_in,
dbcs_in
) -> Cthonios.Domain{C, D, S, DBCs, Vector{Int64}, NBCs, NS} where {C<:(FiniteElementContainers.VectorizedNodalField{_A, 2, _B, _C, _D} where {_A, _B, _C, _D<:AbstractVector{_A}}), D<:(DofManager{Int64, _A, _B, Vector{Float64}, _C} where {_A, _B, _C<:(AbstractArray{Int64})}), S<:NamedTuple, DBCs<:NamedTuple, NBCs<:NamedTuple, NS<:NamedTuple}
Domain(
mesh_file::String,
sections_in,
dbcs_in,
nbcs_in
) -> Cthonios.Domain{C, D, S, DBCs, Vector{Int64}, NBCs, NS} where {C<:(FiniteElementContainers.VectorizedNodalField{_A, 2, _B, _C, _D} where {_A, _B, _C, _D<:AbstractVector{_A}}), D<:(DofManager{Int64, _A, _B, Vector{Float64}, _C} where {_A, _B, _C<:(AbstractArray{Int64})}), S<:NamedTuple, DBCs<:NamedTuple, NBCs<:NamedTuple, NS<:NamedTuple}
Domain(
mesh_file::String,
sections_in,
dbcs_in,
nbcs_in,
contact_pairs_in
) -> Cthonios.Domain{C, D, S, DBCs, Vector{Int64}, NBCs, NS} where {C<:(FiniteElementContainers.VectorizedNodalField{_A, 2, _B, _C, _D} where {_A, _B, _C, _D<:AbstractVector{_A}}), D<:(DofManager{Int64, _A, _B, Vector{Float64}, _C} where {_A, _B, _C<:(AbstractArray{Int64})}), S<:NamedTuple, DBCs<:NamedTuple, NBCs<:NamedTuple, NS<:NamedTuple}
Constructor for a Domain type. mesh_file - File name of a mesh to read. sections_in - A set of Sections. dbcs_in - A set of DirichletBCs. nbcs_in - A set of NeumannBCs
Cthonios.Domain — Typestruct Domain{C, D, S, DBCs, DDofs, NBCs, NS} <: Cthonios.AbstractDomaincoords::Anydof::Anysections::Anydirichlet_bcs::Anydirichlet_dofs::Anyneumann_bcs::Anyneumann_bc_sections::Any
Domain type to hold information like bcs, sections, etc. Note that the DofManager unknown dofs are not automatically set. After setting up a Domain you will need to run, update_unknown_dofs!.
mesh - Handle to an open FileMesh. dof - DofManager object. sections - A set of SectionInternals. dirichlet_bcs - A set of DirichletBCInternals. dirichlet_dofs - A set of dofs to apply dirichlet dofs. This is mainly for book-keeping purposes
Cthonios.DynamicAssembler — MethodDynamicAssembler(
domain::Cthonios.Domain
) -> FiniteElementContainers.DynamicAssembler{Float64, Int64, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, Vector{Int64}, Vector{Int64}, Vector{Float64}} where {_A<:AbstractVector{Int64}, _B<:AbstractVector{Int64}, _C<:AbstractVector{Int64}, _D<:AbstractVector{Int64}, _E<:AbstractVector{Int64}, _F<:NodalField, _G<:AbstractVector{Float64}, _H<:AbstractVector{Float64}, _I, _J, _K, _L}
some FEMContainers abuse
Cthonios.StaticAssembler — MethodStaticAssembler(
domain::Cthonios.Domain
) -> FiniteElementContainers.StaticAssembler{Float64, Int64, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, Vector{Int64}, Vector{Int64}, Vector{Float64}} where {_A<:AbstractVector{Int64}, _B<:AbstractVector{Int64}, _C<:AbstractVector{Int64}, _D<:AbstractVector{Int64}, _E<:AbstractVector{Int64}, _F<:NodalField, _G<:AbstractVector{Float64}, _H, _I, _J, _K}
some FEMContainers abuse
Cthonios.create_fields — Methodcreate_fields(domain::Cthonios.Domain) -> Any
Create a zero field based on domain.dof.
Cthonios.create_unknowns — Methodcreate_unknowns(domain::Cthonios.Domain) -> Any
Creates an unknown vector based on domain.dof
Cthonios.dirichlet_dofs — Methoddirichlet_dofs(domain::Cthonios.Domain) -> Any
Returns a sorted and unique vector of dirichlet dofs.
Cthonios.update_dirichlet_vals! — Methodupdate_dirichlet_vals!(Ubc, domain::Cthonios.Domain, X, t)
Updates the values in Ubc with dirichlet boundary conditions in domain. Ubc - BC values to fill. domain - Domain. X - Nodal coordinates. t - A scalar time value to use in the BC functions.
Cthonios.update_field_bcs! — Methodupdate_field_bcs!(U, domain::Cthonios.Domain, Ubc)
Updates the Dirichlet BC dofs in U with the values in Ubc. U - Nodal field to update. domain - Domain. Ubc - BC values to fill.
Cthonios.update_field_unknowns! — Methodupdate_field_unknowns!(U, domain::Cthonios.Domain, Uu)
Updates the unknown dofs in U with the values in Uu. U - Nodal field to update. domain - Domain. Uu - Unknown values to fill.
Cthonios.update_unknown_dofs! — Methodupdate_unknown_dofs!(domain::Cthonios.Domain, asm)
Update the unknown dofs in domain.dof, domain.dirichlet_dofs, and asm. TODO maybe move domain.dirichlet_dofsto the$DofManager$in$FiniteElementContainers$.$domain$- Domain object.$asm$` - Assembly object.
Cthonios.update_unknown_dofs! — Methodupdate_unknown_dofs!(domain::Cthonios.Domain)
Update the unknown dofs in domain.dof and domain.dirichlet_dofs. TODO maybe move domain.dirichlet_dofsto the$DofManager$in$FiniteElementContainers$`.