55 Model(
const std::string& name,
const int& numbTransports);
161 Errors::errorMessage(
"solveRiemannWall or solveRiemannSymmetry not available for required model");
179 Cell& ,
const double& ,
double& ,
double , std::vector<double>& )
const
198 std::vector<double>& )
const
218 std::vector<double>& )
const
236 std::vector<double>& )
const
247 Cell& ,
const double& ,
double& ,
const double , std::vector<double>& )
const
258 Cell& ,
const double& ,
double& ,
const double , std::vector<double>& )
const
288 Errors::errorMessage(
"solveRiemannTransportInletInjStagState not available for required model");
406 Errors::errorMessage(
"computeCompactionPressure_dkappadalpha not available for required model");
419 const int& ,
const double& ,
const double& ,
const double& ,
const double& ,
double& )
const
static std::vector< double > DEFAULT_VEC_INTERFACE_DATA(VarBoundary::SIZE, 0.)
Base class for a mesh cell.
Definition Cell.h:59
Class for a coordinate system object such as coordinates of the vertex or a vector.
Definition Coord.h:43
static Coord defaultCoordNonConst
Default Coord object (non-const version).
Definition Coord.h:58
static const Coord defaultCoord
Default Coord object (const version).
Definition Coord.h:55
static const std::string defaultString
Definition Errors.h:100
static void errorMessage(const std::string &message_)
Definition Errors.cpp:56
static constexpr double defaultDouble
Definition Errors.h:99
Abstract class for conservative variables and fluxes.
Definition Flux.h:43
Mixture variable gradients. Stored for 2nd-order computation on unstructured mesh (O2 NS).
Definition GradMixture.h:45
Phase variable gradients. Stored for 2nd-order computation on unstructured mesh (O2 NS).
Definition GradPhase.h:44
Abstract class for mixture variables.
Definition Mixture.h:43
Abstract class for mathematical flow models.
Definition Model.h:50
void relaxations(Cell *cell, const double &dt, Prim type=vecPhases) const
Run all the relaxations.
Definition Model.cpp:73
virtual void allocateMixtureGradient(GradMixture **)
Instanciate gradient mixture variable.
Definition Model.h:81
virtual double selectScalar(Phase **, Mixture *, Transport *, Variable, int=0) const
Select a specific scalar variable.
Definition Model.h:514
virtual void solveRiemannMovingWall(Cell &, const double &, double &, double, std::vector< double > &) const
Moving wall half Riemann solver.
Definition Model.h:178
virtual void solveRiemannTransportIntern(Cell &, Cell &)
Cell to cell Riemann solver for transport equations.
Definition Model.h:270
virtual void allocatePhaseSolid(Phase **)
Instanciate solid phase variable.
Definition Model.h:66
virtual void setSmoothCrossSection1d(const bool &)
Definition Model.h:556
virtual const bool & isSmoothCrossSection1d() const
Definition Model.h:560
virtual void solveRiemannInletInjTemp(Cell &, const double &, double &, const double, const double *, const double *, std::vector< double > &) const
Inlet injection using temperature half Riemann solver.
Definition Model.h:230
virtual double computeSquareLongitudinalWaveSpeed(const int &, const Phase &)
Compute the square longitudinal wave speed of the solid.
Definition Model.h:500
virtual void computeElasticEnergyAndStressTensor(const int &, const Tensor &, const double &, const double &, double &, Tensor &) const
Compute the elastic energy and stress tensor of the solid.
Definition Model.h:486
virtual const double * getElasticParameterA() const
Return the elastic parameter a of the one-parameter model for each phase.
Definition Model.h:444
virtual const Coord & getVectorP(const Cell *) const
Definition Model.h:540
virtual void setSlopeDistance(const double &)
Set the geometric distance over which the in-cell slopes extrapolate (cell width along the face norma...
Definition Model.h:572
std::vector< Relaxation * > * getRelaxations()
Definition Model.h:551
virtual Coord & getVelocity(Cell *)
Definition Model.h:534
double m_machRefMin
Minimum Mach number limit for L-M preconditionning used when local Mach number is below this value (d...
Definition Model.h:580
const bool & getLowMach() const
Definition Model.h:562
std::string m_name
Name of the required model.
Definition Model.h:576
void allocateEos(Cell &cell) const
Associate equations of state.
Definition Model.cpp:55
virtual void solveRiemannInletInjStagState(Cell &, const double &, double &, const double, const double *, const double *, const double *, std::vector< double > &) const
Inlet injection using stagnation state half Riemann solver.
Definition Model.h:211
void setLowMach(const bool &lowMach)
Definition Model.h:563
virtual void allocatePhaseGradient(GradPhase **)
Instanciate gradient phase variable.
Definition Model.h:69
virtual void solveRiemannIntern(Cell &, Cell &, const double &, const double &, double &, std::vector< double > &=DEFAULT_VEC_INTERFACE_DATA) const
Cell to cell Riemann solver.
Definition Model.h:121
virtual void allocateMixture(Mixture **)
Instanciate mixture variable.
Definition Model.h:78
virtual void solveRiemannNullFlux() const
No flux half Riemann solver (return null flux to use with 1D geometry with smooth varying cross secti...
Definition Model.h:263
virtual void fulfillState(Phase **, Mixture *)
Complete a thermodynamics state frome minimum variables depending on the model.
Definition Model.h:95
virtual void solveRiemannTransportOutletPressure(Cell &, double *)
Outlet at imposed pressure half Riemann solver for transport equations.
Definition Model.h:300
virtual void fulfillStateResume(Phase **, Mixture *)
Complete some variables if necessary when resuming a simulation.
Definition Model.h:100
virtual void solveRiemannTransportInletInjStagState(Cell &, double *)
Inlet injection using stagnation state half Riemann solver for transport equations.
Definition Model.h:286
void printInfo() const
Definition Model.cpp:82
virtual void allocateCons(Flux **)
Allocate conservative variable arrays.
Definition Model.h:60
virtual void addNonConsMrfFlux(Phase **)
Definition Model.h:339
virtual void solveRiemannTransportWall()
Wall half Riemann solver for transport equations.
Definition Model.h:275
virtual void lowMachSoundSpeed(double &, const double &, double &, const double &=Errors::defaultDouble, double &=Tools::uselessDouble) const
Definition Model.h:328
bool m_smoothCrossSection1d
1D geometry with smooth cross section variation (default: false)
Definition Model.h:581
virtual void setMachRefMin(const double &machRefMin)
Definition Model.h:564
virtual const double * getDensityReference() const
Return the reference density for each phase.
Definition Model.h:437
virtual double computeEnergyCompaction(const int &, const double &, const double &, const double &) const
Return the compaction energy of the fluid/solid.
Definition Model.h:378
virtual void solveRiemannOutletMassflow(Cell &, const double &, double &, const double, std::vector< double > &) const
Outlet at imposed massflow half Riemann solver.
Definition Model.h:257
virtual void allocatePhaseSolidGradient(GradPhase **)
Instanciate gradient solid-phase variable.
Definition Model.h:72
Model(const std::string &name, const int &numbTransports)
Generic model constructor.
Definition Model.cpp:35
virtual const double & getDensityReference(const int &) const
Return the compaction reference density of phase k.
Definition Model.h:366
virtual const double * getShearModulus() const
Return the shear modulus for each phase.
Definition Model.h:451
void initializeRelaxation(Cell *cell) const
Initialize the theoritical critical pressure of the fluid (only required for PTMu relax).
Definition Model.cpp:64
virtual void allocatePhase(Phase **)
Instanciate fluid phase variable.
Definition Model.h:63
virtual void reverseProjectionMrfFlux(const Coord, const Coord, const Coord) const
Definition Model.h:340
virtual const Coord & getVelocity(const Cell *) const
Return the fluid velocity of the corresponding cell.
Definition Model.h:529
virtual void readSolidParameters(tinyxml2::XMLElement *, std::string, const int &)
Read solid parameters.
Definition Model.h:431
virtual Coord & getVectorP(Cell *)
Definition Model.h:545
virtual void solveRiemannSymmetry(Cell &cellLeft, const double &dxLeft, double &dtMax, std::vector< double > &boundData) const
Symmetry half Riemann solver.
Definition Model.h:168
virtual double computeCompactionPressure_dkappadxi(const int &, const double &, const double &, const double &) const
Compute the compaction pressure term including the derivative d kappa_k / d xi_k.
Definition Model.h:391
virtual void readCompactionParameters(tinyxml2::XMLElement *, std::string, const int &)
Read compaction parameters.
Definition Model.h:351
virtual void solveRiemannTransportMovingWall(Cell &, double)
Moving wall half Riemann solver for transport equations.
Definition Model.h:279
virtual void solveRiemannInletTank(Cell &, const double &, double &, const double *, const double *, const double &, const double &, std::vector< double > &) const
Inlet tank half Riemann solver.
Definition Model.h:191
virtual bool compaction(const int &) const
Return if compaction is activated or not.
Definition Model.h:358
virtual const std::string & whoAmI() const
Definition Model.h:554
virtual double computeElasticEnergy(const int &, const Tensor &) const
Compute the elastic energy of the solid.
Definition Model.h:473
virtual void reverseProjection(const Coord, const Coord, const Coord) const
Flux reverse projection in the absolute Cartesian coordinate system.
Definition Model.h:309
virtual const double & getSM()
Return the local fluid velocity.
Definition Model.h:521
virtual double computeCompactionPlasticity(const int &, const double &, const double &, const double &, const double &, double &) const
Compute the compaction plasticity term of the fluid/solid for relaxation.
Definition Model.h:418
virtual ~Model()
Definition Model.cpp:45
virtual void solveRiemannOutletPressure(Cell &, const double &, double &, const double, std::vector< double > &) const
Outlet at imposed pressure half Riemann solver.
Definition Model.h:246
bool m_lowMach
Low-Mach preconditioning (default: false).
Definition Model.h:579
virtual void solveRiemannWall(Cell &, const double &, double &, std::vector< double > &) const
Wall half Riemann solver.
Definition Model.h:159
virtual const double * getElasticityLimit() const
Return the limit of elasticity for each phase.
Definition Model.h:464
virtual void correctionEnergy(Cell *, Prim=vecPhases) const
Energy correction after relaxations (only for PUEq model).
Definition Model.h:324
std::vector< Relaxation * > m_relaxations
Vector of relaxation procedure.
Definition Model.h:577
virtual void solveRiemannInternMRF(Cell &, Cell &, const double &, const double &, double &, const Coord &, const Coord &, const Coord &, const Coord &, const Coord &) const
Cell to cell Riemann solver + compute fluxBuffMRF for MRF interface.
Definition Model.h:141
virtual double computeCompactionPressure_dkappadalpha(const int &, const double &, const double &, const double &) const
Compute the compaction pressure term including the derivative d kappa_k / d alpha_k.
Definition Model.h:404
virtual void solveRiemannTransportInletTank(Cell &, double *)
Inlet tank half Riemann solver for transport equations.
Definition Model.h:293
virtual const double * getChi() const
Return the chi modulus for each phase.
Definition Model.h:457
virtual void setPhaseSlope(Phase &, int)
Set the slope values for the extrapolation within the cell.
Definition Model.h:569
virtual void initializeAugmentedVariables(Cell *)
Complete the augmented variables (such as the ones of Navier-Stokes-Korteweg model).
Definition Model.h:107
Abstract class for a phase.
Definition Phase.h:47
Class for a matrix 3x3 system object.
Definition Tensor.h:57
Class for additional transport equations.
Definition Transport.h:41
Definition tinyxml2.h:1148