Element Interface

Entry Points

Thunderbolt.assemble_element!Function
assemble_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
source
Thunderbolt.assemble_face!Function
assemble_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
source
Thunderbolt.assemble_interface!Function
assemble_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
source

Common

Composite

Thunderbolt.CompositeVolumetricElementCacheType

This 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)

source

Bilinear

Thunderbolt.BilinearMassIntegratorType
BilinearMassIntegrator{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)$.

source
Thunderbolt.BilinearDiffusionIntegratorType
BilinearDiffusionIntegrator{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.

source

Solid Mechanics

Elements