GridapROMs.ParamFESpaces

GridapROMs.Extensions.DirectSumFESpaceType
struct 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

source
GridapROMs.Extensions.EmbeddedFESpaceType
struct 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 space
  • bg_space: background FE space, which can be envisioned as the parent of space
  • fdof_to_bg_fdofs: maps the active free DOFs in space to the active free

DOFs in bg_space

  • ddof_to_bg_ddofs: maps the active dirichlet DOFs in space to the active dirichlet

DOFs in bg_space

  • bg_cell_dof_ids: connectivity of space 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

source
GridapROMs.Extensions.ExtensionAssemblerType
struct 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 space
  • trial_dof_to_bg_dofs: index maps from the free/Dirichlet dofs on the trial FE space to those on the background trial space
  • test_dof_to_bg_dofs: index maps from the free/Dirichlet dofs on the test FE space to those on the background test space
source
GridapROMs.Extensions.MissingDofsFESpaceType
struct 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

source
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

source
GridapROMs.Extensions.complementary_spaceMethod
complementary_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

source
GridapROMs.Extensions.extend_solutionMethod
extend_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

source
GridapROMs.Extensions.harmonic_extensionMethod
harmonic_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

source
GridapROMs.Extensions.mass_extensionMethod
mass_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

source