GridapROMs.ParamSteady

GridapROMs.ParamSteadyModule
module ParamSteady

Parametric FE operators and solvers for steady parametric PDEs.

Extends Gridap's FEOperator/FESpaces layer with parameter awareness, so that residuals and Jacobians can be evaluated at a Realisation (a batch of parameter samples). The module introduces:

  • Operator typesLinearParamEq, NonlinearParamEq, LinearNonlinearParamEq tag whether a parametric operator is linear, nonlinear, or a split linear + nonlinear combination.
  • Low-level algebraic operatorsParamOperator, JointParamOperator, SplitParamOperator, LinearParamOperator, LinearNonlinearParamOperator wrap assembled matrices/vectors and expose the residual!/jacobian! interface at parameter level.
  • FE-level operatorsParamFEOperator (joint or split), LinearParamFEOperator, LinearNonlinearParamFEOperator manage Gridap assemblers, FE domains, and parameter-to-sample dispatch.
  • Solvers — thin wrappers in ParamFESolvers.jl dispatch parametric solves to the underlying Gridap / GridapSolvers linear or nonlinear solvers.

Downstream modules (ParamODEs, RBSteady, Extensions) all build on the abstractions defined here.

source
GridapROMs.ParamSteady.LinearNonlinearParamFEOperatorType
struct LinearNonlinearParamFEOperator{O<:UnEvalOperatorType,T<:TriangulationStyle} <: ParamFEOperator{O,T}
  op_linear::ParamFEOperator
  op_nonlinear::ParamFEOperator
end

Interface to accommodate the separation of terms depending on their linearity in a nonlinear problem. This allows to build and store once and for all linear residuals/Jacobians, and in the Newton-like iterations only evaluate and assemble only the nonlinear components

source
GridapROMs.ParamSteady.ParamFEOpFromWeakFormType
struct ParamFEOpFromWeakForm{O<:UnEvalOperatorType,T<:TriangulationStyle} <: ParamFEOperator{O,T}
  res::Function
  jac::Function
  pspace::ParamSpace
  assem::Assembler
  trial::FESpace
  test::FESpace
  domains::FEDomains
end

Most standard instance of a parametric FE operator

source
GridapROMs.ParamSteady.ParamFEOperatorType
abstract type ParamFEOperator{O<:UnEvalOperatorType,T<:TriangulationStyle} <: FEOperator end

Parametric extension of a FEOperator in Gridap. Compared to a standard FEOperator, there are the following novelties:

  • a ParamSpace is provided, so that parametric realisations can be extracted directly from the ParamFEOperator
  • a function representing a norm matrix is provided, so that errors in the desired norm can be automatically computed

Subtypes:

source
GridapROMs.ParamSteady.ParamOperatorType
abstract type ParamOperator{O<:UnEvalOperatorType,T<:TriangulationStyle} <: NonlinearParamOperator end

Type representing algebraic operators when solving parametric differential problems

source
GridapROMs.ParamSteady.UnEvalOperatorTypeType
abstract type UnEvalOperatorType <: GridapType end

Type representing operators that are not evaluated yet. This may include operators representing transient problems (although the implementation in Gridap differs), parametric problems, and a combination thereof. Could become a supertype of ODEOperatorType in Gridap

source
GridapROMs.ParamSteady.get_param_spaceMethod
get_param_space(feop::ParamFEOperator) -> ParamSpace
get_param_space(feop::TransientParamFEOperator) -> TransientParamSpace

Returns the space of parameters contained in feop

source