GridapROMs.RBSteady
GridapROMs.RBSteady.AbstractTTCore — Type
abstract type AbstractTTCore{T,N} <: AbstractArray{T,N} endType for nonstandard representations of tensor train cores.
Subtypes:
GridapROMs.RBSteady.AdaptiveReduction — Type
struct AdaptiveReduction{A,B,R<:DirectReduction{A,B}} <: GreedyReduction{A,B}
reduction::R
adaptive_nparams::Int
adaptive_tol::Float64
adaptive_maxiter::Int
endNot implemented yet. Will serve as a parameter-adaptivity greedy reduction algorithm
GridapROMs.RBSteady.AffineContribution — Type
const AffineContribution{V<:Projection} = Contribution{V}Contribution whose field values are Projections
GridapROMs.RBSteady.AffineReduction — Type
struct AffineReduction{A,B} <: DirectReduction{A,B}
red_style::A
norm_style::B
endReduction employed when the input data is independent with respect to the considered realization. Therefore, simply considering a number of parameters equal to 1 suffices for this type of reduction
GridapROMs.RBSteady.BlockHRProjection — Type
struct BlockHRProjection{A,I,N} <: HRProjection{A,I}
array::Array{HRProjection{A,I},N}
touched::Array{Bool,N}
endBlock container for HRProjection of type A in a MultiField setting. This type is conceived similarly to ArrayBlock in Gridap
GridapROMs.RBSteady.BlockProjection — Type
struct BlockProjection{A<:HRProjection,N} <: Projection
array::Array{A,N}
touched::Array{Bool,N}
endBlock container for Projection of type A in a MultiField setting. This type is conceived similarly to ArrayBlock in Gridap
GridapROMs.RBSteady.DirectReduction — Type
abstract type DirectReduction{A,B} <: Reduction{A,B} endType representing direct reduction methods, e.g. truncated POD, TTSVD, etc.
Subtypes:
GridapROMs.RBSteady.DofMapCore — Type
struct DofMapCore{T,A<:AbstractArray{T,3},B<:AbstractArray} <: AbstractTTCore{T,3}
core::A
dof_map::B
endRepresents a tensor train core core reindexed by means of an index mapping dof_map
GridapROMs.RBSteady.EnergyNorm — Type
struct EnergyNorm <: NormStyle
norm_op::Function
endTrait indicating that the reduction algorithm will produce a basis orthogonal in the norm specified by norm_op. Note: norm_op should represent a symmetric, positive definite bilinear form (matrix)
GridapROMs.RBSteady.EuclideanNorm — Type
struct EuclideanNorm <: NormStyle endTrait indicating that the reduction algorithm will produce a basis orthogonal in the euclidean norm
GridapROMs.RBSteady.FixedSVDRank — Type
struct FixedSVDRank <: ReductionStyle
rank::Int
endStruct employed when the chosen reduction algorithm is a truncated POD at a rank rank. Check this reference for more details on the truncated POD algorithm
GridapROMs.RBSteady.GenericDomain — Type
struct GenericDomain{T,A} <: IntegrationDomain
cells::Vector{Int32}
cell_idofs::Table{T,Vector{T},Vector{Int32}}
metadata::A
endIntegration domain for a projection operator in a steady problem
GridapROMs.RBSteady.GenericHRProjection — Type
struct GenericHRProjection{A,B} <: HRProjection{A,B}
basis::A
style::B
interpolation::Interpolation
endGeneric implementation of an HRProjection object
GridapROMs.RBSteady.GenericRBOperator — Type
struct GenericRBOperator{O,T,A,B} <: RBOperator{O,T}
op::ParamOperator{O,T}
trial::RBSpace
test::RBSpace
lhs::A
rhs::B
endFields:
op: underlying high dimensional FE operatortrial: reduced trial spacetest: reduced test spacelhs: hyper-reduced left hand siderhs: hyper-reduced right hand side
GridapROMs.RBSteady.HRParamArray — Type
struct HRParamArray{T,N,A,B,C<:ParamArray{T,N}} <: ParamArray{T,N}
fecache::A
coeff::B
hypred::C
endParametric vector returned after the online phase of a hyper-reduction strategy. Fields:
fecache: represents a parametric residual/Jacobian computed via integration on anIntegrationDomaincoeff: parameter-dependent coefficient computed during the online phase according to the formulacoeff = Φi⁻¹ fecache[i,:]where
(Φi,i)are the interpolation and the reduced integration domain stored in aHyperReductionobject.hypred: the ouptut of the online phase of a hyper-reduction strategy, acoording to the formulahypred = Φrb * coeffwhere
Φrbis the basis stored in aHyperReductionobject
GridapROMs.RBSteady.HRProjection — Type
abstract type HRProjection{A<:ReducedProjection,B<:HyperReduction} <: Projection endSubtype of a Projection dedicated to the output of a hyper-reduction procedure applied on residual/jacobians of a differential problem. This procedure can be summarized in the following steps:
- compute a snapshots tensor
T - construct a
ProjectionΦby running the functionreductiononT - implement an interpolation strategy
There are two types of interpolation strategies:
- Empirical interpolation of the
ProjectionΦ - Radial basis interpolation over the parameter space
We recall that a RB method requires the (Petrov-)Galerkin projection of the operators (residuals/Jacobians) on the reduced subspace spanned by Φ:
- for residuals:
Φrb = test_basisᵀ Φ - for Jacobians:
Φrb = test_basisᵀ Φ trial_basis
The output of this operation is a ReducedProjection. Therefore, a HRProjection is completely characterized by the couple (Φrb,i), where i indicates the chosen interpolation strategy.
Subtypes:
GridapROMs.RBSteady.HyperReduction — Type
abstract type HyperReduction{A} <: Reduction{A,EuclideanNorm} endType representing a hyper-reduction approximation of residuals/Jacobians of a differential problem. Orthogonality with respect to a norm other than the euclidean is not required for this reduction type.
Subtypes:
GridapROMs.RBSteady.IntegrationDomain — Type
abstract type IntegrationDomain endType representing the set of interpolation rows of a Projection subjected to a EIM approximation. Subtypes:
GridapROMs.RBSteady.InvProjection — Type
struct InvProjection <: Projection
projection::Projection
endRepresents the inverse map of a Projection projection
GridapROMs.RBSteady.LRApproxRank — Type
struct LRApproxRank <: ReductionStyle
opts::LRAOptions
endStruct employed when the chosen reduction algorithm is a randomized POD that leverages the package LowRankApprox. The field opts specifies the options needed to run the randomized POD
GridapROMs.RBSteady.LinearNonlinearRBOperator — Type
struct LinearNonlinearRBOperator{A<:RBOperator,B<:RBOperator,T} <: RBOperator{LinearNonlinearParamEq,T}
op_linear::A
op_nonlinear::B
endExtends the concept of GenericRBOperator to accommodate the linear/nonlinear splitting of terms in nonlinear applications
GridapROMs.RBSteady.LocalRBOperator — Type
struct LocalRBOperator{O,T,A,B} <: RBOperator{O,T}
op::ParamOperator{O,T}
trial::RBSpace
test::RBSpace
lhs::A
rhs::B
endFields:
op: underlying high dimensional FE operatortrial: local reduced trial spacestest: local reduced test spaceslhs: local hyper-reduced left hand sidesrhs: local hyper-reduced right hand sides
GridapROMs.RBSteady.LocalReduction — Type
struct LocalReduction{A,B,R<:Reduction{A,B}} <: Reduction{A,B}
reduction::R
ncentroids::Int
endGridapROMs.RBSteady.MDEIMHyperReduction — Type
struct MDEIMHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
endMDEIM struct employed in steady problems
GridapROMs.RBSteady.MultiFieldRBSpace — Type
struct MultiFieldRBSpace{S<:MultiFieldFESpace} <: RBSpace{S}
space::S
subspace::BlockProjection
endReduced basis subspace of a MultiFieldFESpace in Gridap
GridapROMs.RBSteady.NormedProjection — Type
struct NormedProjection <: Projection
projection::Projection
norm_matrix::MatrixOrTensor
endRepresents a Projection projection spanning a space equipped with an inner product represented by the quantity norm_matrix
GridapROMs.RBSteady.PODProjection — Type
struct PODProjection <: Projection
basis::AbstractMatrix
endProjection stemming from a truncated proper orthogonal decomposition tpod
GridapROMs.RBSteady.PODReduction — Type
struct PODReduction{A,B} <: DirectReduction{A,B}
red_style::A
norm_style::B
nparams::Int
endReduction by means of a truncated POD. The field nparams indicates the number of parameters selected for the computation of the snapshots
GridapROMs.RBSteady.Projection — Type
abstract type Projection <: Map endRepresents a basis for a n-dimensional vector subspace of a N-dimensional vector space (where N >> n), to be used as a Galerkin projection operator. The kernel of a Projection is n-dimensional, whereas its image is N-dimensional.
Subtypes:
GridapROMs.RBSteady.RBFHyperReduction — Type
struct RBFHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
strategy::AbstractRadialBasis
endGridapROMs.RBSteady.RBOperator — Type
abstract type RBOperator{O,T} <: ParamOperator{O,T} endType representing reduced algebraic operators used within a reduced order modelling framework in steady applications. A RBOperator should contain the following information:
- a reduced test and trial space, computed according to
reduced_spaces - a hyper-reduced residual and jacobian, computed according to
reduced_weak_form
Subtypes:
GridapROMs.RBSteady.RBParamVector — Type
struct RBParamVector{T,A<:ParamVector{T},B} <: ParamArray{T,1}
data::A
fe_data::B
endParametric vector obtained by applying a Projection on a high-dimensional parametric FE vector fe_data, which is stored (but mostly unused) for conveniency
GridapROMs.RBSteady.RBSolver — Type
struct RBSolver{A<:GridapType,B} <: GridapType
fesolver::A
state_reduction::Reduction
residual_reduction::Reduction
jacobian_reduction::B
endWrapper around a FE solver (e.g. NonlinearSolver or ODESolver in Gridap) with additional information on the reduced basis (RB) method employed to solve a given problem dependent on a set of parameters. A RB method is a projection-based reduced order model where
- a suitable subspace of a FESpace is sought, of dimension n << Nₕ
- a matrix-based discrete empirical interpolation method (e.g. MDEIM) is performed
to approximate the manifold of the parametric residuals and jacobians
- the EIM approximations are compressed with (Petrov-)Galerkin projections
onto the subspace
- for every desired choice of parameters, numerical integration is performed, and
the resulting n × n system of equations is cheaply solved
In particular:
- tol: tolerance used in the projection-based truncated proper orthogonal decomposition (TPOD) or in the tensor train singular value decomposition (TT-SVD), where a basis spanning the reduced subspace is computed; the value of tol is responsible for selecting the dimension of the subspace, i.e. n = n(tol)
- nparams_state: number of snapshots considered when running TPOD or TT-SVD
- nparams_res: number of snapshots considered when running hyper-reduction for the residual
- nparams_jac: number of snapshots considered when running hyper-reduction for the jacobian
- nparams_test: number of snapshots considered when computing the error the RB method commits with respect to the FE procedure
GridapROMs.RBSteady.RBSpace — Type
abstract type RBSpace <: FESpace endRepresents a vector subspace of a FESpace.
Subtypes:
GridapROMs.RBSteady.RBVector — Type
struct RBVector{T,A<:AbstractVector{T},B} <: AbstractVector{T}
data::A
fe_data::B
endVector obtained by applying a Projection on a high-dimensional FE vector fe_data, which is stored (but mostly unused) for conveniency
GridapROMs.RBSteady.ROMPerformance — Type
struct ROMPerformance
error
speedup
endAllows to compute errors and computational speedups to compare the properties of the algorithm with the FE performance.
GridapROMs.RBSteady.ReducedProjection — Type
abstract type ReducedProjection{A<:AbstractArray} <: Projection endType representing a Galerkin projection of a Projection onto a reduced subspace represented by another Projection.
Subtypes:
GridapROMs.RBSteady.Reduction — Type
abstract type Reduction{A<:ReductionStyle,B<:NormStyle} endType indicating the reduction strategy to employ, and the information regarding the norm with respect to which the reduction should occur.
Subtypes:
GridapROMs.RBSteady.ReductionStyle — Type
abstract type ReductionStyle endType indicating the reduction strategy to employ.
Subtypes:
GridapROMs.RBSteady.SOPTHyperReduction — Type
struct SOPTHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
endS-OPT struct employed in steady problems
GridapROMs.RBSteady.SearchSVDRank — Type
struct SearchSVDRank <: ReductionStyle
tol::Float64
endStruct employed when the chosen reduction algorithm is a truncated POD at a tolerance tol. Check this reference for more details on the truncated POD algorithm
GridapROMs.RBSteady.SingleFieldRBSpace — Type
struct SingleFieldRBSpace{S<:SingleFieldFESpace} <: RBSpace{S}
space::S
subspace::Projection
endReduced basis subspace of a SingleFieldFESpace in Gridap
GridapROMs.RBSteady.SparseCore — Type
abstract type SparseCore{T,N} <: AbstractTTCore{T,N} endTensor train cores for sparse matrices.
Subtypes:
GridapROMs.RBSteady.SparseCoreCSC — Type
struct SparseCoreCSC{T,Ti} <: SparseCore{T,3}
array::Array{T,3}
sparsity::SparsityCSC{T,Ti}
endTensor train cores for sparse matrices in CSC format
GridapROMs.RBSteady.SparseCoreCSC4D — Type
struct SparseCoreCSC4D{T,Ti} <: SparseCore{T,4}
core::SparseCoreCSC{T,Ti}
sparse_indexes::Vector{CartesianIndex{2}}
endTensor train cores for sparse matrices in CSC format, reshaped as 4D arrays
GridapROMs.RBSteady.SupremizerReduction — Type
struct SupremizerReduction{A,R<:Reduction{A,EnergyNorm}} <: Reduction{A,EnergyNorm}
reduction::R
supr_op::Function
supr_tol::Float64
endWrapper for reduction methods reduction that require an additional step of stabilization, by means of a supremizer enrichment. Check this for more details in a steady setting, and this for more details in a transient setting. The fields supr_op and supr_tol (which is only needed only in transient applications) are respectively the supremizing operator and the tolerance involved in the enrichment. For a saddle point problem with a Jacobian of the form
[ A Bᵀ B 0 ]
this operator is given by the bilinear form representing the matrix Bᵀ.
GridapROMs.RBSteady.TTSVDProjection — Type
struct TTSVDProjection <: Projection
cores::AbstractVector{<:AbstractArray{T,3} where T}
dof_map::AbstractDofMap
endProjection stemming from a tensor train SVD ttsvd. For reindexing purposes a field dof_map is provided along with the tensor train cores cores
GridapROMs.RBSteady.TTSVDRanks — Type
struct TTSVDRanks <: ReductionStyle
style::Vector{<:ReductionStyle}
endStruct employed when the chosen reduction algorithm is a TTSVD, with reduction algorithm at each step specified in the vector of reduction styles style. Check this reference for more details on the TTSVD algorithm
GridapROMs.RBSteady.TTSVDReduction — Type
struct TTSVDReduction{B} <: DirectReduction{TTSVDRanks,B}
red_style::TTSVDRanks
norm_style::B
nparams::Int
endReduction by means of a TTSVD. The field nparams indicates the number of parameters selected for the computation of the snapshots
GridapROMs.RBSteady.TrivialSparseCore — Type
struct TrivialSparseCore{T,A<:SparsityPattern} <: SparseCore{T,3}
array::Array{T,3}
sparsity::A
endTrivial tensor train core for sparse matrices format
GridapROMs.RBSteady.contraction — Method
contraction(Φₗₖ::AbstractArray{T,3},Aₖ::AbstractArray{T,3}) -> AbstractArray{T,4}
contraction(Φₗₖ::AbstractArray{T,3},Aₖ::AbstractArray{T,3},Φᵣₖ::AbstractArray{T,3}) -> AbstractArray{T,6}Contraction of tensor train cores, as a result of a (Petrov-)Galerkin projection. The contraction of Aₖ by Φₗₖ is the left-contraction of a TT core Aₖ by a (left, test) TT core Φₗₖ, whereas the contraction of Aₖ by Φᵣₖ is the right-contraction of a TT core Aₖ by a (right, trial) TT core Φᵣₖ. The dimension of the output of a contraction involving N factors is: 3N - N = 2N.
GridapROMs.RBSteady.contraction — Method
contraction(basis::AbstractArray,coefficient::AbstractArray) -> AbstractArrayMultiplies a reduced basis basis by a set of reduced coeffiecients coefficient. It acts as a generalized linear combination, since basis might have a dimension higher than 2.
GridapROMs.RBSteady.cores2basis — Method
cores2basis(cores::AbstractArray{T,3}...) -> AbstractMatrixReturns a basis in a matrix format from a list of tensor train cores cores. When also supplying the indexing strategy dof_map, the result is reindexed accordingly
GridapROMs.RBSteady.create_dir — Method
create_dir(dir::String) -> NothingRecursive creation of a directory dir; does not do anything if dir exists
GridapROMs.RBSteady.empirical_interpolation — Method
empirical_interpolation(a::Projection) -> (AbstractVector,AbstractMatrix)Computes the EIM of a. The outputs are:
- a vector of integers
i, corresponding to a list of interpolation row indices - a matrix
Φi = view(Φ,i), whereΦ = get_basis(a). This quantity represents the restricted basis on the set of interpolation rowsi
GridapROMs.RBSteady.enrich! — Method
enrich!(
red::SupremizerReduction,
a::BlockProjection,
norm_matrix::MatrixOrTensor,
supr_matrix::MatrixOrTensor) -> NothingIn-place augmentation of the primal block of a BlockProjection a. This function has the purpose of stabilizing the reduced equations stemming from a saddle point problem
GridapROMs.RBSteady.eval_performance — Method
eval_performance(
solver::RBSolver,
feop::ParamOperator,
fesnaps::AbstractSnapshots,
rbsnaps::AbstractSnapshots,
festats::CostTracker,
rbstats::CostTracker
) -> ROMPerformanceArguments:
solver: solver for the reduced problemfeop: FE operator representing the PDEfesnaps: online snapshots of the FE solutionrbsnaps: reduced approximation offesnapsfestats: time and memory consumption needed to computefesnapsrbstats: time and memory consumption needed to computerbsnaps
Returns the performance of the reduced algorithm, in terms of the (relative) error between rbsnaps and fesnaps, and the computational speedup between rbstats and festats
GridapROMs.RBSteady.galerkin_projection — Method
galerkin_projection(Φₗ,A) -> Any
galerkin_projection(Φₗ,A,Φᵣ) -> AnyGalerkin projection of A on the subspaces specified by a (left, test) subspace Φₗ (row projection) and a (right, trial) subspace Φᵣ (column projection)
GridapROMs.RBSteady.galerkin_projection — Method
galerkin_projection(a::Projection,b::Projection) -> ReducedProjection
galerkin_projection(a::Projection,b::Projection,c::Projection,args...) -> ReducedProjection(Petrov) Galerkin projection of a projection map b onto the subspace a (row projection) and, if applicable, onto the subspace c (column projection)
GridapROMs.RBSteady.get_basis — Method
get_basis(a::Projection) -> AbstractMatrixReturns the basis spanning the reduced subspace represented by the projection a
GridapROMs.RBSteady.get_fe_solver — Method
get_fe_solver(s::RBSolver) -> NonlinearSolverReturns the underlying NonlinearSolver from a RBSolver s
GridapROMs.RBSteady.get_interpolation — Method
get_interpolation(a::HRProjection) -> InterpolationFor a HRProjection a represented by the couple (Φrb,i), returns i
GridapROMs.RBSteady.get_reduced_subspace — Method
get_reduced_subspace(r::RBSpace) -> ProjectionReturns the Projection spanning the reduced subspace contained in r
GridapROMs.RBSteady.get_rowcols_to_cells — Method
get_rowcols_to_cells(
cell_row_ids::AbstractArray{<:AbstractArray},
cell_col_ids::AbstractArray{<:AbstractArray},
rows::AbstractVector,cols::AbstractVector) -> AbstractVectorReturns the list of cells containing the row ids rows and the col ids cols
GridapROMs.RBSteady.get_rows_to_cells — Method
get_rows_to_cells(
cell_row_ids::AbstractArray{<:AbstractArray},
rows::AbstractVector
) -> AbstractVectorReturns the list of cells containing the row ids rows
GridapROMs.RBSteady.gram_schmidt — Function
gram_schmidt(A::AbstractMatrix,args...) -> AbstractMatrix
gram_schmidt(A::AbstractMatrix,X::AbstractSparseMatrix,args...) -> AbstractMatrixGram-Schmidt orthogonalization for a matrix A under a Euclidean norm. A (positive definite) sparse matrix X representing an inner product on the row space of A can be provided to make the result orthogonal under a different norm
GridapROMs.RBSteady.inv_project! — Method
inv_project!(x::AbstractArray,a::Projection,x̂::AbstractArray) -> NothingIn-place recasting of a low-dimensional object x̂ the high-dimensional space in which a is immersed
GridapROMs.RBSteady.inv_project — Method
inv_project(a::Projection,x::AbstractArray) -> AbstractArrayRecasts a low-dimensional object x onto the high-dimensional space in which a is immersed
GridapROMs.RBSteady.jacobian_snapshots — Method
jacobian_snapshots(solver::RBSolver,op::ParamOperator,s::AbstractSnapshots) -> Contribution
jacobian_snapshots(solver::RBSolver,op::ODEParamOperator,s::AbstractSnapshots) -> Tuple{Vararg{Contribution}}Returns a Jacobian Contribution relative to the FE operator op. The quantity s denotes the solution snapshots in which we evaluate the jacobian. In transient settings, the output is a tuple whose nth element is the Jacobian relative to the nth temporal derivative
GridapROMs.RBSteady.load_operator — Method
load_operator(dir,feop::ParamOperator;kwargs...) -> RBOperatorGiven a FE operator feop, load its reduced counterpart stored in the directory dir. Throws an error if the reduced operator has not been previously saved to file
GridapROMs.RBSteady.load_snapshots — Method
load_snapshots(dir;label="") -> AbstractSnapshotsLoad the snapshots at the directory dir. Throws an error if the snapshots have not been previously saved to file
GridapROMs.RBSteady.num_fe_dofs — Method
num_fe_dofs(a::Projection) -> IntFor a projection map a from a low dimensional space n to a high dimensional one N, returns N
GridapROMs.RBSteady.num_reduced_dofs — Method
num_reduced_dofs(a::Projection) -> IntFor a projection map a from a low dimensional space n to a high dimensional one N, returns n
GridapROMs.RBSteady.orth_complement! — Method
orth_complement!(v::AbstractVector,basis::AbstractMatrix,args...) -> NothingIn-place orthogonal complement of v on the column space of basis. When a symmetric, positive definite matrix X is provided as an argument, the output is X-orthogonal, otherwise it is ℓ²-orthogonal
GridapROMs.RBSteady.orth_projection — Method
orth_projection(v::AbstractVector, basis::AbstractMatrix, args...) -> AbstractVectorOrthogonal projection of v on the column space of basis. When a symmetric, positive definite matrix X is provided as an argument, the output is X-orthogonal, otherwise it is ℓ²-orthogonal
GridapROMs.RBSteady.plot_a_solution — Method
plot_a_solution(
dir::String,
feop::ParamOperator,
sol::AbstractSnapshots,
sol_approx::AbstractSnapshots,
args...;
kwargs...
) -> NothingPlots a single FE solution, RB solution, and the point-wise error between the two, by selecting the first FE snapshot in sol and the first reduced snapshot in sol_approx
GridapROMs.RBSteady.project! — Method
project!(x̂::AbstractArray,a::Projection,x::AbstractArray,args...) -> NothingIn-place projection of a high-dimensional object x onto the subspace represented by a
GridapROMs.RBSteady.project — Method
project(a::Projection,x::AbstractArray,args...) -> AbstractArrayProjects a high-dimensional object x onto the subspace represented by a
GridapROMs.RBSteady.projection_eltype — Method
projection_eltype(a::Projection) -> DataTypeReturns the eltype of the projection a
GridapROMs.RBSteady.reduced_basis — Method
reduced_basis(red::Reduction,s::AbstractSnapshots,args...) -> ProjectionComputes the basis by compressing the snapshots s
GridapROMs.RBSteady.reduced_jacobian — Method
reduced_jacobian(
solver::RBSolver,
op::ParamOperator,
red_trial::RBSpace,
red_test::RBSpace,
s::AbstractSnapshots
) -> Union{AffineContribution,TupOfAffineContribution}Reduces the Jacobian contained in op via hyper-reduction. This function first builds the Jacobian snapshots, which are then reduced according to the strategy reduced_jacobian specified in the reduced solver solver. In transient applications, the output is a tuple of length equal to the number of Jacobians(i.e., equal to the order of the ODE plus one)
GridapROMs.RBSteady.reduced_operator — Method
reduced_operator(solver::RBSolver,feop::ParamOperator,args...;kwargs...) -> RBOperator
reduced_operator(solver::RBSolver,feop::TransientParamOperator,args...;kwargs...) -> TransientRBOperatorComputes a RB operator from the FE operator feop
GridapROMs.RBSteady.reduced_residual — Method
reduced_residual(
solver::RBSolver,
op::ParamOperator,
red_test::RBSpace,
s::AbstractSnapshots
) -> AffineContributionReduces the residual contained in op via hyper-reduction. This function first builds the residual snapshots, which are then reduced according to the strategy residual_reduction specified in the reduced solver solver
GridapROMs.RBSteady.reduced_spaces — Method
reduced_spaces(solver::RBSolver,feop::ParamOperator,s::AbstractSnapshots
) -> (RBSpace, RBSpace)Computes the subspace of the test, trial FESpaces contained in the FE operator feop by compressing the snapshots s
GridapROMs.RBSteady.reduced_subspace — Method
reduced_subspace(space::FESpace,basis::Projection) -> RBSpaceGeneric constructor of a RBSpace from a FESpace space and a projection basis
GridapROMs.RBSteady.reduced_triangulation — Method
reduced_triangulation(trian::Triangulation,a::HRProjection)Returns the triangulation view of trian on the integration cells contained in a
GridapROMs.RBSteady.reduced_weak_form — Method
reduced_weak_form(
solver::RBSolver,
op::ParamOperator,
red_trial::RBSpace,
red_test::RBSpace,
s::AbstractSnapshots
) -> (AffineContribution,Union{AffineContribution,TupOfAffineContribution})Reduces the residual/Jacobian contained in op via hyper-reduction. Check the functions reduced_residual and reduced_jacobian for more details
GridapROMs.RBSteady.reduction — Method
reduction(red::Reduction,A::AbstractArray,args...) -> AbstractArray
reduction(red::Reduction,A::AbstractArray,X::AbstractSparseMatrix) -> AbstractArrayGiven an array (of snapshots) A, returns a reduced basis obtained by means of the reduction strategy red
GridapROMs.RBSteady.residual_snapshots — Method
residual_snapshots(solver::RBSolver,op::ParamOperator,s::AbstractSnapshots) -> Contribution
residual_snapshots(solver::RBSolver,op::ODEParamOperator,s::AbstractSnapshots) -> ContributionReturns a residual Contribution relative to the FE operator op. The quantity s denotes the solution snapshots in which we evaluate the residual
GridapROMs.RBSteady.s_opt — Method
s_opt(a::Projection) -> (AbstractVector,AbstractMatrix)Computes the S-OPT hyper-reduction of a. Check this reference for more information
GridapROMs.RBSteady.sequential_product — Method
sequential_product(a::AbstractArray,b::AbstractArray...) -> AbstractArrayThis function sequentially multiplies the results of several (sequential as well) calls to contraction
GridapROMs.RBSteady.solution_snapshots — Method
solution_snapshots(solver::NonlinearSolver,feop::ParamOperator,r::Realization) -> SteadySnapshots
solution_snapshots(solver::ODESolver,feop::TransientParamOperator,r::TransientRealization,u0) -> TransientSnapshotsThe problem encoded in the FE operator feop is solved several times, and the solution snapshots are returned along with the information related to the computational cost of the FE method. In transient settings, an initial condition u0 should be provided.
GridapROMs.RBSteady.tpod — Method
tpod(red_style::ReductionStyle,A::AbstractMatrix) -> AbstractMatrix
tpod(red_style::ReductionStyle,A::AbstractMatrix,X::AbstractSparseMatrix) -> AbstractMatrixTruncated proper orthogonal decomposition of A. When provided, X is a (symmetric, positive definite) norm matrix with respect to which the output is made orthogonal. If X is not provided, the output is orthogonal with respect to the euclidean norm
GridapROMs.RBSteady.ttsvd — Method
ttsvd(red_style::TTSVDRanks,A::AbstractArray) -> AbstractVector{<:AbstractArray}
ttsvd(red_style::TTSVDRanks,A::AbstractArray,X::AbstractRankTensor) -> AbstractVector{<:AbstractArray}Tensor train SVD of A. When provided, X is a norm tensor (representing a symmetric, positive definite matrix) with respect to which the output is made orthogonal. Note: if ndims(A) = N, the length of the ouptput is N-1, since we are not interested in reducing the axis of the parameters. Check this reference for more details
GridapROMs.RBSteady.union_bases — Method
union_bases(a::Projection,b::Projection,args...) -> ProjectionComputes the projection corresponding to the union of a and b. In essence this operation performs as
gram_schmidt(union(get_basis(a),get_basis(b)))