Implementation of a parametrized full order Burgers and preparation of the the reduced matrices for the online solve. More...
#include <Burgers.H>
Public Member Functions | |
Burgers () | |
Null constructor. | |
Burgers (int argc, char *argv[]) | |
Construct with argc and argv. | |
~Burgers () | |
void | truthSolve (word folder="./ITHACAoutput/Offline/") |
truthsolve | |
void | restart () |
Function to restart the fields of the Burgers problem. | |
Public Member Functions inherited from reductionProblem | |
reductionProblem () | |
Construct Null. | |
~reductionProblem () | |
void | setParameters () |
Set Parameters Problems. | |
void | genRandPar () |
Generate Random Numbers. | |
void | genRandPar (label tsize) |
Generate Random Numbers given the dimension of the training set. | |
void | genEquiPar () |
Generate Equidistributed Numbers. | |
void | truthSolve () |
Perform a TruthSolve. | |
void | assignBC (volVectorField &s, label BC_ind, Vector< double > &value) |
Assign Boundary Condition to a volVectorField. | |
void | assignBC (volScalarField &s, label BC_ind, double &value) |
Assign Boundary Condition to a volScalarField. | |
void | reconstructFromMatrix (PtrList< volVectorField > &rec_field2, PtrList< volVectorField > &modes, label Nmodes, Eigen::MatrixXd coeff_matrix) |
Exact reconstruction using a certain number of modes for vector list of fields and the projection coefficients (volVectorField) | |
void | reconstructFromMatrix (PtrList< volScalarField > &rec_field2, PtrList< volScalarField > &modes, label Nmodes, Eigen::MatrixXd coeff_matrix) |
Exact reconstruction using a certain number of modes for vector list of fields and the projection coefficients (volScalarField) | |
template<typename T , typename G > | |
void | assignIF (T &s, G &value) |
Assign internal field condition. | |
template<typename T > | |
void | computeLift (T &Lfield, T &liftfield, T &omfield) |
Homogenize the snapshot matrix, it works with PtrList of volVectorField and volScalarField. | |
template<typename T > | |
void | computeLiftT (T &Lfield, T &liftfield, T &omfield) |
Virtual function to compute the lifting function. | |
void | liftSolve () |
Virtual function to compute the lifting function for scalar field. | |
void | liftSolveT () |
void | project () |
General projection operation. | |
void | writeMu (List< scalar > mu_now) |
Write out a list of scalar corresponding to the parameters used in the truthSolve. | |
std::vector< SPLINTER::RBFSpline > | getCoeffManifoldRBF (PtrList< volVectorField > snapshots, PtrList< volVectorField > &modes, word rbfBasis="GAUSSIAN") |
Constructs the parameters-coefficients manifold for vector fields, based on RBF-spline model. | |
std::vector< SPLINTER::RBFSpline > | getCoeffManifoldRBF (PtrList< volScalarField > snapshots, PtrList< volScalarField > &modes, word rbfBasis="GAUSSIAN") |
Constructs the parameters-coefficients manifold for scalar fields, based on RBF-spline model. | |
std::vector< SPLINTER::BSpline > | getCoeffManifoldSPL (PtrList< volVectorField > snapshots, PtrList< volVectorField > &modes, label splDeg=3) |
Constructs the parameters-coefficients manifold for vector fields, based on the B-spline model. | |
std::vector< SPLINTER::BSpline > | getCoeffManifoldSPL (PtrList< volScalarField > snapshots, PtrList< volScalarField > &modes, label splDeg=3) |
Constructs the parameters-coefficients manifold for scalar fields, based on the B-spline model. | |
Public Member Functions inherited from UnsteadyProblem | |
UnsteadyProblem () | |
void | setTimes (Time &timeObject) |
bool | checkWrite (Time &timeObject) |
Function to check if the solution must be exported. | |
Public Attributes | |
ITHACAparameters * | para |
PtrList< volVectorField > | Ufield |
List of pointers used to form the velocity snapshots matrix. | |
volVectorModes | Umodes |
List of pointers used to form the velocity modes. | |
autoPtr< volVectorField > | _U |
Velocity field. | |
autoPtr< volVectorField > | _U0 |
Initial Velocity field (for restart purposes) | |
autoPtr< fvMesh > | _mesh |
Mesh. | |
autoPtr< Time > | _runTime |
Time. | |
autoPtr< surfaceScalarField > | _phi |
Flux. | |
autoPtr< surfaceScalarField > | _phi0 |
Initial Flux (for restart purposes) | |
autoPtr< IOdictionary > | _transportProperties |
autoPtr< dimensionedScalar > | _nu |
autoPtr< fv::options > | _fvOptions |
fvOptions | |
autoPtr< simpleControl > | _simple |
simpleControl | |
Public Attributes inherited from reductionProblem | |
label | Pnumber |
Number of parameters. | |
label | Tnumber |
Dimension of the training set (used only when gerating parameters without input) | |
Eigen::MatrixXd | mu |
Row matrix of parameters. | |
Eigen::MatrixXd | mu_range |
Range of the parameter spaces. | |
Eigen::MatrixXd | mu_samples |
Matrix of parameters to be used for PODI, where each row corresponds to a sample point. In this matrix the time dimension is regarded as a parameter for unsteady problems. | |
double | mu_cur |
Current value of the parameter. | |
bool | podex |
Boolean variable, it is 1 if the POD has already been computed, else 0. | |
bool | offline |
Boolean variable, it is 1 if the Offline phase has already been computed, else 0. | |
IOdictionary * | ITHACAdict |
dictionary to store input output infos | |
autoPtr< argList > | _args |
argList | |
ITHACAparallel * | paral |
parallel handling | |
label | folderN = 1 |
Counter to save intermediate steps in the correct folder, for unsteady and some stationary cases. | |
label | counter = 1 |
Counter used for the output of the full order solutions. | |
Eigen::MatrixXi | inletIndex |
Matrix that contains informations about the inlet boundaries. | |
Eigen::MatrixXi | inletPatch |
Matrix that contains informations about the inlet boundaries without specifing the direction Rows = Number of parametrized boundary conditions Cols = 1 Example: example.inletIndex.resize(2, 1); example.inletIndex(0, 0) = 0; example.inletIndex(1, 0) = 1; Means that there are two parametrized boundary conditions of which the first row is of patch 0 and the second row of patch 1. | |
Eigen::MatrixXi | inletIndexT |
Public Attributes inherited from UnsteadyProblem | |
scalar | startTime |
Start Time (initial time to start storing the snapshots) | |
scalar | finalTime |
Final time (final time of the simulation and consequently of the acquisition of the snapshots) | |
scalar | timeStep |
Time step of the simulation. | |
scalar | writeEvery = timeStep |
Time step of the writing procedure. | |
scalar | nextWrite |
Auxiliary variable to store the next writing instant. | |
Implementation of a parametrized full order Burgers and preparation of the the reduced matrices for the online solve.
In this class are implemented the methods for the offline solve of a burgers problem and the for the generation of the reduced matrices for subsequent online solve, this class is a son of the reduction problem class
Burgers::Burgers | ( | int | argc, |
char * | argv[] ) |
void Burgers::restart | ( | ) |
void Burgers::truthSolve | ( | word | folder = "./ITHACAoutput/Offline/" | ) |
autoPtr<surfaceScalarField> Burgers::_phi0 |
autoPtr<volVectorField> Burgers::_U0 |
ITHACAparameters* Burgers::para |
PtrList<volVectorField> Burgers::Ufield |
volVectorModes Burgers::Umodes |