GridapROMs.ParamFESpaces
GridapROMs.ParamFESpaces — Module
module ParamFESpacesParametric 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 areParamArrays (one block per parameter sample).MultiFieldParamFESpace— multi-field counterpart, holding a vector ofSingleFieldParamFESpaces and forwarding the GridapMultiFieldFESpaceinterface.TrivialParamFESpace— wraps a plain GridapFESpaceas 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 aRealisationis supplied.ParamFEFunction(SingleFieldParamFEFunction,MultiFieldParamFEFunction) — GridapFEFunctioncarrying aParamArrayof free DOF values.- Assemblers —
ParamAssemblers.jlextends Gridap'sSparseMatrixAssemblerto 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.
GridapROMs.ParamFESpaces.MultiFieldParamFEFunction — Type
struct MultiFieldParamFEFunction{T<:MultiFieldCellField} <: ParamFEFunction
single_fe_functions::Vector{<:SingleFieldParamFEFunction}
free_values::AbstractArray
fe_space::MultiFieldFESpace
multi_cell_field::T
endGridapROMs.ParamFESpaces.MultiFieldParamFESpace — Type
const MultiFieldParamFESpace = MultiFieldFESpaceGridapROMs.ParamFESpaces.ParamFEFunction — Type
abstract type ParamFEFunction <: FEFunction endParametric extension of a FEFunction in Gridap. Subtypes:
GridapROMs.ParamFESpaces.ParamTrialFESpace — Type
const ParamTrialFESpace = UnEvalTrialFESpaceGridapROMs.ParamFESpaces.SingleFieldParamFEFunction — Type
struct SingleFieldParamFEFunction{T<:CellField} <: ParamFEFunction
cell_field::T
cell_dof_values::AbstractArray{<:ParamBlock}
free_values::AbstractParamVector{<:Number}
dirichlet_values::AbstractParamVector{<:Number}
fe_space::SingleFieldFESpace
endGridapROMs.ParamFESpaces.SingleFieldParamFESpace — Type
abstract type SingleFieldParamFESpace{S} <: SingleFieldFESpace endParametric extension of a SingleFieldFESpace in Gridap. The FE spaces inhereting are (trial) spaces on which we can easily define a ParamFEFunction.
Subtypes:
GridapROMs.ParamFESpaces.TrialParamFESpace — Type
TrialParamFESpace{S} <: SingleFieldParamFESpace{S}Trial FE space equipped with parametric dirichlet values
GridapROMs.ParamFESpaces.TrivialParamFESpace — Type
TrivialParamFESpace{S} <: SingleFieldParamFESpace{S}Wrapper for non-parametric FE spaces that we wish assumed a parametric length
GridapROMs.ParamFESpaces.UnEvalTrialFESpace — Type
struct UnEvalTrialFESpace{A,B} <: SingleFieldFESpace
space::A
space0::B
dirichlet::Union{Function,AbstractVector{<:Function}}
endStruct 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.
GridapROMs.ParamDataStructures.parameterise — Method
parameterise(a::SparseMatrixAssembler,plength::Int) -> SparseMatrixAssemblerReturns 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
GridapROMs.ParamFESpaces.HomogeneousTrialParamFESpace — Method
HomogeneousTrialParamFESpace(U::SingleFieldFESpace,plength::Int) -> TrialParamFESpaceReturns a TrialParamFESpace equipped with homogeneous parametric dirichlet values
GridapROMs.ParamFESpaces.TrialParamFESpace! — Method
TrialParamFESpace!(dir_values::AbstractParamVector,space::SingleFieldFESpace,objects
) -> TrialParamFESpaceAllows do-block syntax for the construction of a TrialParamFESpace
GridapROMs.ParamFESpaces.get_vector_type2 — Method
get_vector_type2(f::SingleFieldParamFESpace) -> TypeReturns the vector type of the underlying un-parametric FESpace contained in f
GridapROMs.ParamFESpaces.param_zero_dirichlet_values — Function
param_zero_dirichlet_values(f::FESpace,L::Integer=param_length(f)) -> AbstractParamVectorParametric version of the function zero_dirichlet_values in Gridap
GridapROMs.ParamFESpaces.param_zero_free_values — Function
param_zero_free_values(f::FESpace,L::Integer=param_length(f)) -> AbstractParamVectorParametric version of the function zero_free_values in Gridap