GridapROMs.RBSteady
GridapROMs.RBSteady.AbstractTTCore — Typeabstract type AbstractTTCore{T,N} <: AbstractArray{T,N} endType for nonstandard representations of tensor train cores.
Subtypes:
GridapROMs.RBSteady.AdaptiveReduction — Typestruct 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 — Typeconst AffineContribution{V<:Projection} = Contribution{V}Contribution whose field values are Projections
GridapROMs.RBSteady.AffineReduction — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typeabstract type DirectReduction{A,B} <: Reduction{A,B} endType representing direct reduction methods, e.g. truncated POD, TTSVD, etc.
Subtypes:
GridapROMs.RBSteady.DofMapCore — Typestruct 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 — Typestruct 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 — Typestruct EuclideanNorm <: NormStyle endTrait indicating that the reduction algorithm will produce a basis orthogonal in the euclidean norm
GridapROMs.RBSteady.FixedSVDRank — Typestruct 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 — Typestruct 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 — Typestruct GenericHRProjection{A,B} <: HRProjection{A,B}
basis::A
style::B
interpolation::Interpolation
endGeneric implementation of an HRProjection object
GridapROMs.RBSteady.GenericRBOperator — Typestruct 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 — Typestruct 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 — Typeabstract 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 — Typeabstract 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 — Typeabstract type IntegrationDomain endType representing the set of interpolation rows of a Projection subjected to a EIM approximation. Subtypes:
GridapROMs.RBSteady.InvProjection — Typestruct InvProjection <: Projection
projection::Projection
endRepresents the inverse map of a Projection projection
GridapROMs.RBSteady.LRApproxRank — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typestruct LocalReduction{A,B,R<:Reduction{A,B}} <: Reduction{A,B}
reduction::R
ncentroids::Int
endGridapROMs.RBSteady.MDEIMContribution — TypeGridapROMs.RBSteady.MDEIMHyperReduction — Typestruct MDEIMHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
endMDEIM struct employed in steady problems
GridapROMs.RBSteady.MDEIMProjection — TypeGridapROMs.RBSteady.MultiFieldRBSpace — Typestruct MultiFieldRBSpace{S<:MultiFieldFESpace} <: RBSpace{S}
space::S
subspace::BlockProjection
endReduced basis subspace of a MultiFieldFESpace in Gridap
GridapROMs.RBSteady.NormStyle — TypeGridapROMs.RBSteady.NormedProjection — Typestruct 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 — Typestruct PODProjection <: Projection
basis::AbstractMatrix
endProjection stemming from a truncated proper orthogonal decomposition tpod
GridapROMs.RBSteady.PODReduction — Typestruct 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 — Typeabstract 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.RBFContribution — TypeGridapROMs.RBSteady.RBFHyperReduction — Typestruct RBFHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
strategy::AbstractRadialBasis
endGridapROMs.RBSteady.RBFProjection — TypeGridapROMs.RBSteady.RBOperator — Typeabstract 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 — Typestruct 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 — Typestruct 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 — Typeabstract type RBSpace <: FESpace endRepresents a vector subspace of a FESpace.
Subtypes:
GridapROMs.RBSteady.RBVector — Typestruct 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 — Typestruct ROMPerformance
error
speedup
endAllows to compute errors and computational speedups to compare the properties of the algorithm with the FE performance.
GridapROMs.RBSteady.ReducedAlgebraicProjection — TypeGridapROMs.RBSteady.ReducedProjection — Typeabstract 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 — Typeabstract 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 — Typeabstract type ReductionStyle endType indicating the reduction strategy to employ.
Subtypes:
GridapROMs.RBSteady.SOPTContribution — TypeGridapROMs.RBSteady.SOPTHyperReduction — Typestruct SOPTHyperReduction{A} <: HyperReduction{A}
reduction::Reduction{A,EuclideanNorm}
endS-OPT struct employed in steady problems
GridapROMs.RBSteady.SOPTProjection — TypeGridapROMs.RBSteady.SearchSVDRank — Typestruct 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 — Typestruct SingleFieldRBSpace{S<:SingleFieldFESpace} <: RBSpace{S}
space::S
subspace::Projection
endReduced basis subspace of a SingleFieldFESpace in Gridap
GridapROMs.RBSteady.SparseCore — Typeabstract type SparseCore{T,N} <: AbstractTTCore{T,N} endTensor train cores for sparse matrices.
Subtypes:
GridapROMs.RBSteady.SparseCoreCSC — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typestruct 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 — Typestruct TrivialSparseCore{T,A<:SparsityPattern} <: SparseCore{T,3}
array::Array{T,3}
sparsity::A
endTrivial tensor train core for sparse matrices format
GridapROMs.RBSteady.contraction — Methodcontraction(Φₗₖ::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 — Methodcontraction(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 — Methodcores2basis(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 — Methodcreate_dir(dir::String) -> NothingRecursive creation of a directory dir; does not do anything if dir exists
GridapROMs.RBSteady.empirical_interpolation — Methodempirical_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! — Methodenrich!(
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 — Methodeval_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 — Methodgalerkin_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 — Methodgalerkin_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 — Methodget_basis(a::Projection) -> AbstractMatrixReturns the basis spanning the reduced subspace represented by the projection a
GridapROMs.RBSteady.get_fe_solver — Methodget_fe_solver(s::RBSolver) -> NonlinearSolverReturns the underlying NonlinearSolver from a RBSolver s
GridapROMs.RBSteady.get_interpolation — Methodget_interpolation(a::HRProjection) -> InterpolationFor a HRProjection a represented by the couple (Φrb,i), returns i
GridapROMs.RBSteady.get_reduced_subspace — Methodget_reduced_subspace(r::RBSpace) -> ProjectionReturns the Projection spanning the reduced subspace contained in r
GridapROMs.RBSteady.get_rowcols_to_cells — Methodget_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 — Methodget_rows_to_cells(
cell_row_ids::AbstractArray{<:AbstractArray},
rows::AbstractVector
) -> AbstractVectorReturns the list of cells containing the row ids rows
GridapROMs.RBSteady.gram_schmidt — Functiongram_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! — Methodinv_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 — Methodinv_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 — Methodjacobian_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_contribution — MethodGridapROMs.RBSteady.load_operator — Methodload_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_reduced_subspace — MethodGridapROMs.RBSteady.load_results — MethodGridapROMs.RBSteady.load_snapshots — Methodload_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 — Methodnum_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 — Methodnum_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! — Methodorth_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 — Methodorth_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 — Methodplot_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! — Methodproject!(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 — Methodproject(a::Projection,x::AbstractArray,args...) -> AbstractArrayProjects a high-dimensional object x onto the subspace represented by a
GridapROMs.RBSteady.projection_eltype — Methodprojection_eltype(a::Projection) -> DataTypeReturns the eltype of the projection a
GridapROMs.RBSteady.reduced_basis — Methodreduced_basis(red::Reduction,s::AbstractSnapshots,args...) -> ProjectionComputes the basis by compressing the snapshots s
GridapROMs.RBSteady.reduced_jacobian — Methodreduced_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 — Methodreduced_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 — Methodreduced_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 — Methodreduced_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 — Methodreduced_subspace(space::FESpace,basis::Projection) -> RBSpaceGeneric constructor of a RBSpace from a FESpace space and a projection basis
GridapROMs.RBSteady.reduced_triangulation — Methodreduced_triangulation(trian::Triangulation,a::HRProjection)Returns the triangulation view of trian on the integration cells contained in a
GridapROMs.RBSteady.reduced_weak_form — Methodreduced_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 — Methodreduction(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 — Methodresidual_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 — Methods_opt(a::Projection) -> (AbstractVector,AbstractMatrix)Computes the S-OPT hyper-reduction of a. Check this reference for more information
GridapROMs.RBSteady.sequential_product — Methodsequential_product(a::AbstractArray,b::AbstractArray...) -> AbstractArrayThis function sequentially multiplies the results of several (sequential as well) calls to contraction
GridapROMs.RBSteady.solution_snapshots — Methodsolution_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 — Methodtpod(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 — Methodttsvd(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 — Methodunion_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)))