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

Abstract class for conservative variables and fluxes. More...

#include <Flux.h>

Inherited by FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Public Member Functions

 Flux ()
virtual ~Flux ()
virtual void printFlux () const
virtual void addFlux (Flux *)
 Add flux passed in parameter to the correspond model flux.
virtual void addFlux (double)
 Add flux to the corresponding model flux.
virtual void subtractFlux (double)
 Subtract flux to the corresponding model buffer flux.
virtual void addFluxRotatingRegion (double)
 Add flux to the rotating region in MRF context.
virtual void subtractFluxRotatingRegion (double)
 Subtract flux to the rotating region in MRF context.
virtual void multiply (double)
 multiply the flux of the corresponding model by a constant
virtual void setBufferFlux (Cell &)
 Temporary store the conservative variables of a given cell.
virtual void buildCons (Phase **, Mixture *)
 Build the conservative variables for a given cell from primitive one.
virtual void buildPrim (Phase **, Mixture *)
 Build the primitive variables for a given cell from conservative one.
virtual void setToZero ()
 set each attribute of the flux to zero
virtual void addNonCons (double, const Cell *, const Coord &, const Coord &, const Coord &)
 Add non conservative term to the flux.
virtual void subtractNonCons (double, const Cell *, const Coord &, const Coord &, const Coord &)
 Subtract non conservative term to the flux.
virtual void correctionEnergy (Cell *, Prim=vecPhases) const
 Method to correct energy in non conservative models using total energy conservation.
virtual void schemeCorrection (Cell &) const
virtual void addSymmetricTerms (Phase **, Mixture *, const double &, const double &)
 Add symetric terms.
virtual void prepSourceTermsGravity (const Coord &)
 Gravity source term.
virtual void prepSourceTermsHeating (const double &)
 Heating source term.
virtual void prepSourceTermsMRF (Cell *, const Coord &)
 MRF source term.
virtual void prepSourceTermsPlaneWave (const Cell *, const double &, const Coord &)
 This prepares Plane-Gaussian-pulse and Plane-Sinusoidal-pulse source terms.
virtual void addFluxSmooth1D (double, const Coord &, Cell *)
 Compute additionnal flux for 1D geometry with smooth varying cross sectionFlux).
virtual void substractFluxSmooth1D (double, const Coord &, Cell *)
 Compute additionnal flux for 1D geometry with smooth varying cross section.
virtual void addNonConsMrfFlux (Phase **)
virtual const double & getAlpha (const int &) const
virtual const double & getMass (const int &) const
virtual const double & getEnergyMix () const
virtual const double & getMassMix () const
virtual const double & getEqOmega () const
virtual const double & getEqDensitySurEta () const
virtual const double & getEnergy (const int &) const
virtual const double & getTotEnergy (const int &) const
virtual const double & getLambda (const int &) const
virtual const Tensor & getCobase (const int &) const
virtual const Coord & getMomentum () const
virtual const Coord & getMomentum (const int &) const
virtual const Coord & getEqVectorP () const
virtual void setCons (const Flux *)

Protected Attributes

double m_sM
 Fluid velocity for intercell interfaces.
double m_uStar
 Velocity solution of the Riemann problem !VERY IMPORTANT! DO NOT ERASE!

Detailed Description

Abstract class for conservative variables and fluxes.

Constructor & Destructor Documentation

◆ Flux()

Flux::Flux ( )
Here is the caller graph for this function:

◆ ~Flux()

Flux::~Flux ( )
virtual

Member Function Documentation

◆ addFlux() [1/2]

virtual void Flux::addFlux ( double )
inlinevirtual

Add flux to the corresponding model flux.

Parameters
coefApossibility to multiply the flux before adding (set 1.d0 if not needed)

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ addFlux() [2/2]

virtual void Flux::addFlux ( Flux * )
inlinevirtual

Add flux passed in parameter to the correspond model flux.

Parameters
fluxflux to add to the current one

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addFluxRotatingRegion()

virtual void Flux::addFluxRotatingRegion ( double )
inlinevirtual

Add flux to the rotating region in MRF context.

Parameters
coefApossibility to multiply the flux before adding (set 1.d0 if not needed)

Reimplemented in FluxEuler, FluxNEq, and FluxUEq.

Here is the call graph for this function:

◆ addFluxSmooth1D()

virtual void Flux::addFluxSmooth1D ( double ,
const Coord & ,
Cell *  )
inlinevirtual

Compute additionnal flux for 1D geometry with smooth varying cross sectionFlux).

Reimplemented in FluxEuler, FluxEulerHomogeneous, and FluxUEq.

Here is the call graph for this function:

◆ addNonCons()

virtual void Flux::addNonCons ( double ,
const Cell * ,
const Coord & ,
const Coord & ,
const Coord &  )
inlinevirtual

Add non conservative term to the flux.

Parameters
coefApossibility to multiply the non conservative term before adding (set 1.d0 if not needed)
cellreference cell used to approximate the non conservative term
normalnormal vector of the treated face
tangenttangent vector of the treated face
binormalbinormal vector of the treated face

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxNEqDEM, FluxNEqHLL, FluxNEqHLLAC, FluxNEqHLLBN, FluxNEqHLLC4Waves, FluxPTUEq, FluxPUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ addNonConsMrfFlux()

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

Reimplemented in FluxEuler, and FluxUEq.

Here is the call graph for this function:

◆ addSymmetricTerms()

virtual void Flux::addSymmetricTerms ( Phase ** ,
Mixture * ,
const double & ,
const double &  )
inlinevirtual

Add symetric terms.

Parameters
rradial distance of the cell from the axis of symmetry
vvelocity in the radial direction

Reimplemented in FluxEuler, FluxExtendedNavierStokesKorteweg1D, FluxNEq, and FluxUEq.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildCons()

virtual void Flux::buildCons ( Phase ** ,
Mixture *  )
inlinevirtual

Build the conservative variables for a given cell from primitive one.

Parameters
phasesPhases array used for conservative variables calculus
mixtureMixture used for conservative variables calculus

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ buildPrim()

virtual void Flux::buildPrim ( Phase ** ,
Mixture *  )
inlinevirtual

Build the primitive variables for a given cell from conservative one.

Parameters
phasesPhases array to fill
mixtureMixture to fill

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ correctionEnergy()

virtual void Flux::correctionEnergy ( Cell * ,
Prim = vecPhases ) const
inlinevirtual

Method to correct energy in non conservative models using total energy conservation.

Parameters
cellcell to correct
typeenumeration allowing to correct either state in the cell or second order half time step state

Reimplemented in FluxPUEq.

◆ getAlpha()

virtual const double & Flux::getAlpha ( const int & ) const
inlinevirtual

Reimplemented in FluxNEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCobase()

virtual const Tensor & Flux::getCobase ( const int & ) const
inlinevirtual
Here is the call graph for this function:

◆ getEnergy()

virtual const double & Flux::getEnergy ( const int & ) const
inlinevirtual

Reimplemented in FluxNEq, and FluxUEq.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getEnergyMix()

virtual const double & Flux::getEnergyMix ( ) const
inlinevirtual

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxPTUEq, and FluxUEq.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getEqDensitySurEta()

virtual const double & Flux::getEqDensitySurEta ( ) const
inlinevirtual

Reimplemented in FluxExtendedNavierStokesKorteweg1D.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getEqOmega()

virtual const double & Flux::getEqOmega ( ) const
inlinevirtual

Reimplemented in FluxExtendedNavierStokesKorteweg1D.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getEqVectorP()

virtual const Coord & Flux::getEqVectorP ( ) const
inlinevirtual

Reimplemented in FluxExtendedNavierStokesKorteweg1D.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLambda()

virtual const double & Flux::getLambda ( const int & ) const
inlinevirtual
Here is the call graph for this function:

◆ getMass()

virtual const double & Flux::getMass ( const int & ) const
inlinevirtual

Reimplemented in FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMassMix()

virtual const double & Flux::getMassMix ( ) const
inlinevirtual

Reimplemented in FluxEuler, FluxEulerHomogeneous, and FluxExtendedNavierStokesKorteweg1D.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMomentum() [1/2]

virtual const Coord & Flux::getMomentum ( ) const
inlinevirtual

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMomentum() [2/2]

virtual const Coord & Flux::getMomentum ( const int & ) const
inlinevirtual

Reimplemented in FluxNEq.

Here is the call graph for this function:

◆ getTotEnergy()

virtual const double & Flux::getTotEnergy ( const int & ) const
inlinevirtual

Reimplemented in FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multiply()

virtual void Flux::multiply ( double )
inlinevirtual

multiply the flux of the corresponding model by a constant

Parameters
scalarconstant

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ prepSourceTermsGravity()

virtual void Flux::prepSourceTermsGravity ( const Coord & )
inlinevirtual

Gravity source term.

Reimplemented in FluxEuler, FluxExtendedNavierStokesKorteweg1D, and FluxUEq.

Here is the call graph for this function:

◆ prepSourceTermsHeating()

virtual void Flux::prepSourceTermsHeating ( const double & )
inlinevirtual

Heating source term.

Reimplemented in FluxEuler, FluxExtendedNavierStokesKorteweg1D, FluxPTUEq, and FluxUEq.

Here is the call graph for this function:

◆ prepSourceTermsMRF()

virtual void Flux::prepSourceTermsMRF ( Cell * ,
const Coord &  )
inlinevirtual

MRF source term.

Reimplemented in FluxEuler, FluxExtendedNavierStokesKorteweg1D, and FluxUEq.

Here is the call graph for this function:

◆ prepSourceTermsPlaneWave()

virtual void Flux::prepSourceTermsPlaneWave ( const Cell * ,
const double & ,
const Coord &  )
inlinevirtual

This prepares Plane-Gaussian-pulse and Plane-Sinusoidal-pulse source terms.

Reimplemented in FluxEuler, FluxExtendedNavierStokesKorteweg1D, and FluxUEq.

Here is the call graph for this function:

◆ printFlux()

virtual void Flux::printFlux ( ) const
inlinevirtual

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ schemeCorrection()

virtual void Flux::schemeCorrection ( Cell & ) const
inlinevirtual

Reimplemented in FluxPUEq, and FluxUEq.

◆ setBufferFlux()

virtual void Flux::setBufferFlux ( Cell & )
inlinevirtual

Temporary store the conservative variables of a given cell.

The conservatvie variables are temporary stored in the corresponding model buffer flux

Parameters
cellcell used for conservative variables calculus

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ setCons()

virtual void Flux::setCons ( const Flux * )
inlinevirtual

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ setToZero()

virtual void Flux::setToZero ( )
inlinevirtual

set each attribute of the flux to zero

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxNEqDEM, FluxNEqHLL, FluxNEqHLLAC, FluxNEqHLLBN, FluxNEqHLLC4Waves, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

◆ substractFluxSmooth1D()

virtual void Flux::substractFluxSmooth1D ( double ,
const Coord & ,
Cell *  )
inlinevirtual

Compute additionnal flux for 1D geometry with smooth varying cross section.

Reimplemented in FluxEuler, FluxEulerHomogeneous, and FluxUEq.

Here is the call graph for this function:

◆ subtractFlux()

virtual void Flux::subtractFlux ( double )
inlinevirtual

Subtract flux to the corresponding model buffer flux.

Parameters
coefApossibility to multiply the flux before subtraction (set 1.d0 if not needed)

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxPTUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ subtractFluxRotatingRegion()

virtual void Flux::subtractFluxRotatingRegion ( double )
inlinevirtual

Subtract flux to the rotating region in MRF context.

Parameters
coefApossibility to multiply the flux before subtraction (set 1.d0 if not needed)

Reimplemented in FluxEuler, FluxNEq, and FluxUEq.

Here is the call graph for this function:

◆ subtractNonCons()

virtual void Flux::subtractNonCons ( double ,
const Cell * ,
const Coord & ,
const Coord & ,
const Coord &  )
inlinevirtual

Subtract non conservative term to the flux.

Parameters
coefApossibility to multiply the non conservative term before subtraction (set 1.d0 if not needed)
cellreference cell used to approximate the non conservative term
normalnormal vector of the treated face
tangenttangent vector of the treated face
binormalbinormal vector of the treated face

Reimplemented in FluxEuler, FluxEulerHomogeneous, FluxExtendedNavierStokesKorteweg1D, FluxNEq, FluxNEqDEM, FluxNEqHLL, FluxNEqHLLAC, FluxNEqHLLBN, FluxNEqHLLC4Waves, FluxPTUEq, FluxPUEq, FluxUEq, and FluxUEqTotEnergy.

Here is the call graph for this function:

Member Data Documentation

◆ m_sM

double Flux::m_sM
protected

Fluid velocity for intercell interfaces.

◆ m_uStar

double Flux::m_uStar
protected

Velocity solution of the Riemann problem !VERY IMPORTANT! DO NOT ERASE!


The documentation for this class was generated from the following files:
  • /home/runner/work/ECOGEN/ECOGEN/doc_sources/src/Models/Flux.h
  • /home/runner/work/ECOGEN/ECOGEN/doc_sources/src/Models/Flux.cpp