GridapROMs.ParamFESpaces

GridapROMs.ParamFESpacesModule
module ParamFESpaces

Parametric FE spaces and FE functions for multi-sample parameter studies.

Wraps Gridap's FESpace layer so that every DOF array can hold a full batch of parameter samples simultaneously. The module provides:

  • SingleFieldParamFESpace — a single-field FE space whose free-value and Dirichlet-value arrays are ParamArrays (one block per parameter sample).
  • MultiFieldParamFESpace — multi-field counterpart, holding a vector of SingleFieldParamFESpaces and forwarding the Gridap MultiFieldFESpace interface.
  • TrivialParamFESpace — wraps a plain Gridap FESpace as a trivially parametric space (same DOF values for every parameter sample).
  • TrialParamFESpace / HomogeneousTrialParamFESpace — trial spaces with parameter-dependent Dirichlet boundary conditions; TrialParamFESpace! mutates an existing space in-place.
  • UnEvalTrialFESpace / ParamTrialFESpace — lazy (unevaluated) trial FE spaces that instantiate Dirichlet values only when a Realisation is supplied.
  • ParamFEFunction (SingleFieldParamFEFunction, MultiFieldParamFEFunction) — Gridap FEFunction carrying a ParamArray of free DOF values.
  • AssemblersParamAssemblers.jl extends Gridap's SparseMatrixAssembler to fill parametric matrices and vectors in a single assembly pass.

The AgFEM tools from GridapEmbedded are available for aggregated FE spaces on cut meshes; see Extensions for the full embedded FEM machinery.

source
GridapROMs.ParamFESpaces.SingleFieldParamFEFunctionType
struct SingleFieldParamFEFunction{T<:CellField} <: ParamFEFunction
  cell_field::T
  cell_dof_values::AbstractArray{<:ParamBlock}
  free_values::AbstractParamVector{<:Number}
  dirichlet_values::AbstractParamVector{<:Number}
  fe_space::SingleFieldFESpace
end
source
GridapROMs.ParamFESpaces.UnEvalTrialFESpaceType
struct UnEvalTrialFESpace{A,B} <: SingleFieldFESpace
  space::A
  space0::B
  dirichlet::Union{Function,AbstractVector{<:Function}}
end

Struct representing trial FE spaces that are not evaluated yet. This may include FE spaces representing transient problems (although the implementation in Gridap, called TransientTrialFESpace, does not fall into this category), parametric problems, and transient-parametric problems.

source
GridapROMs.ParamDataStructures.parameteriseMethod
parameterise(a::SparseMatrixAssembler,plength::Int) -> SparseMatrixAssembler

Returns an assembler that also stores the parametric length of r. This function is to be used to assemble parametric residuals and Jacobians. The assembly routines follow the same pipeline as in Gridap

source