Boundary Data

Dirichlet Boundary Data

BoundaryDatas carry the boundary data for each unknown in certain regions. Each regions can have a different AbstractBoundaryType and an associated Data Function. This data function than will now if it depends on space or time variables and will assemble itself accordingly.

AbstractBoundaryTypeSubtypescauses
DirichletBoundary
BestapproxDirichletBoundarycomputation of Dirichlet data by bestapproximation along boundary faces
InterpolateDirichletBoundarycomputation of Dirichlet data by interpolation along boundary faces
HomogeneousDirichletBoundaryzero Dirichlet data on all dofs
GradientRobustMultiPhysics.BoundaryDataType
mutable struct BoundaryData{BDT<:AbstractBoundaryType, MType, FType}

collects boundary data for a component of the system and allows to specify a AbstractBoundaryType for each boundary region so far only DirichletBoundary types (see above)

source
GradientRobustMultiPhysics.add_boundarydata!Function
add_boundarydata!(
    PDE::PDEDescription,
    position::Int64,
    regions,
    btype::Type{<:AbstractBoundaryType};
    data,
    mask
) -> Vector{BoundaryData}

Adds the given boundary data with the specified AbstractBoundaryType at the specified position in the BoundaryOperator of the PDEDescription.

Note: If the data function is time-dependent (see User Data documentation) it is evaluated in any advance! step of a TimeControlSolver.

source

Remarks

  • Neumann boundary data can be implemented via a RhsOperator with AT = ON_BFACES and specified boundary regions
  • Periodic boundary data can be implemented via CombineDofs (see ExampleA10)
  • Symmetry boundary can be implemented by penalisation as an BilinearForm on AT = ON_BFACES and specified boundary regions with operator NormalFlux and some penalty factor.
  • InterpolateDirichletBoundary and HomogeneousDirichletBoundary allow for a mask that allows to apply the boundary data only to certain components (epxerimental feature)