Element Interface
Entry Points
Thunderbolt.AbstractVolumetricElementCache
— TypeSupertype for all caches to integrate over volumes.
Interface:
setup_element_cache(model, qr, ip, sdh)
Thunderbolt.AbstractSurfaceElementCache
— TypeSupertype for all caches to integrate over surfaces.
Interface:
setup_boundary_cache(model, qr, ip, sdh)
Thunderbolt.AbstractInterfaceElementCache
— TypeSupertype for all caches to integrate over interfaces.
Interface:
setup_interface_cache(model, qr, ip, sdh)
Thunderbolt.assemble_element!
— Functionassemble_element!(Kₑ::AbstractMatrix, cell::CellCache, element_cache::AbstractVolumetricElementCache, time)
Main entry point for bilinear operators
assemble_element!(Kₑ::AbstractMatrix, uₑ::AbstractVector, cell::CellCache, element_cache::AbstractVolumetricElementCache, time)
Update element matrix in nonlinear operators
assemble_element!(Kₑ::AbstractMatrix, residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, element_cache::AbstractVolumetricElementCache, time)
Update element matrix and residual in nonlinear operators
assemble_element!(residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, element_cache::AbstractVolumetricElementCache, time)
Update residual in nonlinear operators
The notation is as follows.
\[K_e\]
the element stiffness matrix\[u_e\]
the element unknowns\[residual_e\]
the element residual
Thunderbolt.assemble_face!
— Functionassemble_face!(Kₑ::AbstractMatrix, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Main entry point for bilinear operators
assemble_face!(Kₑ::AbstractMatrix, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update face matrix in nonlinear operators
assemble_face!(Kₑ::AbstractMatrix, residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update face matrix and residual in nonlinear operators
assemble_face!(residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update residual in nonlinear operators
The notation is as follows.
\[K_e\]
the element stiffness matrix\[u_e\]
the element unknowns\[residual_e\]
the element residual
Thunderbolt.assemble_interface!
— Functionassemble_interface!(Kₑ::AbstractMatrix, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Main entry point for bilinear operators
assemble_interface!(Kₑ::AbstractMatrix, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update face matrix in nonlinear operators
assemble_interface!(Kₑ::AbstractMatrix, residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update face matrix and residual in nonlinear operators
assemble_interface!(residualₑ::AbstractVector, uₑ::AbstractVector, cell::CellCache, face_cache::AbstractSurfaceElementCache, time)
Update residual in nonlinear operators
The notation is as follows.
\[K_e\]
the element pair stiffness matrix\[u_e\]
the element pair unknowns\[residual_e\]
the element pair residual
Common
Thunderbolt.AnalyticalCoefficientElementCache
— TypeAnalyticalCoefficientElementCache(f(x,t)->..., nonzero_in_time_intervals, cellvalues)
Analytical coefficient described by a function in space and time. Can be sparse in time.
Thunderbolt.SimpleFacetCache
— TypeStandard cache for surface integrals.
Composite
Thunderbolt.CompositeVolumetricElementCache
— TypeThis cache allows to combine multiple elements over the same volume. If surface caches are passed they are handled properly. This requred dispatching isfacetincache(facet::FacetIndex, geometrycache, my_cache::MyCacheType)
Thunderbolt.CompositeSurfaceElementCache
— TypeThis cache allows to combine multiple elements over the same surface.
Thunderbolt.CompositeInterfaceElementCache
— TypeThis cache allows to combine multiple elements over the same interface.
Bilinear
Thunderbolt.BilinearMassIntegrator
— TypeBilinearMassIntegrator{MT, CV}
Represents the integrand of the bilinearform $a(u,v) = \int \rho(x) v(x) u(x) dx$ for $u,v$ from the same function space with some given density field $\rho(x)$.
Thunderbolt.BilinearMassElementCache
— TypeThe cache associated with BilinearMassIntegrator
to assemble element mass matrices.
Thunderbolt.BilinearDiffusionIntegrator
— TypeBilinearDiffusionIntegrator{CoefficientType}
Represents the integrand of the bilinear form $a(u,v) = -\int \nabla v(x) \cdot D(x) \nabla u(x) dx$ for a given diffusion tensor $D(x)$ and $u,v$ from the same function space.
Thunderbolt.BilinearDiffusionElementCache
— TypeThe cache associated with BilinearDiffusionIntegrator
to assemble element diffusion matrices.
Solid Mechanics
Elements
Thunderbolt.StructuralElementCache
— TypeStructuralElementCache
A generic cache to assemble elements coming from a StructuralModel.