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

Model class for Non-Linear Schrodinger mathematical system of equations (single phase) More...

#include <ModNonLinearSchrodinger.h>

Inherits ModEulerKorteweg.

Public Member Functions

 ModNonLinearSchrodinger (const int &numbTransports, const double &alpha, const double &beta)
 NonLinearSchrodinger model constructor.
 
virtual ~ModNonLinearSchrodinger ()
 
virtual void allocateCons (Flux **cons)
 Allocate conservative variable arrays.
 
virtual void allocatePhase (Phase **phase)
 Instanciate fluid phase variable.
 
virtual void allocateMixture (Mixture **mixture)
 Instanciate mixture variable.
 
virtual double kappa (const double &density) const
 
virtual double kappaPrime (const double &density) const
 
virtual double kappaSecond (const double &density) const
 
virtual double epsilonPrime (Cell &, const double &) const
 
virtual double epsilonSecond (Cell &, const double &) const
 
- Public Member Functions inherited from ModEulerKorteweg
 ModEulerKorteweg (const int &numbTransports)
 EulerKorteweg model constructor.
 
 ModEulerKorteweg (const int &numbTransports, const double &alpha, const double &beta, const double &temperature, const double &kappa)
 EulerKorteweg model constructor.
 
 ModEulerKorteweg (const std::string &name, const int &numbTransports, const double &alpha, const double &beta, const double &temperature, const double &kappa)
 EulerKorteweg model constructor.
 
virtual ~ModEulerKorteweg ()
 
virtual void fulfillState (Phase **, Mixture *)
 
virtual void fulfillStateRestart (Phase **, Mixture *)
 
virtual void initializeAugmentedVariables (Cell *cell)
 Complete the augmented variables (such as the ones of Euler-Korteweg model)
 
virtual void solveRiemannIntern (Cell &cellLeft, Cell &cellRight, const double &dxLeft, const double &dxRight, double &dtMax, std::vector< double > &=DEFAULT_VEC_INTERFACE_DATA) const
 Cell to cell Riemann solver.
 
virtual void reverseProjection (const Coord normal, const Coord tangent, const Coord binormal) const
 Flux reverse projection in the absolute Cartesian coordinate system.
 
virtual double selectScalar (Phase **phases, Mixture *, Transport *transports, Variable nameVariable, int num=0) const
 Select a specific scalar variable.
 
virtual const double & getSM ()
 Return the local fluid velocity.
 
virtual const CoordgetVelocity (const Cell *cell) const
 Return the fluid velocity of the corresponding cell.
 
virtual CoordgetVelocity (Cell *cell)
 
virtual const std::string & whoAmI () const
 
virtual double computeMaxWaveSpeed (Cell &cellLeft, Cell &cellRight, const double &rhoL, const double &rhoR, const double &uL, const double &uR, const double &etaL, const double &etaR, const double &vecPxL, const double &vecPxR, const double &vecPyL, const double &vecPyR) const
 Compute maximal wave speed using Davis approximation and eigenvalues of hyperbolic equations.
 
- Public Member Functions inherited from Model
 Model (const std::string &name, const int &numbTransports)
 Generic model constructor.
 
virtual ~Model ()
 
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 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 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.
 
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 const CoordgetVectorP (const Cell *) const
 
virtual CoordgetVectorP (Cell *)
 
std::vector< Relaxation * > * getRelaxations ()
 
void printInfo () const
 
virtual void setSmoothCrossSection1d (const bool &)
 
virtual const bool & isSmoothCrossSection1d () const
 
virtual void setLowMach (const bool &)
 
virtual void setMachRefMin (const double &)
 

Static Private Attributes

static const std::string NAME = "NONLINEARSCHRODINGER"
 

Additional Inherited Members

- Protected Attributes inherited from Model
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

Model class for Non-Linear Schrodinger mathematical system of equations (single phase)

Constructor & Destructor Documentation

◆ ModNonLinearSchrodinger()

ModNonLinearSchrodinger::ModNonLinearSchrodinger ( const int &  numbTransports,
const double &  alpha,
const double &  beta 
)

NonLinearSchrodinger model constructor.

Parameters
numbTransportsnumber of additional transport equations
alphaparameter alpha of Euler-Korteweg equations
betaparameter beta of Euler-Korteweg equations

◆ ~ModNonLinearSchrodinger()

ModNonLinearSchrodinger::~ModNonLinearSchrodinger ( )
virtual

Member Function Documentation

◆ allocateCons()

void ModNonLinearSchrodinger::allocateCons ( Flux **  )
virtual

Allocate conservative variable arrays.

Parameters
consconservative variable array to allocate

Reimplemented from ModEulerKorteweg.

◆ allocateMixture()

void ModNonLinearSchrodinger::allocateMixture ( Mixture **  )
virtual

Instanciate mixture variable.

Parameters
mixturemixture to instanciate

Reimplemented from ModEulerKorteweg.

◆ allocatePhase()

void ModNonLinearSchrodinger::allocatePhase ( Phase **  )
virtual

Instanciate fluid phase variable.

Parameters
phasephase to instanciate

Reimplemented from ModEulerKorteweg.

◆ epsilonPrime()

double ModNonLinearSchrodinger::epsilonPrime ( Cell ,
const double &   
) const
virtual

Reimplemented from ModEulerKorteweg.

◆ epsilonSecond()

double ModNonLinearSchrodinger::epsilonSecond ( Cell ,
const double &   
) const
virtual

Reimplemented from ModEulerKorteweg.

◆ kappa()

double ModNonLinearSchrodinger::kappa ( const double &  density) const
virtual

Reimplemented from ModEulerKorteweg.

◆ kappaPrime()

double ModNonLinearSchrodinger::kappaPrime ( const double &  density) const
virtual

Reimplemented from ModEulerKorteweg.

◆ kappaSecond()

double ModNonLinearSchrodinger::kappaSecond ( const double &  density) const
virtual

Reimplemented from ModEulerKorteweg.

Member Data Documentation

◆ NAME

const std::string ModNonLinearSchrodinger::NAME = "NONLINEARSCHRODINGER"
staticprivate

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