InterpolateBoundaryData
In finite element simulations, it is often necessary to impose non-homogeneous Dirichlet boundary conditions. The InterpolateBoundaryDataOperator in ExtendableFEM provides a convenient way to prescribe interpolated values on the boundary.
API Reference
ExtendableFEM.InterpolateBoundaryData — Type
InterpolateBoundaryData(
u;
...
) -> InterpolateBoundaryData{_A, Nothing} where _A
InterpolateBoundaryData(
u,
data;
kwargs...
) -> InterpolateBoundaryData
Construct an operator that enforces the unknown u to match the standard finite element interpolation of a user-provided boundary data function on the boundary of the domain.
Arguments
u: The unknown (field variable) to be constrained.data: A function with signaturedata!(result, qpinfo)that computes the desired boundary values at each quadrature point. Theqpinfoargument provides information such as global coordinates (qpinfo.x).
Keyword Arguments
bonus_quadorder: additional quadrature order added to the quadorder chosen by the interpolator. Default: 0name: name for operator used in printouts. Default: ''BoundaryData''params: array of parameters that should be made available in qpinfo argument of kernel function. Default: nothingpenalty: penalty for fixed degrees of freedom. Default: 1.0e30plot: plot unicode plot of boundary data into terminal when assembled. Default: falseregions: subset of regions where operator should be assembly only. Default: Any[]verbosity: verbosity level. Default: 0
ExtendableFEM.apply! — Method
apply!(U::FEVectorBlock, O::InterpolateBoundaryData; offset = 0, kwargs...)applies the boundary data of O to U, i.e., sets the boundary dofs to the correct values that have been computed during the last assemble! call.
sourceExtendableFEM.apply_penalties! — Method
apply_penalties!(A, b, sol, O::InterpolateBoundaryData{UT}, SC::SolverConfiguration; kwargs...)modifies the linear system A|b such that the boundary dofs are penalized and attain the correct values from the last assemble! call of O. Also applies the correct values to sol.
sourceExtendableFEM.assemble! — Method
assemble!(A, b, sol, O::InterpolateBoundaryData{UT}, SC::SolverConfiguration; kwargs...)assembles the correct boundary values for O by interpolating the boundary data with the current kwargs (where e.g. time and params might have changed).
sourceExtendableFEM.fixed_dofs — Method
ExtendableFEM.fixed_vals — Method
fixed_vals(O::InterpolateBoundaryData)returns the currently assembled values for the fixed degrees of freedom of O
source