32#include "../../../Common/include/containers/CLookUpTable.hpp"
33#if defined(HAVE_MLPCPP)
34#define MLP_CUSTOM_TYPE su2double
35#include "../../../subprojects/MLPCpp/include/CLookUp_ANN.hpp"
63 void SetNVars(
const size_t n_vars_in) { n_vars = n_vars_in; }
72 TD_data[iVar][iX] = val_var;
143 MLPToolbox::CLookUp_ANN *lookup_mlp;
144 MLPToolbox::CIOMap iomap_rhoe;
Defines the main fluid model class for thermophysical properties.
A templated matrix/vector-like object.
Definition C2DContainer.hpp:374
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Template class for fluid model definition using multi-layer perceptrons for fluid dynamic state defin...
Definition CDataDrivenFluid.hpp:102
void SetTDState_hs(su2double h, su2double s) override
Set the Dimensionless State using Enthalpy and Entropy.
Definition CDataDrivenFluid.cpp:242
unsigned long LUT_idx_dsde_rho
Definition CDataDrivenFluid.hpp:154
su2double d2sde2
Entropy second derivative w.r.t. static energy.
Definition CDataDrivenFluid.hpp:124
MiniTable2D coarse_TD_table
Small thermodynamic table used to identify the starting point of the Newton solver processes.
Definition CDataDrivenFluid.hpp:148
void Evaluate_Dataset(su2double rho, su2double e)
Evaluate the data set.
Definition CDataDrivenFluid.cpp:287
su2double e_max
Minimum and maximum energy values in data set.
Definition CDataDrivenFluid.hpp:118
bool display_Newton_process
Definition CDataDrivenFluid.hpp:140
const size_t iT
Definition CDataDrivenFluid.hpp:149
su2double d2sdrho2
Entropy second derivative w.r.t. static density.
Definition CDataDrivenFluid.hpp:126
unsigned long GetExtrapolation() const override
Get fluid model extrapolation instance.
Definition CDataDrivenFluid.hpp:285
vector< su2double * > outputs_rhoe
Pointers to output variables.
Definition CDataDrivenFluid.hpp:133
su2double Newton_Tolerance
Normalized tolerance for Newton solvers.
Definition CDataDrivenFluid.hpp:116
const size_t iE
Definition CDataDrivenFluid.hpp:149
string varname_e
Controlling variable name for static energy.
Definition CDataDrivenFluid.hpp:109
su2double e_start
Starting value for the energy in Newton solver processes.
Definition CDataDrivenFluid.hpp:113
unsigned long Predict_LUT(su2double rho, su2double e)
Evaluate dataset through look-up table.
Definition CDataDrivenFluid.cpp:280
su2double e_query
Definition CDataDrivenFluid.hpp:115
su2double Newton_Relaxation
Relaxation factor for Newton solvers.
Definition CDataDrivenFluid.hpp:111
void Run_Newton_Solver(const su2double Y1_target, const su2double Y2_target, const su2double &Y1, const su2double &Y2, const su2double &dY1drho, const su2double &dY1de, const su2double &dY2drho, const su2double &dY2de)
2D Newton solver for computing the density and energy corresponding to Y1_target and Y2_target.
Definition CDataDrivenFluid.cpp:301
void SetTDState_Ps(su2double P, su2double s) override
Set the Dimensionless State using Pressure and Entropy.
Definition CDataDrivenFluid.cpp:250
void ComputeDerivativeNRBC_Prho(su2double P, su2double rho) override
compute some derivatives of enthalpy and entropy needed for subsonic inflow BC
Definition CDataDrivenFluid.cpp:258
su2double dsde_rho
Entropy derivative w.r.t. density.
Definition CDataDrivenFluid.hpp:122
unsigned long LUT_idx_d2sdedrho
Definition CDataDrivenFluid.hpp:157
bool use_MLP_derivatives
Use physics-informed model.
Definition CDataDrivenFluid.hpp:138
void SetTDState_rhoT(su2double rho, su2double T) override
Set the Dimensionless Internal Energy using Pressure and Density.
Definition CDataDrivenFluid.cpp:232
CLookUpTable * lookup_table
Look-up table regression object.
Definition CDataDrivenFluid.hpp:152
const size_t iRho
Definition CDataDrivenFluid.hpp:149
void MapInputs_to_Outputs()
Map dataset variables to specific look-up operations.
Definition CDataDrivenFluid.cpp:92
int rank
MPI Rank.
Definition CDataDrivenFluid.hpp:104
void SetTDState_rhoe(su2double rho, su2double e) override
Set the Dimensionless State using Density and Internal Energy.
Definition CDataDrivenFluid.cpp:146
su2double rho_min
Definition CDataDrivenFluid.hpp:117
unsigned long MaxIter_Newton
Maximum number of iterations for Newton solvers.
Definition CDataDrivenFluid.hpp:120
unsigned long Predict_MLP(su2double rho, su2double e)
Evaluate dataset through multi-layer perceptron.
Definition CDataDrivenFluid.cpp:268
string varname_rho
Controlling variable name for density.
Definition CDataDrivenFluid.hpp:108
void ComputeIdealGasQuantities()
Definition CDataDrivenFluid.cpp:393
vector< unsigned long > LUT_lookup_indices
Definition CDataDrivenFluid.hpp:159
su2double rho_max
Minimum and maximum density values in data set.
Definition CDataDrivenFluid.hpp:117
unsigned long LUT_idx_dsdrho_e
Definition CDataDrivenFluid.hpp:155
vector< string > output_names_rhoe
Output variable names listed in the data-driven method input file name.
Definition CDataDrivenFluid.hpp:132
unsigned long outside_dataset
Density-energy combination lies outside data set.
Definition CDataDrivenFluid.hpp:161
vector< vector< su2double * > > dsdrhoe
Entropy Jacobian terms.
Definition CDataDrivenFluid.hpp:135
su2double e_min
Definition CDataDrivenFluid.hpp:118
ENUM_DATADRIVEN_METHOD Kind_DataDriven_Method
Interpolation method for data set evaluation.
Definition CDataDrivenFluid.hpp:105
void SetTDState_Prho(su2double P, su2double rho) override
Set the Dimensionless State using Pressure and Density.
Definition CDataDrivenFluid.cpp:217
su2double rho_start
Starting value for the density in Newton solver processes.
Definition CDataDrivenFluid.hpp:112
su2double dsdrho_e
Entropy derivative w.r.t. static energy.
Definition CDataDrivenFluid.hpp:123
unsigned long LUT_idx_s
Definition CDataDrivenFluid.hpp:153
const size_t iP
Definition CDataDrivenFluid.hpp:149
void SetTDState_PT(su2double P, su2double T) override
Set the Dimensionless State using Pressure and Temperature.
Definition CDataDrivenFluid.cpp:207
su2double d2sdedrho
Entropy second derivative w.r.t. density and static energy.
Definition CDataDrivenFluid.hpp:125
su2double dhde_rho
Enthalpy derivative w.r.t. static energy.
Definition CDataDrivenFluid.hpp:130
unsigned long GetnIter_Newton() override
Get number of Newton solver iterations.
Definition CDataDrivenFluid.hpp:291
vector< su2double > MLP_inputs
Inputs for the multi-layer perceptron look-up operation.
Definition CDataDrivenFluid.hpp:146
void SetEnergy_Prho(su2double P, su2double rho) override
Set the Dimensionless Internal Energy using Pressure and Density.
Definition CDataDrivenFluid.cpp:222
su2double dhdrho_e
Enthalpy derivative w.r.t. density.
Definition CDataDrivenFluid.hpp:129
su2vector< su2double > vals_rho_table
Definition CDataDrivenFluid.hpp:150
su2double rho_query
Definition CDataDrivenFluid.hpp:114
unsigned long LUT_idx_d2sde2
Definition CDataDrivenFluid.hpp:156
unsigned long nIter_Newton
Number of Newton solver iterations.
Definition CDataDrivenFluid.hpp:162
~CDataDrivenFluid()
Definition CDataDrivenFluid.cpp:78
su2double Enthalpy
Fluid enthalpy value [J kg^-1].
Definition CDataDrivenFluid.hpp:128
unsigned long LUT_idx_d2sdrho2
Definition CDataDrivenFluid.hpp:158
su2vector< su2double > vals_e_table
Definition CDataDrivenFluid.hpp:150
vector< vector< vector< su2double * > > > d2sdrhoe2
Entropy Hessian terms.
Definition CDataDrivenFluid.hpp:136
Main class for defining the Thermo-Physical Model.
Definition CFluidModel.hpp:47
Look up table.
Definition CLookUpTable.hpp:43
Simple 2D thermodynamic table used to identify the starting point for the Newton solver.
Definition CDataDrivenFluid.hpp:45
size_t FindNode(const size_t iX, const su2double val_x, const size_t iY, const su2double val_y) const
Find the node in the table closest to the query.
Definition CDataDrivenFluid.cpp:460
void ScaleTableData()
Normalize thermodynamic data for regularization.
Definition CDataDrivenFluid.cpp:449
void SizeTable()
Size table data arrays.
Definition CDataDrivenFluid.cpp:445
void SetTableData(const size_t iVar, const size_t iX, const su2double val_var)
Specify the thermodynamic data at a table node.
Definition CDataDrivenFluid.hpp:71
void SetNVars(const size_t n_vars_in)
Set the number of thermodynamic variables in the table.
Definition CDataDrivenFluid.hpp:63
void SetNPoints(const size_t nP_in)
Set the number of table nodes.
Definition CDataDrivenFluid.hpp:57
passivedouble su2double
Definition code_config.hpp:181
const int MASTER_NODE
Master node for MPI parallelization.
Definition option_structure.hpp:112
ENUM_DATADRIVEN_METHOD
Types of interpolation methods for data-driven fluid models.
Definition option_structure.hpp:700