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.InterpolateBoundaryDataType
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 signature data!(result, qpinfo) that computes the desired boundary values at each quadrature point. The qpinfo 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: 0

  • name: name for operator used in printouts. Default: ''BoundaryData''

  • params: array of parameters that should be made available in qpinfo argument of kernel function. Default: nothing

  • penalty: penalty for fixed degrees of freedom. Default: 1.0e30

  • plot: plot unicode plot of boundary data into terminal when assembled. Default: false

  • regions: subset of regions where operator should be assembly only. Default: Any[]

  • verbosity: verbosity level. Default: 0

source
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.

source
ExtendableFEM.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.

source
ExtendableFEM.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).

source
ExtendableFEM.fixed_valsMethod
fixed_vals(O::InterpolateBoundaryData)

returns the currently assembled values for the fixed degrees of freedom of O

source