GridapROMs.ParamDataStructures
GridapROMs.ParamDataStructures.AbstractParamArray — Type
abstract type AbstractParamArray{T,N,A<:AbstractArray{T,N}} <: AbstractParamData{A,N} endType representing parametric abstract arrays of type A. Subtypes:
GridapROMs.ParamDataStructures.AbstractParamArray3D — Type
const AbstractParamArray3D{T} = AbstractParamArray{T,3,<:AbstractArray{T,3}}GridapROMs.ParamDataStructures.AbstractParamData — Type
abstract type AbstractParamData{T,N} <: AbstractArray{T,N} endType representing generic parametric quantities. Subtypes:
GridapROMs.ParamDataStructures.AbstractParamFunction — Type
abstract type AbstractParamFunction{P<:Realization} <: Function endRepresentation of parametric functions with domain a parametric space. Subtypes:
GridapROMs.ParamDataStructures.AbstractParamMatrix — Type
const AbstractParamMatrix{T} = AbstractParamArray{T,2,<:AbstractMatrix{T}}GridapROMs.ParamDataStructures.AbstractParamVector — Type
const AbstractParamVector{T} = AbstractParamArray{T,1,<:AbstractVector{T}}GridapROMs.ParamDataStructures.AbstractRealization — Type
abstract type AbstractRealization endType representing parametric realizations, i.e. samples extracted from a given parameter space. Subtypes:
GridapROMs.ParamDataStructures.AbstractSnapshots — Type
abstract type AbstractSnapshots{T,N} <: AbstractParamData{T,N} endType representing N-dimensional arrays of snapshots. Subtypes must contain the following information:
- data: a (parametric) array
- realization: a subtype of
AbstractRealization, representing the points in the parameter space used to compute the arraydata - dof map: a subtype of
AbstractDofMap, representing a reindexing strategy for the arraydata
Subtypes:
GridapROMs.ParamDataStructures.BlockConsecutiveParamArray — Type
const BlockConsecutiveParamArray{T,N,A<:Vector{<:ConsecutiveParamArray{T,N}},B} = BlockParamArray{T,N,A,B}GridapROMs.ParamDataStructures.BlockConsecutiveParamMatrix — Type
const BlockConsecutiveParamMatrix{T,A<:Matrix{<:ConsecutiveParamMatrix{T}},B} = BlockParamMatrix{T,A,B}GridapROMs.ParamDataStructures.BlockConsecutiveParamVector — Type
const BlockConsecutiveParamVector{T,A<:Vector{<:ConsecutiveParamVector{T}},B} = BlockParamVector{T,A,B}GridapROMs.ParamDataStructures.BlockParamArray — Type
struct BlockParamArray{T,N,A<:AbstractArray{<:AbstractParamArray{T,N},N},B<:NTuple{N,AbstractUnitRange{Int}}} <: ParamArray{T,N}
data::A
axes::B
endIs to a ParamArray as a BlockArray is to a regular AbstractArray
GridapROMs.ParamDataStructures.BlockParamMatrix — Type
const BlockParamMatrix{T,A,B} = BlockParamArray{T,2,A,B}GridapROMs.ParamDataStructures.BlockParamVector — Type
const BlockParamVector{T,A,B} = BlockParamArray{T,1,A,B}GridapROMs.ParamDataStructures.BlockSnapshots — Type
struct BlockSnapshots{S<:Snapshots,N} <: AbstractSnapshots{S,N}
array::Array{S,N}
touched::Array{Bool,N}
endBlock container for Snapshots of type S in a MultiField setting. This type is conceived similarly to ArrayBlock in Gridap
GridapROMs.ParamDataStructures.ConsecutiveParamArray — Type
struct ConsecutiveParamArray{T,N,M,A<:AbstractArray{T,M}} <: ParamArray{T,N}
data::A
endParametric array with entries stored consecutively in memory. It is characterized by an inner size equal to size(data)[1:N], and parametric length equal to size(data,N+1), where data is an AbstractArray of dimension M = N+1
GridapROMs.ParamDataStructures.ConsecutiveParamMatrix — Type
const ConsecutiveParamMatrix{T,A<:AbstractArray{T,3}} = ConsecutiveParamArray{T,2,3,A}GridapROMs.ParamDataStructures.ConsecutiveParamSparseMatrixCSC — Type
struct ConsecutiveParamSparseMatrixCSC{Tv,Ti<:Integer,A<:AbstractMatrix{Tv}} <: ParamSparseMatrixCSC{Tv,Ti}
m::Int64
n::Int64
colptr::Vector{Ti}
rowval::Vector{Ti}
data::A
endRepresents a vector of sparse matrices in CSC format, with entries stored consecutively in memory. For sake of coherence, an instance of ConsecutiveParamSparseMatrixCSC inherits from AbstractMatrix{<:SparseMatrixCSC{Tv,Ti} rather than AbstractVector{<:SparseMatrixCSC{Tv,Ti}, but should conceptually be thought as an AbstractVector{<:SparseMatrixCSC{Tv,Ti}.
GridapROMs.ParamDataStructures.ConsecutiveParamSparseMatrixCSR — Type
struct ConsecutiveParamSparseMatrixCSR{Bi,Tv,Ti<:Integer,A<:AbstractMatrix{Tv}} <: ParamSparseMatrixCSR{Bi,Tv,Ti}
m::Int64
n::Int64
rowptr::Vector{Ti}
colval::Vector{Ti}
data::A
endRepresents a vector of sparse matrices in CSR format, with entries stored consecutively in memory. For sake of coherence, an instance of ConsecutiveParamSparseMatrixCSR inherits from AbstractMatrix{<:SparseMatrixCSR{Bi,Tv,Ti} rather than AbstractVector{<:SparseMatrixCSR{Bi,Tv,Ti}, but should conceptually be thought as an AbstractVector{<:SparseMatrixCSR{Bi,Tv,Ti}.
GridapROMs.ParamDataStructures.ConsecutiveParamVector — Type
const ConsecutiveParamVector{T,A<:AbstractArray{T,2}} = ConsecutiveParamArray{T,1,2,A}GridapROMs.ParamDataStructures.GenericParamBlock — Type
struct GenericParamBlock{A} <: ParamBlock{A}
data::Vector{A}
endMost standard implementation of a ParamBlock
GridapROMs.ParamDataStructures.GenericParamMatrix — Type
struct GenericParamMatrix{Tv,Ti} <: ParamArray{Tv,2}
data::Vector{Tv}
ptrs::Vector{Ti}
nrows::Vector{Ti}
endParametric matrix with entries stored non-consecutively in memory
GridapROMs.ParamDataStructures.GenericParamSparseMatrixCSC — Type
struct GenericParamSparseMatrixCSC{Tv,Ti<:Integer} <: ParamSparseMatrixCSC{Tv,Ti}
m::Int64
n::Int64
colptr::Vector{Ti}
rowval::Vector{Ti}
data::Vector{Tv}
ptrs::Vector{Ti}
endRepresents a vector of sparse matrices in CSC format, with entries stored non-consecutively in memory. For sake of coherence, an instance of GenericParamSparseMatrixCSC inherits from AbstractMatrix{<:SparseMatrixCSC{Tv,Ti} rather than AbstractVector{<:SparseMatrixCSC{Tv,Ti}, but should conceptually be thought as an AbstractVector{<:SparseMatrixCSC{Tv,Ti}.
GridapROMs.ParamDataStructures.GenericParamSparseMatrixCSR — Type
struct GenericParamSparseMatrixCSR{Bi,Tv,Ti<:Integer} <: ParamSparseMatrixCSR{Bi,Tv,Ti}
m::Int64
n::Int64
rowptr::Vector{Ti}
colval::Vector{Ti}
data::Vector{Tv}
ptrs::Vector{Ti}
endRepresents a vector of sparse matrices in CSR format, with entries stored non-consecutively in memory. For sake of coherence, an instance of GenericParamSparseMatrixCSR inherits from AbstractMatrix{<:SparseMatrixCSR{Bi,Tv,Ti} rather than AbstractVector{<:SparseMatrixCSR{Bi,Tv,Ti}, but should conceptually be thought as an AbstractVector{<:SparseMatrixCSR{Bi,Tv,Ti}.
GridapROMs.ParamDataStructures.GenericParamVector — Type
struct GenericParamVector{Tv,Ti} <: ParamArray{Tv,1}
data::Vector{Tv}
ptrs::Vector{Ti}
endParametric vector with entries stored non-consecutively in memory
GridapROMs.ParamDataStructures.GenericSnapshots — Type
struct GenericSnapshots{T,N,I,R,A} <: Snapshots{T,N,I,R,A}
data::A
dof_map::I
realization::R
endMost standard implementation of a Snapshots
GridapROMs.ParamDataStructures.GenericTransientRealization — Type
struct GenericTransientRealization{P,T,A} <: TransientRealization{P,T}
params::P
times::A
t0::T
endMost standard implementation of a TransientRealization.
GridapROMs.ParamDataStructures.HaltonSampling — Type
struct HaltonSampling <: SamplingStyle
start::Int
endSampling according to a Halton sequence
Halton is a sequence, not a distribution, hence this sampling strategy repeats realizations since the draws are not randomized; to draw different parameters, one needs to provide a starting point in the sequence (start = 1 by default)
GridapROMs.ParamDataStructures.LatinHypercubeSampling — Type
struct LatinHypercubeSampling <: SamplingStyle endSampling according to a Latin HyperCube distribution
GridapROMs.ParamDataStructures.NormalSampling — Type
struct NormalSampling <: SamplingStyle endSampling according to a normal distribution
GridapROMs.ParamDataStructures.ParamArray — Type
abstract type ParamArray{T,N} <: AbstractParamArray{T,N,Array{T,N}} endType representing parametric arrays of type A. Subtypes:
Also acts as a constructor according to the following rules:
- ParamArray(A::AbstractArray{<:Number}) -> ParamNumber
- ParamArray(A::AbstractArray{<:Number},plength::Int) -> TrivialParamArray
- ParamArray(A::AbstractVector{<:AbstractArray}) -> ParamArray
- ParamArray(A::AbstractVector{<:AbstractSparseMatrix}) -> ParamSparseMatrix
- ParamArray(A::AbstractArray{<:ParamArray}) -> BlockParamArray
GridapROMs.ParamDataStructures.ParamBlock — Type
abstract type ParamBlock{A} endType representing cell-wise quantities defined during the integration routine. They are primarily used when lazily evaluating parametric quantities on the mesh. The implementation of the lazy interface mimics that of ArrayBlock in Gridap. Subtypes: -GenericParamBlock -TrivialParamBlock
GridapROMs.ParamDataStructures.ParamFunction — Type
struct ParamFunction{F,P} <: AbstractParamFunction{P}
fun::F
params::P
endRepresentation of parametric functions with domain a parametric space. Given a function f : Ω₁ × ... × Ωₙ × D, where D is a ParamSpace, the evaluation of f in μ ∈ D returns the restriction of f to Ω₁ × ... × Ωₙ
GridapROMs.ParamDataStructures.ParamMatrix — Type
const ParamMatrix{T} = ParamArray{T,2}GridapROMs.ParamDataStructures.ParamNumber — Type
struct ParamNumber{T<:Number,A<:AbstractVector{T}} <: AbstractParamData{T,1}
data::A
endUsed as a wrapper for non-array structures, e.g. factorizations or numbers
GridapROMs.ParamDataStructures.ParamSpace — Type
struct ParamSpace{P<:AbstractVector{<:AbstractVector},S<:SamplingStyle} <: AbstractSet{Realization}
param_domain::P
sampling_style::S
endFields:
param_domain: domain of definition of the parameterssampling_style: distribution onparam_domainaccording to which we can sample the parameters (by default it is set toHaltonSampling)
GridapROMs.ParamDataStructures.ParamSparseMatrix — Type
abstract type ParamSparseMatrix{Tv,Ti,A<:AbstractSparseMatrix{Tv,Ti}
} <: AbstractParamArray{Tv,2,A} endType representing parametric abstract sparse matrices of type A. Subtypes:
GridapROMs.ParamDataStructures.ParamSparseMatrixCSC — Type
abstract type ParamSparseMatrixCSC{Tv,Ti} <: ParamSparseMatrix{Tv,Ti,SparseMatrixCSC{Tv,Ti}} endType representing parametric sparse matrices in CSC format. Subtypes:
GridapROMs.ParamDataStructures.ParamSparseMatrixCSR — Type
abstract type ParamSparseMatrixCSR{Bi,Tv,Ti} <: ParamSparseMatrix{Tv,Ti,SparseMatrixCSR{Bi,Tv,Ti}} endType representing parametric sparse matrices in CSR format. Subtypes:
GridapROMs.ParamDataStructures.ParamVector — Type
const ParamVector{T} = ParamArray{T,1}GridapROMs.ParamDataStructures.ParamVectorWithEntryInserted — Type
struct ParamVectorWithEntryInserted{T,A} <: ParamVector{T}
a::A
index::Int
value::Vector{T}
endGridapROMs.ParamDataStructures.ParamVectorWithEntryRemoved — Type
struct ParamVectorWithEntryRemoved{T,A} <: ParamVector{T}
a::A
index::Int
endGridapROMs.ParamDataStructures.Realization — Type
struct Realization{P<:AbstractVector} <: AbstractRealization
params::P
endRepresents standard parametric realizations, i.e. samples extracted from a given parameter space. The field params is most commonly a vector of vectors. When the parameters are scalars, they still need to be defined as vectors of vectors of unit length. In other words, we treat the case in which params is a vector of numbers as the case in which params is a vector of one vector.
GridapROMs.ParamDataStructures.ReshapedSnapshots — Type
struct ReshapedSnapshots{T,N,I,R,A,B} <: Snapshots{T,N,I,R,A}
data::A
param_data::B
dof_map::I
realization::R
endMost standard implementation of a Snapshots
GridapROMs.ParamDataStructures.SamplingStyle — Type
abstract type SamplingStyle endSubtypes:
GridapROMs.ParamDataStructures.Snapshots — Type
abstract type Snapshots{T,N,I,R,A} <: AbstractSnapshots{T,N} endType representing a collection of parametric abstract arrays of eltype T, that are associated with a realization of type R. Unlike AbstractParamArray, which are arrays of arrays, subtypes of Snapshots are arrays of numbers.
Subtypes:
GridapROMs.ParamDataStructures.SteadySnapshots — Type
const SteadySnapshots{T,N,I,R<:Realization,A} = Snapshots{T,N,I,R,A}GridapROMs.ParamDataStructures.TensorialUniformSampling — Type
struct TensorialUniformSampling <: SamplingStyle endSampling according to a tensorial uniform distribution
GridapROMs.ParamDataStructures.TransientParamFunction — Type
struct TransientParamFunction{F,P,T} <: AbstractParamFunction{P}
fun::F
params::P
times::T
endRepresentation of parametric functions with domain a transient parametric space. Given a function f : Ω₁ × ... × Ωₙ × D × [t₁,t₂], where [t₁,t₂] is a temporal domain and D is a ParamSpace, or equivalently f : Ω₁ × ... × Ωₙ × D × [t₁,t₂], where D is a TransientParamSpace, the evaluation of f in (μ,t) ∈ D × [t₁,t₂] returns the restriction of f to Ω₁ × ... × Ωₙ
GridapROMs.ParamDataStructures.TransientParamSpace — Type
struct TransientParamSpace{P<:ParamSpace,T} <: AbstractSet{TransientRealization}
parametric_space::P
temporal_domain::T
endFields:
parametric_space: underlying parameter spacetemporal_domain: underlying temporal space
It represents, in essence, the set of tuples (p,t) in parametric_space × temporal_domain
GridapROMs.ParamDataStructures.TransientRealization — Type
abstract type TransientRealization{P<:Realization,T<:Real} <: AbstractRealization endRepresents temporal parametric realizations, i.e. samples extracted from a given parameter space for every time step in a temporal range. The most obvious application of this type are transient PDEs, where an initial condition is given. Following this convention, the initial time instant is kept separate from the other time steps.
GridapROMs.ParamDataStructures.TransientRealizationAt — Type
struct TransientRealizationAt{P,T} <: TransientRealization{P,T}
params::P
t::Base.RefValue{T}
endRepresents a GenericTransientRealization{P,T} at a certain time instant t. To avoid making it a mutable struct, the time instant t is stored as a Base.RefValue{T}.
GridapROMs.ParamDataStructures.TransientSnapshots — Type
const TransientSnapshots{T,N,I,R<:TransientRealization,A} = Snapshots{T,N,I,R,A}Transient specialization of a Snapshots
Subtypes:
GridapROMs.ParamDataStructures.TransientSnapshotsWithIC — Type
struct TransientSnapshotsWithIC{T,N,I,R,A,B<:TransientSnapshots{T,N,I,R,A}} <: TransientSnapshots{T,N,I,R,A}
initial_data::A
snaps::B
endStores a TransientSnapshots snaps alongside a parametric initial condition initial_data
GridapROMs.ParamDataStructures.TrivialParamArray — Type
struct TrivialParamArray{T<:Number,N,A<:AbstractArray{T,N}} <: ParamArray{T,N}
data::A
plength::Int
endWrapper for a non-parametric array data that we wish assumed a parametric length
GridapROMs.ParamDataStructures.TrivialParamBlock — Type
struct TrivialParamBlock{A} <: ParamBlock{A}
data::A
plength::Int
endWrapper for a non-paramentric quantity data that we wish assumed a parametric length plength
GridapROMs.ParamDataStructures.UniformSampling — Type
struct UniformSampling <: SamplingStyle endSampling according to a uniform distribution
GridapROMs.ParamDataStructures.eltype2 — Method
eltype2(a) -> TypeReturns the eltype of eltype(a), i.e. it extracts the eltype of a parametric entry of a
GridapROMs.ParamDataStructures.find_param_length — Method
find_param_length(a...) -> IntReturns the parametric length of all parametric quantities. An error is thrown if there are no parametric quantities or if at least two quantities have different parametric length
GridapROMs.ParamDataStructures.get_all_data — Method
get_all_data(A::ParamArray) -> AbstractArray{<:Any}Returns all the entries stored in A, assuming A stores its entries consecutively
GridapROMs.ParamDataStructures.get_at_time — Function
get_at_time(r::GenericTransientRealization,time) -> TransientRealizationAtReturns a TransientRealizationAt from a GenericTransientRealization at a time instant specified by time
GridapROMs.ParamDataStructures.get_final_time — Method
get_final_time(r::GenericTransientRealization) -> RealGridapROMs.ParamDataStructures.get_initial_time — Method
get_initial_time(r::GenericTransientRealization) -> RealGridapROMs.ParamDataStructures.get_param_data — Method
get_param_data(a) -> AnyReturns the parametric data of a, usually in the form of a AbstractVector or a NTuple
GridapROMs.ParamDataStructures.get_param_entry — Method
get_param_entry(A::AbstractParamArray{T},i...) where T -> Vector{eltype(T)}Returns a vector of the entries of A at index i, for every parameter. The length of the output is equals to param_length(A)
GridapROMs.ParamDataStructures.get_params — Method
get_params(r::AbstractRealization) -> RealizationGridapROMs.ParamDataStructures.get_realization — Method
get_realization(s::AbstractSnapshots) -> AbstractRealizationReturns the realizations associated to the snapshots s
GridapROMs.ParamDataStructures.get_times — Method
get_times(r::TransientRealization) -> AnyGridapROMs.ParamDataStructures.inneraxes — Method
inneraxes(A::AbstractParamArray) -> Tuple{Vararg{Base.OneTo}}Returns the axes of A for a single parameter
GridapROMs.ParamDataStructures.innerlength — Method
innerlength(A) -> IntReturns the length of A for a single parameter. The total entries of A is equals to param_length(A)*innerlength(A)
GridapROMs.ParamDataStructures.num_params — Method
num_params(r::AbstractRealization) -> IntGridapROMs.ParamDataStructures.num_times — Method
get_times(r::TransientRealization) -> IntGridapROMs.ParamDataStructures.param_eachindex — Method
param_eachindex(a,i::Integer) -> AnyReturns the parametric range of a 1:param_length(a)
GridapROMs.ParamDataStructures.param_getindex — Method
param_getindex(a,i::Integer) -> AnyReturns the parametric entry of a at the index i ∈ {1,...,param_length(a)}
GridapROMs.ParamDataStructures.param_length — Method
param_length(a) -> IntReturns the parametric length of a
GridapROMs.ParamDataStructures.param_setindex! — Method
param_setindex!(a,v,i::Integer) -> AnySets the parametric entry of a to v at the index i ∈ {1,...,param_length(a)}
GridapROMs.ParamDataStructures.parameterize — Method
parameterize(a,plength::Integer) -> AnyReturns a quantity with parametric length plength from a. When a already possesses a parametric length, i.e. it is a parametrized quantity, it returns a
GridapROMs.ParamDataStructures.parameterize — Method
parameterize(f::Function,r::Realization) -> ParamFunction
parameterize(f::Function,r::TransientRealization) -> TransientParamFunctionMethod that parameterizes an input quantity by a realization r
GridapROMs.ParamDataStructures.realization — Method
realization(p::ParamSpace;nparams=1,sampling=get_sampling_style(p),kwargs...) -> Realization
realization(p::TransientParamSpace;nparams=1,sampling=get_sampling_style(p),kwargs...) -> TransientRealizationExtraction of a set of nparams parameters from a given parametric space, by default according to the sampling strategy specified in p.
GridapROMs.ParamDataStructures.shift! — Method
shift!(r::TransientRealization,δ::Real) -> NothingIn-place uniform shifting by a constant δ of the temporal domain in the realization r
GridapROMs.ParamDataStructures.space_dofs — Method
space_dofs(s::SteadySnapshots{T,N}) where {T,N} -> NTuple{N-1,Integer}
space_dofs(s::TransientSnapshots{T,N}) where {T,N} -> NTuple{N-2,Integer}Returns the spatial size of the snapshots