Loading...
Searching...
No Matches
HyperReduction_function Class Reference
Inheritance diagram for HyperReduction_function:
HyperReduction< PtrList< volScalarField > & >

Public Member Functions

Eigen::VectorXd onlineCoeffs (volScalarField &S, Eigen::MatrixXd mu)
 
 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.
 
- Public Member Functions inherited from HyperReduction< PtrList< volScalarField > & >
 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.
 
void stackSnapshots (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, Eigen::VectorXd &fieldWeights)
 TODO.
 
void stackSnapshotsBoundary (SnapshotsList sList, List< Eigen::MatrixXd > &snapshotsMatrixBoundary, List< Eigen::VectorXd > &fieldWeightsBoundary)
 TODO.
 
void saveModes (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, unsigned int &rowIndex, unsigned int &modeIndex, word folder)
 TODO.
 
void saveModes (SnapshotsList sList, Eigen::MatrixXd &snapshotsMatrix, Eigen::MatrixXd &snapshotsMatrixBoundary, unsigned int &rowIndex, unsigned int &rowIndexBoundary, unsigned int &modeIndex, word folder)
 TODO.
 
void stackNames (SnapshotsList sList)
 TODO.
 
void stackDimensions (SnapshotsList sList)
 TODO.
 
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.
 
autoPtr< FieldType > interpolateField (const FieldType &field)
 TODO.
 
constexpr unsigned int get_field_dim ()
 TODO.
 
constexpr unsigned int compute_vectorial_dim (LastList x)
 TODO.
 
constexpr unsigned int compute_vectorial_dim (List &&head, RemainingLists &&...tail)
 TODO.
 
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 volScalarField evaluate_expression (volScalarField &S, Eigen::MatrixXd mu)
 
static Eigen::VectorXd evaluate_expression (volScalarField &S, Eigen::MatrixXd mu, List< label > nodesList)
 
- Static Public Member Functions inherited from HyperReduction< PtrList< volScalarField > & >
static double s_optimality (Eigen::MatrixXd &A)
 TODO.
 

Additional Inherited Members

- Public Types inherited from HyperReduction< PtrList< volScalarField > & >
using SnapshotsListTuple
 
using FieldsTuple
 
using NthFieldListType
 
using NthFieldType
 
- Public Attributes inherited from HyperReduction< PtrList< volScalarField > & >
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 inherited from HyperReduction< PtrList< volScalarField > & >
static constexpr auto n_fields
 

Detailed Description

Definition at line 42 of file 24HyperReduction.C.

Member Function Documentation

◆ evaluate_expression() [1/2]

static volScalarField HyperReduction_function::evaluate_expression ( volScalarField & S,
Eigen::MatrixXd mu )
inlinestatic

Definition at line 46 of file 24HyperReduction.C.

◆ evaluate_expression() [2/2]

static Eigen::VectorXd HyperReduction_function::evaluate_expression ( volScalarField & S,
Eigen::MatrixXd mu,
List< label > nodesList )
inlinestatic

Definition at line 60 of file 24HyperReduction.C.

◆ HyperReduction() [1/2]

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

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

◆ HyperReduction() [2/2]

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 92 of file hyperReduction.templates.H.

◆ onlineCoeffs()

Eigen::VectorXd HyperReduction_function::onlineCoeffs ( volScalarField & S,
Eigen::MatrixXd mu )
inline

Definition at line 75 of file 24HyperReduction.C.


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