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
— TypeInterpolateBoundaryData(
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. Theqpinfo
argument 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!
— Methodapply!(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.
ExtendableFEM.apply_penalties!
— Methodapply_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.
ExtendableFEM.assemble!
— Methodassemble!(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).
ExtendableFEM.fixed_dofs
— Methodfixed_dofs(O::InterpolateBoundaryData)
returns the fixed degrees of freedoms of O
ExtendableFEM.fixed_vals
— Methodfixed_vals(O::InterpolateBoundaryData)
returns the currently assembled values for the fixed degrees of freedom of O