GridapROMs.ParamFESpaces
GridapROMs.Extensions.BlockExtension
— Typestruct BlockExtension <: ExtensionStyle
extension::Vector{<:ExtensionStyle}
end
Extension style for multi-field variables
GridapROMs.Extensions.DirectSumFESpace
— Typestruct DirectSumFESpace{S<:SingleFieldFESpace,T<:SingleFieldFESpace} <: SingleFieldFESpace
space::EmbeddedFESpace{S,T}
complementary::EmbeddedFESpace
end
FE space which essentially acts as a wrapper around an EmbeddedFESpace
space
, but also stores its complementary space complementary
obtained by calling complementary_space
. This interface is useful for defining extension operators from space
onto complementary
GridapROMs.Extensions.EmbeddedFESpace
— Typestruct EmbeddedFESpace{S<:SingleFieldFESpace,T<:SingleFieldFESpace} <: SingleFieldFESpace
space::S
bg_space::T
fdof_to_bg_fdofs::AbstractVector
ddof_to_bg_ddofs::AbstractVector
bg_cell_dof_ids::AbstractArray
end
Represents a FE space space
embedded in a background FE space bg_space
. Fields:
space
: target FE spacebg_space
: background FE space, which can be envisioned as the parent ofspace
fdof_to_bg_fdofs
: maps the active free DOFs inspace
to the active free
DOFs in bg_space
ddof_to_bg_ddofs
: maps the active dirichlet DOFs inspace
to the active dirichlet
DOFs in bg_space
bg_cell_dof_ids
: connectivity ofspace
on the background mesh, meaning that
the dof range and the number of cells are that of bg_space
. NOTE: the DOFs here are NOT active, they are the internal ones
GridapROMs.Extensions.ExtensionAssembler
— Typestruct ExtensionAssembler <: SparseMatrixAssembler
assem::SparseMatrixAssembler
trial_dof_to_bg_dofs::NTuple{2,AbstractVector}
test_dof_to_bg_dofs::NTuple{2,AbstractVector}
end
Structure that allows to decouple the assembly of FE matrices/vectors from the integration of weak formulations, to be used exclusively in the context of a trial/test couple of DirectSumFESpace
. After performing integration on the FE space, the assembly is done on the background space. The latter step can be done by exploiting the fields
assem
: a SparseMatrixAssembler defined on the FE spacetrial_dof_to_bg_dofs
: index maps from the free/Dirichlet dofs on the trial FE space to those on the background trial spacetest_dof_to_bg_dofs
: index maps from the free/Dirichlet dofs on the test FE space to those on the background test space
GridapROMs.Extensions.ExtensionOperator
— TypeGridapROMs.Extensions.ExtensionParamOperator
— Typestruct ExtensionParamOperator{O,T} <: ParamOperator{O,T}
op::ParamOperator{O,T}
end
Acts as a standard ParamOperator
, but returns an ExtensionAssembler
when calling the function get_assembler
GridapROMs.Extensions.ExtensionParamOperator
— MethodExtensionParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.ExtensionStyle
— Typeabstract type ExtensionStyle end
Abstraction for different extension methods. Subtypes:
GridapROMs.Extensions.HarmonicExtension
— Typestruct HarmonicExtension <: ExtensionStyle end
Extension by means of a discrete Laplace operator
GridapROMs.Extensions.MassExtension
— Typestruct MassExtension <: ExtensionStyle end
Extension by means of a mass operator
GridapROMs.Extensions.MissingDofsFESpace
— Typestruct MissingDofsFESpace{V} <: SingleFieldFESpace
vector_type::Type{V}
nfree::Int
ndirichlet::Int
cell_dofs_ids::AbstractArray
fe_basis::CellField
fe_dof_basis::CellDof
cell_is_dirichlet::AbstractArray{Bool}
dirichlet_dof_tag::Vector{Int8}
dirichlet_cells::Vector{Int32}
ntags::Int
end
Same as an UnconstrainedFESpace
in Gridap
, with the possibilty using zeros to indicate constrained DOFs – i.e. DOFs that do not contribute to the assembly of FE vectors/matrices. Note: one could also use a FESpaceWithLinearConstraints
instead, but that would be overly complicated in most scenarios
GridapROMs.Extensions.ZeroExtension
— Typestruct ZeroExtension <: ExtensionStyle end
Extension by zero
GridapROMs.Extensions.:⊕
— Method(⊕)(uh::FEFunction,vh::FEFunction) -> FEFunction
Given a FEFunction uh
defined on a FE space and a FEFunction vh
defined on its complementary (see complementary_space
for more details), returns a FEFunction defined as their direct sum. In practice, the output's values coincides with those of uh
on the DOFs associated with the space, and those of vh
on the DOFs associated with the complementary
GridapROMs.Extensions.ExtensionLinearNonlinearParamOperator
— MethodExtensionLinearNonlinearParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.ExtensionLinearParamOperator
— MethodExtensionLinearParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.TransientExtensionLinearNonlinearParamOperator
— MethodTransientExtensionLinearNonlinearParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.TransientExtensionLinearParamOperator
— MethodTransientExtensionLinearParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.TransientExtensionParamOperator
— MethodTransientExtensionParamOperator(args...;kwargs...) -> ExtensionParamOperator
GridapROMs.Extensions.complementary_space
— Methodcomplementary_space(space::EmbeddedFESpace) -> EmbeddedFESpace
Given a FE space space
embedded in a background FE space, called for e.g. bg_space
, computes the complementary of space
embedded in bg_space
, defined as the space with free and Dirichlet dofs belonging to bg_space
whose intersection with free and Dirichlet dofs belonging to space
is empty. The reference FE space coincides with that belonging to space
GridapROMs.Extensions.extend_solution!
— Methodextend_solution!(u_bg::AbstractVector,ext::ExtensionStyle,f::FESpace,u::AbstractVector)
In-place version of extend_solution
GridapROMs.Extensions.extend_solution
— Methodextend_solution(ext::ExtensionStyle,f::FESpace,u::AbstractVector) -> AbstractVector
Extension of the nodal values u
associated with a FE function defined on f
according to the extension style ext
GridapROMs.Extensions.harmonic_extension
— Methodharmonic_extension(fout::SingleFieldFESpace,uh_in_bg::FEFunction) -> FEFunction
Given a FEFunction uh_in_bg
defined on an EmbeddedFESpace
– so that nodal and cell values are available on a background FE space, in addition to the FE space itself – it returns the harmonic extension to the complementary FE space fout
GridapROMs.Extensions.mass_extension
— Methodmass_extension(fout::SingleFieldFESpace,uh_in_bg::FEFunction) -> FEFunction
Given a FEFunction uh_in_bg
defined on an EmbeddedFESpace
– so that nodal and cell values are available on a background FE space, in addition to the FE space itself – it returns the mass extension to the complementary FE space fout