ECOGEN 4.0
Evolutive, Compressible, Open, Genuine, Easy, N-phase
Loading...
Searching...
No Matches
Model Class Reference

Abstract class for mathematical flow models. More...

#include <Model.h>

Inherited by ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModPTUEq, ModUEq, and ModUEqTotEnergy.

Public Member Functions

 Model (const std::string &name, const int &numbTransports)
 Generic model constructor.
 
virtual ~Model ()
 
virtual void allocateCons (Flux **)
 Allocate conservative variable arrays.
 
virtual void allocatePhase (Phase **)
 Instanciate fluid phase variable.
 
virtual void allocatePhaseSolid (Phase **)
 Instanciate solid phase variable.
 
virtual void allocatePhaseGradient (GradPhase **)
 Instanciate gradient phase variable.
 
virtual void allocatePhaseSolidGradient (GradPhase **)
 Instanciate gradient solid-phase variable.
 
virtual void allocateMixture (Mixture **)
 Instanciate mixture variable.
 
virtual void allocateMixtureGradient (GradMixture **)
 Instanciate gradient mixture variable.
 
void allocateEos (Cell &cell) const
 Associate equations of state.
 
void initializeRelaxation (Cell *cell) const
 Initialize the theoritical critical pressure of the fluid (only required for PTMu relax)
 
virtual void fulfillState (Phase **, Mixture *)
 Complete a thermodynamics state frome minimum variables depending on the model.
 
virtual void fulfillStateRestart (Phase **, Mixture *)
 Complete some variables if necessary when restarting a simulation.
 
virtual void initializeAugmentedVariables (Cell *)
 Complete the augmented variables (such as the ones of Euler-Korteweg model)
 
virtual void solveRiemannIntern (Cell &, Cell &, const double &, const double &, double &, std::vector< double > &=DEFAULT_VEC_INTERFACE_DATA) const
 Cell to cell Riemann solver.
 
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.
 
virtual void solveRiemannWall (Cell &, const double &, double &, std::vector< double > &) const
 Wall half Riemann solver.
 
virtual void solveRiemannPiston (Cell &, const double &, double &, std::vector< double > &, const double &) const
 Piston half Riemann solver.
 
virtual void solveRiemannInletTank (Cell &, const double &, double &, const double *, const double *, const double &, const double &, std::vector< double > &) const
 Inlet tank half Riemann solver.
 
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.
 
virtual void solveRiemannInletInjTemp (Cell &, const double &, double &, const double, const double *, const double *, std::vector< double > &) const
 Inlet injection using temperature half Riemann solver.
 
virtual void solveRiemannOutletPressure (Cell &, const double &, double &, const double, std::vector< double > &) const
 Outlet at imposed pressure half Riemann solver.
 
virtual void solveRiemannOutletMassflow (Cell &, const double &, double &, const double, std::vector< double > &) const
 Outlet at imposed massflow half Riemann solver.
 
virtual void solveRiemannNullFlux () const
 No flux half Riemann solver (return null flux to use with 1D geometry with smooth varying cross section)
 
virtual void solveRiemannTransportIntern (Cell &, Cell &)
 Cell to cell Riemann solver for transport equations.
 
virtual void solveRiemannTransportWall ()
 Wall half Riemann solver for transport equations.
 
virtual void solveRiemannTransportPiston (Cell &, double)
 Piston half Riemann solver for transport equations.
 
virtual void solveRiemannTransportInletInjStagState (Cell &, double *)
 Inlet injection using stagnation state half Riemann solver for transport equations.
 
virtual void solveRiemannTransportInletTank (Cell &, double *)
 Inlet tank half Riemann solver for transport equations.
 
virtual void solveRiemannTransportOutletPressure (Cell &, double *)
 Outlet at imposed pressure half Riemann solver for transport equations.
 
virtual void reverseProjection (const Coord, const Coord, const Coord) const
 Flux reverse projection in the absolute Cartesian coordinate system.
 
void relaxations (Cell *cell, const double &dt, Prim type=vecPhases) const
 
virtual void lowMachSoundSpeed (double &, const double &, double &, const double &=Errors::defaultDouble, double &=Tools::uselessDouble) const
 
virtual void addNonConsMrfFlux (Phase **)
 
virtual void reverseProjectionMrfFlux (const Coord, const Coord, const Coord) const
 
virtual void readCompactionParameters (tinyxml2::XMLElement *, std::string, const int &)
 Read compaction parameters.
 
virtual bool compaction (const int &) const
 Return if compaction is activated or not.
 
virtual const double & getDensityReference (const int &) const
 Return the compaction reference density of phase k.
 
virtual double computeEnergyCompaction (const int &, const double &, const double &, const double &) const
 Return the compaction energy of the fluid/solid.
 
virtual double computeCompactionPressure (const int &, const double &, const double &, const double &) const
 Compute the compaction pressure of the fluid/solid for relaxation.
 
virtual double computeDerivativeCompactionFunctionF (const int &, const double &, const double &) const
 Compute the derivative of the compaction function f with respect to xi.
 
virtual double computeCompactionPlasticity (const int &, const double &, const double &, const double &, const double &) const
 Compute the compaction plasticity term of the fluid/solid for relaxation.
 
virtual void readSolidParameters (tinyxml2::XMLElement *, std::string, const int &)
 Read solid parameters.
 
virtual const double * getDensityReference () const
 Return the reference density for each phase.
 
virtual const double * getElasticParameterA () const
 Return the elastic parameter a of the one-parameter model for each phase.
 
virtual const double * getShearModulus () const
 Return the shear modulus for each phase.
 
virtual const double * getElasticityLimit () const
 Return the limit of elasticity for each phase.
 
virtual double computeElasticEnergy (const int &, const Tensor &) const
 Compute the elastic energy of the solid.
 
virtual void computeElasticEnergyAndStressTensor (const int &, const Tensor &, const double &, const double &, double &, Tensor &) const
 Compute the elastic energy and stress tensor of the solid.
 
virtual double computeSquareLongitudinalWaveSpeed (const int &, const Phase &)
 Compute the square longitudinal wave speed of the solid.
 
virtual double selectScalar (Phase **, Mixture *, Transport *, Variable, int=0) const
 Select a specific scalar variable.
 
virtual const double & getSM ()
 Return the local fluid velocity.
 
virtual const CoordgetVelocity (const Cell *) const
 Return the fluid velocity of the corresponding cell.
 
virtual CoordgetVelocity (Cell *)
 
virtual const CoordgetVectorP (const Cell *) const
 
virtual CoordgetVectorP (Cell *)
 
std::vector< Relaxation * > * getRelaxations ()
 
void printInfo () const
 
virtual const std::string & whoAmI () const
 
virtual void setSmoothCrossSection1d (const bool &)
 
virtual const bool & isSmoothCrossSection1d () const
 
virtual void setLowMach (const bool &)
 
virtual void setMachRefMin (const double &)
 

Protected Attributes

std::string m_name
 Name of the required model.
 
std::vector< Relaxation * > m_relaxations
 Vector of relaxation procedure.
 
bool m_lowMach
 Low-Mach preconditioning (default: false)
 
double m_machRefMin
 Minimum Mach number limit for L-M preconditionning used when local Mach number is below this value (default: 0.01)
 
bool m_smoothCrossSection1d
 1D geometry with smooth cross section variation (default: false)
 

Detailed Description

Abstract class for mathematical flow models.

Constructor & Destructor Documentation

◆ Model()

Model::Model ( const std::string &  name,
const int &  numbTransports 
)

Generic model constructor.

Parameters
namemodel name
numbTransportsnumber of additional transport equations

◆ ~Model()

Model::~Model ( )
virtual

Member Function Documentation

◆ addNonConsMrfFlux()

virtual void Model::addNonConsMrfFlux ( Phase **  )
inlinevirtual

Reimplemented in ModEuler, and ModUEq.

◆ allocateCons()

virtual void Model::allocateCons ( Flux **  )
inlinevirtual

Allocate conservative variable arrays.

Parameters
consconservative variable array to allocate

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModNonLinearSchrodinger, ModPTUEq, ModPUEq, ModUEq, and ModUEqTotEnergy.

◆ allocateEos()

void Model::allocateEos ( Cell cell) const

Associate equations of state.

Parameters
celloriginal cell for equation of state linking

◆ allocateMixture()

virtual void Model::allocateMixture ( Mixture **  )
inlinevirtual

Instanciate mixture variable.

Parameters
mixturemixture to instanciate

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModNonLinearSchrodinger, ModPTUEq, ModPUEq, ModUEq, and ModUEqTotEnergy.

◆ allocateMixtureGradient()

virtual void Model::allocateMixtureGradient ( GradMixture **  )
inlinevirtual

Instanciate gradient mixture variable.

Parameters
mixturemixture to instanciate

Reimplemented in ModEuler, ModEulerHomogeneous, ModPTUEq, and ModUEq.

◆ allocatePhase()

virtual void Model::allocatePhase ( Phase **  )
inlinevirtual

Instanciate fluid phase variable.

Parameters
phasephase to instanciate

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModNonLinearSchrodinger, ModPTUEq, ModPUEq, ModUEq, and ModUEqTotEnergy.

◆ allocatePhaseGradient()

virtual void Model::allocatePhaseGradient ( GradPhase **  )
inlinevirtual

Instanciate gradient phase variable.

Parameters
phasephase to instanciate

Reimplemented in ModEuler, ModEulerHomogeneous, ModPTUEq, and ModUEq.

◆ allocatePhaseSolid()

virtual void Model::allocatePhaseSolid ( Phase **  )
inlinevirtual

Instanciate solid phase variable.

Parameters
phasephase to instanciate

◆ allocatePhaseSolidGradient()

virtual void Model::allocatePhaseSolidGradient ( GradPhase **  )
inlinevirtual

Instanciate gradient solid-phase variable.

Parameters
phasephase to instanciate

◆ compaction()

virtual bool Model::compaction ( const int &  ) const
inlinevirtual

Return if compaction is activated or not.

Parameters
kphase number

◆ computeCompactionPlasticity()

virtual double Model::computeCompactionPlasticity ( const int &  ,
const double &  ,
const double &  ,
const double &  ,
const double &   
) const
inlinevirtual

Compute the compaction plasticity term of the fluid/solid for relaxation.

Parameters
kphase number
alphavolume fraction ( \( \alpha \))
densitydensity ( \( \rho \))
lambdacompaction variable ( \( \lambda \))
pccompaction pressure ( \( p_c \)) return \( \dlambda \) (compaction plasticity)

◆ computeCompactionPressure()

virtual double Model::computeCompactionPressure ( const int &  ,
const double &  ,
const double &  ,
const double &   
) const
inlinevirtual

Compute the compaction pressure of the fluid/solid for relaxation.

Parameters
kphase number
alphavolume fraction ( \( \alpha \))
densitydensity ( \( \rho \))
lambdacompaction variable ( \( \lambda \)) return \( p_c \) (compaction pressure)

◆ computeDerivativeCompactionFunctionF()

virtual double Model::computeDerivativeCompactionFunctionF ( const int &  ,
const double &  ,
const double &   
) const
inlinevirtual

Compute the derivative of the compaction function f with respect to xi.

Parameters
kphase number
densitydensity ( \( \rho \))
lambdacompaction variable ( \( \lambda \)) return \( \partial f / \partial \xi \)

◆ computeElasticEnergy()

virtual double Model::computeElasticEnergy ( const int &  ,
const Tensor  
) const
inlinevirtual

Compute the elastic energy of the solid.

Parameters
kphase number
cobasecobase tensor ( \( e^\beta \))

◆ computeElasticEnergyAndStressTensor()

virtual void Model::computeElasticEnergyAndStressTensor ( const int &  ,
const Tensor ,
const double &  ,
const double &  ,
double &  ,
Tensor  
) const
inlinevirtual

Compute the elastic energy and stress tensor of the solid.

Parameters
kphase number
cobasecobase tensor ( \( e^\beta \))
pressurepressure ( \( p \))
densitydensity ( \( \rho \))
elasticEnergyelastic energy ( \( e^e \))
stressTensorstress tensor ( \( \sigma \))

◆ computeEnergyCompaction()

virtual double Model::computeEnergyCompaction ( const int &  ,
const double &  ,
const double &  ,
const double &   
) const
inlinevirtual

Return the compaction energy of the fluid/solid.

Parameters
kphase number
alphavolume fraction ( \( \alpha \))
densitydensity ( \( \rho \))
lambdacompaction variable ( \( \lambda \)) return \( \kappa \) (compaction energy)

◆ computeSquareLongitudinalWaveSpeed()

virtual double Model::computeSquareLongitudinalWaveSpeed ( const int &  ,
const Phase  
)
inlinevirtual

Compute the square longitudinal wave speed of the solid.

Parameters
kphase number
phasephase object
Returns
square longitudinal wave speed

◆ fulfillState()

virtual void Model::fulfillState ( Phase **  ,
Mixture  
)
inlinevirtual

Complete a thermodynamics state frome minimum variables depending on the model.

Parameters
phasesphases array variables
mixturemixture variables

Reimplemented in ModEulerKorteweg, ModEuler, ModEulerHomogeneous, ModPTUEq, ModUEq, and ModUEqTotEnergy.

◆ fulfillStateRestart()

virtual void Model::fulfillStateRestart ( Phase **  ,
Mixture  
)
inlinevirtual

Complete some variables if necessary when restarting a simulation.

Parameters
phasesphases array variables
mixturemixture variables

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModPTUEq, ModUEq, ModUEqTotEnergy, and ModPUEq.

◆ getDensityReference() [1/2]

virtual const double * Model::getDensityReference ( ) const
inlinevirtual

Return the reference density for each phase.

◆ getDensityReference() [2/2]

virtual const double & Model::getDensityReference ( const int &  ) const
inlinevirtual

Return the compaction reference density of phase k.

Parameters
kphase number

◆ getElasticityLimit()

virtual const double * Model::getElasticityLimit ( ) const
inlinevirtual

Return the limit of elasticity for each phase.

◆ getElasticParameterA()

virtual const double * Model::getElasticParameterA ( ) const
inlinevirtual

Return the elastic parameter a of the one-parameter model for each phase.

◆ getRelaxations()

std::vector< Relaxation * > * Model::getRelaxations ( )
inline

◆ getShearModulus()

virtual const double * Model::getShearModulus ( ) const
inlinevirtual

Return the shear modulus for each phase.

◆ getSM()

virtual const double & Model::getSM ( )
inlinevirtual

Return the local fluid velocity.

Returns
the velocity solution of the local Riemann problem

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModPTUEq, ModUEq, and ModUEqTotEnergy.

◆ getVectorP() [1/2]

virtual Coord & Model::getVectorP ( Cell )
inlinevirtual

◆ getVectorP() [2/2]

virtual const Coord & Model::getVectorP ( const Cell ) const
inlinevirtual

◆ getVelocity() [1/2]

virtual Coord & Model::getVelocity ( Cell )
inlinevirtual

◆ getVelocity() [2/2]

virtual const Coord & Model::getVelocity ( const Cell ) const
inlinevirtual

Return the fluid velocity of the corresponding cell.

Parameters
cellpointer to corresponding cell
Returns
velocity

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModPTUEq, ModUEq, and ModUEqTotEnergy.

◆ initializeAugmentedVariables()

virtual void Model::initializeAugmentedVariables ( Cell )
inlinevirtual

Complete the augmented variables (such as the ones of Euler-Korteweg model)

Parameters
cellcell

Reimplemented in ModEuler, ModEulerHomogeneous, ModPTUEq, ModUEq, ModUEqTotEnergy, and ModEulerKorteweg.

◆ initializeRelaxation()

void Model::initializeRelaxation ( Cell cell) const

Initialize the theoritical critical pressure of the fluid (only required for PTMu relax)

Parameters
cellcell to get the eos

◆ isSmoothCrossSection1d()

virtual const bool & Model::isSmoothCrossSection1d ( ) const
inlinevirtual

◆ lowMachSoundSpeed()

virtual void Model::lowMachSoundSpeed ( double &  ,
const double &  ,
double &  ,
const double &  = Errors::defaultDouble,
double &  = Tools::uselessDouble 
) const
inlinevirtual

Reimplemented in ModEuler, and ModUEq.

◆ printInfo()

void Model::printInfo ( ) const

◆ readCompactionParameters()

virtual void Model::readCompactionParameters ( tinyxml2::XMLElement ,
std::string  ,
const int &   
)
inlinevirtual

Read compaction parameters.

Parameters
elementCompactionXML element
fileNamestring name of readed XML file
kphase number

◆ readSolidParameters()

virtual void Model::readSolidParameters ( tinyxml2::XMLElement ,
std::string  ,
const int &   
)
inlinevirtual

Read solid parameters.

Parameters
elementSolidXML element
fileNamestring name of readed XML file
kphase number

◆ relaxations()

void Model::relaxations ( Cell cell,
const double &  dt,
Prim  type = vecPhases 
) const

◆ reverseProjection()

virtual void Model::reverseProjection ( const Coord  ,
const Coord  ,
const Coord   
) const
inlinevirtual

Flux reverse projection in the absolute Cartesian coordinate system.

Parameters
normalnormal vector associated to the cell interface
tangenttangent vector associated to the cell interface
binormalbinormal vector associated to the cell interface

Reimplemented in ModEuler, ModEulerHomogeneous, ModEulerKorteweg, ModPTUEq, ModUEq, and ModUEqTotEnergy.

◆ reverseProjectionMrfFlux()

virtual void Model::reverseProjectionMrfFlux ( const Coord  ,
const Coord  ,
const Coord   
) const
inlinevirtual

Reimplemented in ModEuler, and ModUEq.

◆ selectScalar()

virtual double Model::selectScalar ( Phase **  ,
Mixture ,
Transport ,
Variable  ,
int  = 0 
) const
inlinevirtual

Select a specific scalar variable.

Parameters
phasesphases array variables
mixturemixture variables
vecTransportsvector of transport variables
nameVariablesName of the variable to select
numPhasesPhases number's

Reimplemented in ModEuler, ModEulerKorteweg, ModEulerHomogeneous, ModPTUEq, ModPUEq, ModUEq, and ModUEqTotEnergy.

◆ setLowMach()

virtual void Model::setLowMach ( const bool &  )
inlinevirtual

Reimplemented in ModEuler, and ModUEq.

◆ setMachRefMin()

virtual void Model::setMachRefMin ( const double &  )
inlinevirtual

Reimplemented in ModEuler, and ModUEq.

◆ setSmoothCrossSection1d()

virtual void Model::setSmoothCrossSection1d ( const bool &  )
inlinevirtual

Reimplemented in ModEuler, ModEulerHomogeneous, and ModUEq.

◆ solveRiemannInletInjStagState()

virtual void Model::solveRiemannInletInjStagState ( Cell ,
const double &  ,
double &  ,
const double  ,
const double *  ,
const double *  ,
const double *  ,
std::vector< double > &   
) const
inlinevirtual

Inlet injection using stagnation state half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
m0specific mass flow rate (kg.s-1.m-2)
ak0volume fraction array of injected fluids
rhok0density array of injected fluids
pk0pressure array of injected fluids
boundDataboundary dataset used for output

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannInletInjTemp()

virtual void Model::solveRiemannInletInjTemp ( Cell ,
const double &  ,
double &  ,
const double  ,
const double *  ,
const double *  ,
std::vector< double > &   
) const
inlinevirtual

Inlet injection using temperature half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
m0specific mass flow rate (kg.s-1.m-2)
Tk0temperature of injected fluid (same for both phases)
ak0volume fraction of each injected phase
boundDataboundary dataset used for output

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannInletTank()

virtual void Model::solveRiemannInletTank ( Cell ,
const double &  ,
double &  ,
const double *  ,
const double *  ,
const double &  ,
const double &  ,
std::vector< double > &   
) const
inlinevirtual

Inlet tank half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
ak0volume fraction array of fluids in tank
rhok0density array of fluids in tank
pk0pressure array of fluids in tank
boundDataboundary dataset used for output

Reimplemented in ModEuler, ModUEq, and ModPTUEq.

◆ solveRiemannIntern()

virtual void Model::solveRiemannIntern ( Cell ,
Cell ,
const double &  ,
const double &  ,
double &  ,
std::vector< double > &  = DEFAULT_VEC_INTERFACE_DATA 
) const
inlinevirtual

Cell to cell Riemann solver.

Parameters
cellLeftleft cell
cellRightright cell
dxLeftleft characteristic lenght
dxRightright characteristic lenght
dtMaxmaximum explicit time step
boundDataboundary dataset used for output

Reimplemented in ModEulerKorteweg, ModEuler, ModEulerHomogeneous, ModPTUEq, ModUEq, and ModUEqTotEnergy.

◆ solveRiemannInternMRF()

virtual void Model::solveRiemannInternMRF ( Cell ,
Cell ,
const double &  ,
const double &  ,
double &  ,
const Coord ,
const Coord ,
const Coord ,
const Coord ,
const Coord  
) const
inlinevirtual

Cell to cell Riemann solver + compute fluxBuffMRF for MRF interface.

Parameters
cellLeftleft cell
cellRightright cell
dxLeftleft characteristic lenght
dxRightright characteristic lenght
dtMaxmaximum explicit time step
omegarotating velocity
normalface normal
tangentface tangent
binormalface binormal
positionface position

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannNullFlux()

virtual void Model::solveRiemannNullFlux ( ) const
inlinevirtual

No flux half Riemann solver (return null flux to use with 1D geometry with smooth varying cross section)

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannOutletMassflow()

virtual void Model::solveRiemannOutletMassflow ( Cell ,
const double &  ,
double &  ,
const double  ,
std::vector< double > &   
) const
inlinevirtual

Outlet at imposed massflow half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
m0specific mass flow rate (kg.s-1.m-2)
boundDataboundary dataset used for output

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannOutletPressure()

virtual void Model::solveRiemannOutletPressure ( Cell ,
const double &  ,
double &  ,
const double  ,
std::vector< double > &   
) const
inlinevirtual

Outlet at imposed pressure half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
p0external pressure
boundDataboundary dataset used for output

Reimplemented in ModEuler, ModPTUEq, and ModUEq.

◆ solveRiemannPiston()

virtual void Model::solveRiemannPiston ( Cell ,
const double &  ,
double &  ,
std::vector< double > &  ,
const double &   
) const
inlinevirtual

Piston half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
boundDataboundary dataset used for output
uPistonpiston velocity

◆ solveRiemannTransportInletInjStagState()

virtual void Model::solveRiemannTransportInletInjStagState ( Cell ,
double *   
)
inlinevirtual

Inlet injection using stagnation state half Riemann solver for transport equations.

Parameters
cellLeftleft cell
valueTransportsarray of transport quantities injected

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannTransportInletTank()

virtual void Model::solveRiemannTransportInletTank ( Cell ,
double *   
)
inlinevirtual

Inlet tank half Riemann solver for transport equations.

Parameters
cellLeftleft cell
valueTransportsarray of transport quantities in tank

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannTransportIntern()

virtual void Model::solveRiemannTransportIntern ( Cell ,
Cell  
)
inlinevirtual

Cell to cell Riemann solver for transport equations.

Parameters
cellLeftleft cell
cellRightright cell

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannTransportOutletPressure()

virtual void Model::solveRiemannTransportOutletPressure ( Cell ,
double *   
)
inlinevirtual

Outlet at imposed pressure half Riemann solver for transport equations.

Parameters
cellLeftleft cell
valueTransportsarray of external transport quantities

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannTransportPiston()

virtual void Model::solveRiemannTransportPiston ( Cell ,
double   
)
inlinevirtual

Piston half Riemann solver for transport equations.

Parameters
cellLeftleft cell
uPistonpiston velocity

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannTransportWall()

virtual void Model::solveRiemannTransportWall ( )
inlinevirtual

Wall half Riemann solver for transport equations.

Reimplemented in ModEuler, and ModUEq.

◆ solveRiemannWall()

virtual void Model::solveRiemannWall ( Cell ,
const double &  ,
double &  ,
std::vector< double > &   
) const
inlinevirtual

Wall half Riemann solver.

Parameters
cellLeftleft cell
dxLeftleft characteristic lenght
dtMaxmaximum explicit time step
boundDataboundary dataset used for output

Reimplemented in ModEuler, ModPTUEq, and ModUEq.

◆ whoAmI()

virtual const std::string & Model::whoAmI ( ) const
inlinevirtual

Member Data Documentation

◆ m_lowMach

bool Model::m_lowMach
protected

Low-Mach preconditioning (default: false)

◆ m_machRefMin

double Model::m_machRefMin
protected

Minimum Mach number limit for L-M preconditionning used when local Mach number is below this value (default: 0.01)

◆ m_name

std::string Model::m_name
protected

Name of the required model.

◆ m_relaxations

std::vector<Relaxation *> Model::m_relaxations
protected

Vector of relaxation procedure.

◆ m_smoothCrossSection1d

bool Model::m_smoothCrossSection1d
protected

1D geometry with smooth cross section variation (default: false)


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