Loading...
Searching...
No Matches
HyperReduction< SnapshotsLists > Class Template Reference

#include <hyperReduction.H>

Public Types

using SnapshotsListTuple = std::tuple<std::decay_t<SnapshotsLists>...>
 
using FieldsTuple = std::tuple<typename std::decay_t<SnapshotsLists>::value_type ...>
 
template<std::size_t N>
using NthFieldListType = typename std::tuple_element<N, SnapshotsListTuple>::type
 
template<std::size_t N>
using NthFieldType = typename NthFieldListType<N>::value_type
 

Public Member Functions

 HyperReduction (label n_modes, label n_nodes, Eigen::VectorXi initialSeeds, word problemName, SnapshotsLists &&...snapshotsLists)
 Construct HyperReduction class, interpolation-based.
 
 HyperReduction (label n_modes, label n_nodes, unsigned int vectorial_dim, label n_cells, Eigen::VectorXi initialSeeds, word problemName)
 Construct HyperReduction class.
 
void offlineGappyDEIM (Eigen::MatrixXd &snapshotsModes, Eigen::VectorXd &normalizingWeights)
 Methods implemented: 'GappyDEIM' from "DEIM, Chaturantabut, Saifon, and Danny C. Sorensen. "Nonlinear model reduction via discrete empirical interpolation.
 
void offlineGappyDEIM (Eigen::MatrixXd &snapshotsModes, Eigen::VectorXd &normalizingWeights, word folderMethodName)
 
void offlineECP (Eigen::MatrixXd &snapshotsModes, Eigen::VectorXd &normalizingWeights)
 Methods implemented: 'ECP' from "ECP, Hernandez, Joaquin Alberto, Manuel Alejandro Caicedo, and Alex Ferrer. "Dimensional hyper-reduction of nonlinear finite element models via empirical cubature.
 
void offlineECP (Eigen::MatrixXd &snapshotsModes, Eigen::VectorXd &normalizingWeights, word folderMethodName)
 
void initSeeds (Eigen::VectorXd mp_not_mask, std::set< label > nodePointsSet)
 TODO.
 
void computeLS (Eigen::MatrixXd &J, Eigen::MatrixXd &JWhole, Eigen::VectorXd &b, Eigen::VectorXd &q)
 TODO.
 
void getModesSVD (SnapshotsListTuple &SnapshotsListTuple, Eigen::MatrixXd &modesSVD, Eigen::VectorXd &fieldWeights, bool saveModesFlag=false)
 TODO.
 
void getModesSVD (SnapshotsListTuple &snapshotsListTuple, Eigen::MatrixXd &modesSVD, Eigen::VectorXd &fieldWeights, Eigen::MatrixXd &modesSVDBoundary, Eigen::VectorXd &fieldWeightsBoundary, bool saveModesFlag)
 TODO.
 
void updateNodes (Eigen::SparseMatrix< double > &P, label &ind_max, Eigen::VectorXd &mp_not_mask)
 TODO.
 
template<typename SnapshotsList >
void stackSnapshots (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, Eigen::VectorXd &fieldWeights)
 TODO.
 
template<typename SnapshotsList >
void stackSnapshotsBoundary (SnapshotsList sList, List< Eigen::MatrixXd > &snapshotsMatrixBoundary, List< Eigen::VectorXd > &fieldWeightsBoundary)
 TODO.
 
template<typename SnapshotsList >
void saveModes (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, unsigned int &rowIndex, unsigned int &modeIndex, word folder)
 TODO.
 
template<typename SnapshotsList >
void saveModes (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, Eigen::MatrixXd &snapshotsMatrixBoundary, unsigned int &rowIndex, unsigned int &rowIndexBoundary, unsigned int &modeIndex, word folder)
 TODO.
 
template<typename SnapshotsList >
void stackNames (SnapshotsList sList)
 TODO.
 
template<typename SnapshotsList >
void stackDimensions (SnapshotsList sList)
 TODO.
 
template<typename SnapshotsList >
void sumDimensions (double sum, SnapshotsList sList)
 TODO.
 
void evaluatePinv (Eigen::SparseMatrix< double > &Projector, Eigen::MatrixXd &Modes, Eigen::VectorXd &fieldWeights)
 Compute the pseudo-inverse of the matrix M restricted with the projector P.
 
void evaluateWPU (Eigen::SparseMatrix< double > &Projector, Eigen::MatrixXd &Modes, Eigen::VectorXd &fieldWeights, Eigen::VectorXd &quadratureWeights)
 Compute the pseudo-inverse of the matrix M restricted with the projector P.
 
void generateSubmesh (label layers, const fvMesh &mesh)
 Compute the submesh common to all fields in SnapshotsLists.
 
List< label > global2local (List< label > &points, fvMeshSubset &submesh)
 Get local indices in the submesh from indices in the global ones.
 
template<typename FieldType >
autoPtr< FieldType > interpolateField (const FieldType &field)
 TODO.
 
template<typename Field >
constexpr unsigned int get_field_dim ()
 TODO.
 
template<typename LastList >
constexpr unsigned int compute_vectorial_dim (LastList x)
 TODO.
 
template<typename List , typename... RemainingLists>
constexpr unsigned int compute_vectorial_dim (List &&head, RemainingLists &&...tail)
 TODO.
 
template<typename... FieldsArgs>
void eigen2fields (Eigen::VectorXd &eFields, FieldsArgs &&... oFields)
 TODO.
 
void initReshapeMat (Eigen::SparseMatrix< double > &reshapeMat)
 TODO.
 
void createMasks (bool offlineStage=true)
 TODO.
 
void getSnapMatrix (Eigen::MatrixXd &snapMatrix, Eigen::VectorXd &fieldWeights)
 TODO.
 
void getSnapMatrix (Eigen::MatrixXd &snapMatrix, Eigen::VectorXd &fieldWeights, List< Eigen::MatrixXd > &snapMatrixBoundary, List< Eigen::VectorXd > &fieldWeightsBoundary)
 TODO.
 

Static Public Member Functions

static double s_optimality (Eigen::MatrixXd &A)
 TODO.
 

Public Attributes

word methodName
 
unsigned int vectorial_dim
 
unsigned int sumFieldsDim
 
ITHACAparameterspara
 
label n_boundary_patches
 
List< label > n_boundary_cells_list
 
label n_boundary_cells
 
label n_modes
 The maximum number of modes to be considered.
 
label n_nodes
 The maximum number of modes to be considered.
 
label n_snapshots
 The length of the snapshots lists.
 
Eigen::VectorXi initialSeeds
 
Eigen::VectorXi nodes
 
word problemName
 The name of the non-linear function e.g. HR_method/residual.
 
SnapshotsListTuple snapshotsListTuple
 The snapshots matrix containing the nonlinear function or operator.
 
List< word > fieldNames
 Names of the fields.
 
List< unsigned int > fieldDims
 Dimensions of the fields.
 
label n_cells
 Int Number of Cells;.
 
label n_cellsSubfields
 Int Number of Cells in submeshes;.
 
autoPtr< IOList< label > > nodePoints
 Nodes in the case of the a nonlinear function.
 
autoPtr< IOList< labelList > > totalNodePoints
 List of label lists of the nodes and corresponding surrounding nodes.
 
autoPtr< IOList< label > > uniqueNodePoints
 List of the unique indices of the nodes that define the submesh.
 
word folderProblem
 Folder for the HR problem.
 
word folderMethod
 Folder for the selected HR method.
 
List< label > localNodePoints
 Indices of the local node points in the subMesh.
 
Eigen::MatrixXd basisMatrix
 Orthonormal basis of HR.
 
Eigen::VectorXd normalizingWeights
 
Eigen::MatrixXd renormalizedBasisMatrix
 Renormalized basis of HR.
 
Eigen::MatrixXd pinvPU
 
Eigen::MatrixXd wPU
 
Eigen::VectorXd eigenValueseig
 
Eigen::SparseMatrix< double > P
 The P matrix of the HyperReduction method. The nodes are ordered in the order of insertion during the greedy procedure. The components related to the same node follow immediately.
 
Eigen::SparseMatrix< double > field2submesh
 
Eigen::SparseMatrix< double > submesh2nodes
 
Eigen::VectorXi submesh2nodesMask
 
Eigen::VectorXd quadratureWeights
 Quadrature weights. Ordered in the same order of matrix P.
 
autoPtr< fvMeshSubset > submesh
 Submesh of the HyperReduction method.
 
autoPtr< volVectorField > submesh_field
 Submeshes.
 
Eigen::MatrixXd MatrixOnline
 Online Matrix.
 

Static Public Attributes

static constexpr auto n_fields = sizeof...(SnapshotsLists)
 

Detailed Description

template<typename... SnapshotsLists>
class HyperReduction< SnapshotsLists >
Examples
08DEIM.C.

Definition at line 47 of file hyperReduction.H.

Member Typedef Documentation

◆ FieldsTuple

template<typename... SnapshotsLists>
using HyperReduction< SnapshotsLists >::FieldsTuple = std::tuple<typename std::decay_t<SnapshotsLists>::value_type ...>

Definition at line 53 of file hyperReduction.H.

◆ NthFieldListType

template<typename... SnapshotsLists>
template<std::size_t N>
using HyperReduction< SnapshotsLists >::NthFieldListType = typename std::tuple_element<N, SnapshotsListTuple>::type

Definition at line 61 of file hyperReduction.H.

◆ NthFieldType

template<typename... SnapshotsLists>
template<std::size_t N>
using HyperReduction< SnapshotsLists >::NthFieldType = typename NthFieldListType<N>::value_type

Definition at line 64 of file hyperReduction.H.

◆ SnapshotsListTuple

template<typename... SnapshotsLists>
using HyperReduction< SnapshotsLists >::SnapshotsListTuple = std::tuple<std::decay_t<SnapshotsLists>...>

Definition at line 52 of file hyperReduction.H.

Constructor & Destructor Documentation

◆ HyperReduction() [1/2]

template<typename... SnapshotsLists>
HyperReduction< SnapshotsLists >::HyperReduction ( label n_modes,
label n_nodes,
Eigen::VectorXi initialSeeds,
word problemName,
SnapshotsLists &&... snapshotsLists )

Construct HyperReduction class, interpolation-based.

SnapshotsLists is a variadic argument of PtrLists of fields e.g. for incompressible Navier-Stokes PtrList<volVectorField>, PtrList<volScalarField> for velocity and pressure.

Parameters
[in]hrMethodthe chosen HR method
[in]n_modesdimension of the HR basis
[in]n_nodesnumber of nodes
[in]initialSeedsinitial nodes
[in]problemNamename of the function to be hyper-reduced
[in]snapshotsListslists of fields
Examples
08DEIM.C.

Definition at line 40 of file hyperReduction.templates.H.

◆ HyperReduction() [2/2]

template<typename... SnapshotsLists>
HyperReduction< SnapshotsLists >::HyperReduction ( label n_modes,
label n_nodes,
unsigned int vectorial_dim,
label n_cells,
Eigen::VectorXi initialSeeds,
word problemName )

Construct HyperReduction class.

Parameters
[in]n_modesDimension of the HR basis
[in]n_nodesNumber of nodes
[in]vectorial_dimField dimension (1 for volScalarField 3 for volVectorField)
[in]n_cellsNumber of cells
[in]initialSeedsInitial nodes
[in]problemNameName of the function to be hyper-reduced

Definition at line 101 of file hyperReduction.templates.H.

Member Function Documentation

◆ compute_vectorial_dim() [1/2]

template<typename... SnapshotsLists>
template<typename LastList >
unsigned int HyperReduction< SnapshotsLists >::compute_vectorial_dim ( LastList x)
inlineconstexpr

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 391 of file hyperReduction.H.

◆ compute_vectorial_dim() [2/2]

template<typename... SnapshotsLists>
template<typename List , typename... RemainingLists>
unsigned int HyperReduction< SnapshotsLists >::compute_vectorial_dim ( List && head,
RemainingLists &&... tail )
inlineconstexpr

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 399 of file hyperReduction.H.

◆ computeLS()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::computeLS ( Eigen::MatrixXd & J,
Eigen::MatrixXd & JWhole,
Eigen::VectorXd & b,
Eigen::VectorXd & q )

TODO.

Definition at line 794 of file hyperReduction.templates.H.

◆ createMasks()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::createMasks ( bool offlineStage = true)

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 972 of file hyperReduction.templates.H.

◆ eigen2fields()

template<typename... SnapshotsLists>
template<typename... FieldsArgs>
void HyperReduction< SnapshotsLists >::eigen2fields ( Eigen::VectorXd & eFields,
FieldsArgs &&... oFields )
inline

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 423 of file hyperReduction.H.

◆ evaluatePinv()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::evaluatePinv ( Eigen::SparseMatrix< double > & Projector,
Eigen::MatrixXd & Modes,
Eigen::VectorXd & fieldWeights )

Compute the pseudo-inverse of the matrix M restricted with the projector P.

Parameters
[in]Projectorprojector into interpolation nodes
[in]Modesmatrix to restrict and invert

Definition at line 874 of file hyperReduction.templates.H.

◆ evaluateWPU()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::evaluateWPU ( Eigen::SparseMatrix< double > & Projector,
Eigen::MatrixXd & Modes,
Eigen::VectorXd & fieldWeights,
Eigen::VectorXd & quadratureWeights )

Compute the pseudo-inverse of the matrix M restricted with the projector P.

Parameters
[in]Projectorprojector into interpolation nodes
[in]Modesmatrix to restrict and invert

Definition at line 883 of file hyperReduction.templates.H.

◆ generateSubmesh()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::generateSubmesh ( label layers,
const fvMesh & mesh )

Compute the submesh common to all fields in SnapshotsLists.

Parameters
[in]layersprojector into interpolation nodes
[in]meshmatrix to restrict and invert

Definition at line 902 of file hyperReduction.templates.H.

◆ get_field_dim()

template<typename... SnapshotsLists>
template<typename Field >
unsigned int HyperReduction< SnapshotsLists >::get_field_dim ( )
inlineconstexpr

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 380 of file hyperReduction.H.

◆ getModesSVD() [1/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::getModesSVD ( SnapshotsListTuple & SnapshotsListTuple,
Eigen::MatrixXd & modesSVD,
Eigen::VectorXd & fieldWeights,
bool saveModesFlag = false )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 124 of file hyperReduction.templates.H.

◆ getModesSVD() [2/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::getModesSVD ( SnapshotsListTuple & snapshotsListTuple,
Eigen::MatrixXd & modesSVD,
Eigen::VectorXd & fieldWeights,
Eigen::MatrixXd & modesSVDBoundary,
Eigen::VectorXd & fieldWeightsBoundary,
bool saveModesFlag )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 210 of file hyperReduction.templates.H.

◆ getSnapMatrix() [1/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::getSnapMatrix ( Eigen::MatrixXd & snapMatrix,
Eigen::VectorXd & fieldWeights )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 315 of file hyperReduction.templates.H.

◆ getSnapMatrix() [2/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::getSnapMatrix ( Eigen::MatrixXd & snapMatrix,
Eigen::VectorXd & fieldWeights,
List< Eigen::MatrixXd > & snapMatrixBoundary,
List< Eigen::VectorXd > & fieldWeightsBoundary )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 321 of file hyperReduction.templates.H.

◆ global2local()

template<typename... SnapshotsLists>
List< label > HyperReduction< SnapshotsLists >::global2local ( List< label > & points,
fvMeshSubset & submesh )

Get local indices in the submesh from indices in the global ones.

Parameters
pointsThe points
submeshThe submesh
Returns
The local indices

Definition at line 1023 of file hyperReduction.templates.H.

◆ initReshapeMat()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::initReshapeMat ( Eigen::SparseMatrix< double > & reshapeMat)

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 810 of file hyperReduction.templates.H.

◆ initSeeds()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::initSeeds ( Eigen::VectorXd mp_not_mask,
std::set< label > nodePointsSet )

TODO.

Definition at line 730 of file hyperReduction.templates.H.

◆ interpolateField()

template<typename... SnapshotsLists>
template<typename FieldType >
autoPtr< FieldType > HyperReduction< SnapshotsLists >::interpolateField ( const FieldType & field)
inline

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 368 of file hyperReduction.H.

◆ offlineECP() [1/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::offlineECP ( Eigen::MatrixXd & snapshotsModes,
Eigen::VectorXd & normalizingWeights )
inline

Methods implemented: 'ECP' from "ECP, Hernandez, Joaquin Alberto, Manuel Alejandro Caicedo, and Alex Ferrer. "Dimensional hyper-reduction of nonlinear finite element models via empirical cubature.

" Computer methods in applied mechanics and engineering 313 (2017): 687-722.". TODO implement non-negative LS.

Definition at line 219 of file hyperReduction.H.

◆ offlineECP() [2/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::offlineECP ( Eigen::MatrixXd & snapshotsModes,
Eigen::VectorXd & normalizingWeights,
word folderMethodName )

Definition at line 621 of file hyperReduction.templates.H.

◆ offlineGappyDEIM() [1/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::offlineGappyDEIM ( Eigen::MatrixXd & snapshotsModes,
Eigen::VectorXd & normalizingWeights )
inline

Methods implemented: 'GappyDEIM' from "DEIM, Chaturantabut, Saifon, and Danny C. Sorensen. "Nonlinear model reduction via discrete empirical interpolation.

" SIAM Journal on Scientific Computing 32.5 (2010): 2737-2764" and "GNAT, Carlberg, Kevin, et al. "The GNAT method for nonlinear model reduction: effective implementation and application to computational fluid dynamics and turbulent flows." Journal of Computational Physics 242 (2013): 623-647.". Quasi-optimal point selection algorithm 'SOPT' and optimal point selection 'SOPTE' from "Lauzon, Jessica T., Siu Wun Cheung, Yeonjong Shin, Youngsoo Choi, Dylan Matthew Copeland, and Kevin Huynh. "S-OPT: A Points Selection Algorithm for Hyper-Reduction in Reduced Order Models." arXiv preprint arXiv:2203.16494 (2022).""

Definition at line 208 of file hyperReduction.H.

◆ offlineGappyDEIM() [2/2]

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::offlineGappyDEIM ( Eigen::MatrixXd & snapshotsModes,
Eigen::VectorXd & normalizingWeights,
word folderMethodName )

Definition at line 371 of file hyperReduction.templates.H.

◆ s_optimality()

template<typename... SnapshotsLists>
static double HyperReduction< SnapshotsLists >::s_optimality ( Eigen::MatrixXd & A)
inlinestatic

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 409 of file hyperReduction.H.

◆ saveModes() [1/2]

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::saveModes ( SnapshotsList sList,
Eigen::MatrixXd & snapshotsMatrix,
Eigen::MatrixXd & snapshotsMatrixBoundary,
unsigned int & rowIndex,
unsigned int & rowIndexBoundary,
unsigned int & modeIndex,
word folder )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 347 of file hyperReduction.templates.H.

◆ saveModes() [2/2]

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::saveModes ( SnapshotsList sList,
Eigen::MatrixXd & snapshotsMatrix,
unsigned int & rowIndex,
unsigned int & modeIndex,
word folder )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 334 of file hyperReduction.templates.H.

◆ stackDimensions()

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::stackDimensions ( SnapshotsList sList)
inline

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 315 of file hyperReduction.H.

◆ stackNames()

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::stackNames ( SnapshotsList sList)
inline

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 304 of file hyperReduction.H.

◆ stackSnapshots()

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::stackSnapshots ( SnapshotsList sList,
Eigen::MatrixXd & snapshotsMatrix,
Eigen::VectorXd & fieldWeights )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 827 of file hyperReduction.templates.H.

◆ stackSnapshotsBoundary()

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::stackSnapshotsBoundary ( SnapshotsList sList,
List< Eigen::MatrixXd > & snapshotsMatrixBoundary,
List< Eigen::VectorXd > & fieldWeightsBoundary )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 847 of file hyperReduction.templates.H.

◆ sumDimensions()

template<typename... SnapshotsLists>
template<typename SnapshotsList >
void HyperReduction< SnapshotsLists >::sumDimensions ( double sum,
SnapshotsList sList )
inline

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 325 of file hyperReduction.H.

◆ updateNodes()

template<typename... SnapshotsLists>
void HyperReduction< SnapshotsLists >::updateNodes ( Eigen::SparseMatrix< double > & P,
label & ind_max,
Eigen::VectorXd & mp_not_mask )

TODO.

Template Parameters
SnapshotsListPtrList of volScalarField or volVectorField
Parameters
[in]sListThe list of snapshots

Definition at line 759 of file hyperReduction.templates.H.

Member Data Documentation

◆ basisMatrix

template<typename... SnapshotsLists>
Eigen::MatrixXd HyperReduction< SnapshotsLists >::basisMatrix

Orthonormal basis of HR.

Definition at line 164 of file hyperReduction.H.

◆ eigenValueseig

template<typename... SnapshotsLists>
Eigen::VectorXd HyperReduction< SnapshotsLists >::eigenValueseig

Definition at line 179 of file hyperReduction.H.

◆ field2submesh

template<typename... SnapshotsLists>
Eigen::SparseMatrix<double> HyperReduction< SnapshotsLists >::field2submesh

Definition at line 185 of file hyperReduction.H.

◆ fieldDims

template<typename... SnapshotsLists>
List<unsigned int> HyperReduction< SnapshotsLists >::fieldDims

Dimensions of the fields.

Definition at line 136 of file hyperReduction.H.

◆ fieldNames

template<typename... SnapshotsLists>
List<word> HyperReduction< SnapshotsLists >::fieldNames

Names of the fields.

Definition at line 133 of file hyperReduction.H.

◆ folderMethod

template<typename... SnapshotsLists>
word HyperReduction< SnapshotsLists >::folderMethod

Folder for the selected HR method.

Definition at line 157 of file hyperReduction.H.

◆ folderProblem

template<typename... SnapshotsLists>
word HyperReduction< SnapshotsLists >::folderProblem

Folder for the HR problem.

Definition at line 154 of file hyperReduction.H.

◆ initialSeeds

template<typename... SnapshotsLists>
Eigen::VectorXi HyperReduction< SnapshotsLists >::initialSeeds

Definition at line 121 of file hyperReduction.H.

◆ localNodePoints

template<typename... SnapshotsLists>
List<label> HyperReduction< SnapshotsLists >::localNodePoints

Indices of the local node points in the subMesh.

Definition at line 160 of file hyperReduction.H.

◆ MatrixOnline

template<typename... SnapshotsLists>
Eigen::MatrixXd HyperReduction< SnapshotsLists >::MatrixOnline

Online Matrix.

Definition at line 203 of file hyperReduction.H.

◆ methodName

template<typename... SnapshotsLists>
word HyperReduction< SnapshotsLists >::methodName

Definition at line 50 of file hyperReduction.H.

◆ n_boundary_cells

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_boundary_cells

Definition at line 109 of file hyperReduction.H.

◆ n_boundary_cells_list

template<typename... SnapshotsLists>
List<label> HyperReduction< SnapshotsLists >::n_boundary_cells_list

Definition at line 106 of file hyperReduction.H.

◆ n_boundary_patches

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_boundary_patches

Definition at line 103 of file hyperReduction.H.

◆ n_cells

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_cells

Int Number of Cells;.

Definition at line 139 of file hyperReduction.H.

◆ n_cellsSubfields

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_cellsSubfields

Int Number of Cells in submeshes;.

Definition at line 142 of file hyperReduction.H.

◆ n_fields

template<typename... SnapshotsLists>
auto HyperReduction< SnapshotsLists >::n_fields = sizeof...(SnapshotsLists)
staticconstexpr

Definition at line 54 of file hyperReduction.H.

◆ n_modes

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_modes

The maximum number of modes to be considered.

Definition at line 112 of file hyperReduction.H.

◆ n_nodes

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_nodes

The maximum number of modes to be considered.

Definition at line 115 of file hyperReduction.H.

◆ n_snapshots

template<typename... SnapshotsLists>
label HyperReduction< SnapshotsLists >::n_snapshots

The length of the snapshots lists.

Definition at line 118 of file hyperReduction.H.

◆ nodePoints

template<typename... SnapshotsLists>
autoPtr<IOList<label> > HyperReduction< SnapshotsLists >::nodePoints

Nodes in the case of the a nonlinear function.

Definition at line 145 of file hyperReduction.H.

◆ nodes

template<typename... SnapshotsLists>
Eigen::VectorXi HyperReduction< SnapshotsLists >::nodes

Definition at line 124 of file hyperReduction.H.

◆ normalizingWeights

template<typename... SnapshotsLists>
Eigen::VectorXd HyperReduction< SnapshotsLists >::normalizingWeights

Definition at line 167 of file hyperReduction.H.

◆ P

template<typename... SnapshotsLists>
Eigen::SparseMatrix<double> HyperReduction< SnapshotsLists >::P

The P matrix of the HyperReduction method. The nodes are ordered in the order of insertion during the greedy procedure. The components related to the same node follow immediately.

Definition at line 182 of file hyperReduction.H.

◆ para

template<typename... SnapshotsLists>
ITHACAparameters* HyperReduction< SnapshotsLists >::para

Definition at line 100 of file hyperReduction.H.

◆ pinvPU

template<typename... SnapshotsLists>
Eigen::MatrixXd HyperReduction< SnapshotsLists >::pinvPU

Definition at line 173 of file hyperReduction.H.

◆ problemName

template<typename... SnapshotsLists>
word HyperReduction< SnapshotsLists >::problemName

The name of the non-linear function e.g. HR_method/residual.

Definition at line 127 of file hyperReduction.H.

◆ quadratureWeights

template<typename... SnapshotsLists>
Eigen::VectorXd HyperReduction< SnapshotsLists >::quadratureWeights

Quadrature weights. Ordered in the same order of matrix P.

Definition at line 194 of file hyperReduction.H.

◆ renormalizedBasisMatrix

template<typename... SnapshotsLists>
Eigen::MatrixXd HyperReduction< SnapshotsLists >::renormalizedBasisMatrix

Renormalized basis of HR.

Definition at line 170 of file hyperReduction.H.

◆ snapshotsListTuple

template<typename... SnapshotsLists>
SnapshotsListTuple HyperReduction< SnapshotsLists >::snapshotsListTuple

The snapshots matrix containing the nonlinear function or operator.

Definition at line 130 of file hyperReduction.H.

◆ submesh

template<typename... SnapshotsLists>
autoPtr<fvMeshSubset> HyperReduction< SnapshotsLists >::submesh

Submesh of the HyperReduction method.

Definition at line 197 of file hyperReduction.H.

◆ submesh2nodes

template<typename... SnapshotsLists>
Eigen::SparseMatrix<double> HyperReduction< SnapshotsLists >::submesh2nodes

Definition at line 188 of file hyperReduction.H.

◆ submesh2nodesMask

template<typename... SnapshotsLists>
Eigen::VectorXi HyperReduction< SnapshotsLists >::submesh2nodesMask

Definition at line 191 of file hyperReduction.H.

◆ submesh_field

template<typename... SnapshotsLists>
autoPtr<volVectorField> HyperReduction< SnapshotsLists >::submesh_field

Submeshes.

Definition at line 200 of file hyperReduction.H.

◆ sumFieldsDim

template<typename... SnapshotsLists>
unsigned int HyperReduction< SnapshotsLists >::sumFieldsDim

Definition at line 58 of file hyperReduction.H.

◆ totalNodePoints

template<typename... SnapshotsLists>
autoPtr<IOList<labelList> > HyperReduction< SnapshotsLists >::totalNodePoints

List of label lists of the nodes and corresponding surrounding nodes.

Definition at line 148 of file hyperReduction.H.

◆ uniqueNodePoints

template<typename... SnapshotsLists>
autoPtr<IOList<label> > HyperReduction< SnapshotsLists >::uniqueNodePoints

List of the unique indices of the nodes that define the submesh.

Definition at line 151 of file hyperReduction.H.

◆ vectorial_dim

template<typename... SnapshotsLists>
unsigned int HyperReduction< SnapshotsLists >::vectorial_dim

Definition at line 57 of file hyperReduction.H.

◆ wPU

template<typename... SnapshotsLists>
Eigen::MatrixXd HyperReduction< SnapshotsLists >::wPU

Definition at line 176 of file hyperReduction.H.


The documentation for this class was generated from the following files: