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

#include <CellO2GhostCartesian.h>

Inherits CellO2Cartesian.

Collaboration diagram for CellO2GhostCartesian:
[legend]

Public Member Functions

 CellO2GhostCartesian ()
 CellO2GhostCartesian (int lvl)
 ~CellO2GhostCartesian () override
virtual void deleteSlopes (int s)
void pushBackSlope () override
void popBackSlope () override
void allocate (const std::vector< AddPhys * > &addPhys) override
 Memory allocation of cell attributes.
int getRankOfNeighborCPU () const override
void setRankOfNeighborCPU (int rank) override
void computeLocalSlopes (CellInterface &cellInterfaceRef, Limiter &globalLimiter, Limiter &interfaceLimiter, Limiter &globalVolumeFractionLimiter, Limiter &interfaceVolumeFractionLimiter, double &alphaCellAfterOppositeSide, double &alphaCell, double &alphaCellOtherInterfaceSide, double &epsInterface) override
void createChildCell (const int &lvl) override
void getBufferSlopes (double *buffer, int &counter, const int &lvl) override
bool isCellGhost () const override
Public Member Functions inherited from CellO2Cartesian
 CellO2Cartesian ()
 CellO2Cartesian (int lvl)
 ~CellO2Cartesian () override
void computeLocalSlopesLimite (CellInterface &cellInterfaceRef, Limiter &globalLimiter, Limiter &interfaceLimiter, Limiter &globalVolumeFractionLimiter, Limiter &interfaceVolumeFractionLimiter, double &epsInterface) override
void computeLocalSlopesPeriodic (CellInterface &cellInterfaceRef, Limiter &globalLimiter, Limiter &interfaceLimiter, Limiter &globalVolumeFractionLimiter, Limiter &interfaceVolumeFractionLimiter, double &alphaCellAfterOppositeSide, double &alphaCell, double &alphaCellOtherInterfaceSide, double &epsInterface) override
void fillBufferSlopes (double *buffer, int &counter, const int &lvl, const int &neighbour) const override
Public Member Functions inherited from CellO2
 CellO2 ()
 CellO2 (int lvl)
 ~CellO2 () override
void copyPhase (const int &phaseNumber, Phase *phase) override
void saveCons () override
void getBackCons () override
void predictionOrdre2 (const double &dt, Symmetry *symmetry) override
void correctionEnergy (Prim type=vecPhases) override
void fulfillState (Prim type=vecPhases) override
Phase * getPhase (const int &phaseNumber, Prim type=vecPhases) const override
Phase ** getPhases (Prim type=vecPhases) const override
Mixture * getMixture (Prim type=vecPhases) const override
Transport & getTransport (const int &numTransport, Prim type=vecPhases) const override
Transport * getTransports (Prim type=vecPhases) const override
void setTransport (double value, int &numTransport, Prim type=vecPhases) override
GradPhase * getGradPhase (const int &) const override
GradMixture * getGradMixture () const override
GradTransport * getGradTransport (const int &) const override
void allocateSecondOrderBuffersAndGradientVectors (Phase **, Mixture *) override
 Compute global variable buffers (min, max, etc.) and initialize speficic gradient vectors for 2nd-order scheme on unstructured mesh.
void computeGradientsO2 () override
 Compute gradients for 2nd-order scheme on unstructured mesh.
void limitGradientsO2 (Limiter &) override
void computeLocalSlopes (CellInterface &) override
 Compute slopes for 2nd-order scheme on unstructured mesh.
Public Member Functions inherited from Cell
 Cell ()
 Basic Cell constructor for a non AMR cell.
 Cell (int lvl)
 Cell constructor for an AMR cell.
virtual ~Cell ()
void addCellInterface (CellInterface *cellInterface)
 Add a cell interface to current cell.
void deleteCellInterface (CellInterface *cellInterface)
 Delete the cell interface of current cell.
void associateExtVar (Model *mod, Gradient *grad)
 Associate external variables.
void allocateEos ()
void fill (std::vector< GeometricalDomain * > &domains, const int &)
 Filling cell properties using a physical domain.
void copyMixture (Mixture *mixture)
void setToZeroCons ()
void setToZeroConsGlobal ()
void timeEvolution (const double &dt, Symmetry *symmetry)
void timeEvolutionAddPhys (const double &dt)
void buildPrim ()
void buildCons ()
void sourceTermIntegration (const double &)
void printPhasesMixture (std::ofstream &fileStream) const
virtual void completeFulfillState ()
void fulfillStateResume ()
void localProjection (const Coord &normal, const Coord &tangent, const Coord &binormal, Prim=vecPhases)
virtual void reverseProjection (const Coord &normal, const Coord &tangent, const Coord &binormal)
virtual void copyInCell (Cell &) const
void copyVec (Phase **vecPhases, Mixture *mixture, Transport *vecTransports)
void deleteInterface (const int &b)
void prepareAddPhys ()
Coord selectVector (Variable nameVector, int num=0, int subscript=-1) const
void setVector (Variable nameVector, const Coord &value, int num=0, int subscript=-1)
const QuantitiesAddPhys * getQPA (const int &numQPA) const
QuantitiesAddPhys * getQPA (const int &numQPA)
 Allow to recover an additional physical quantity.
const Coord & getGradTk (int &numPhase, int &numAddPhys) const
 Allow to recover an additional physical quantity.
void setGradTk (int &numPhase, int &numAddPhys, double *buffer, int &counter)
void addNonConsAddPhys (AddPhys &addPhys, Symmetry *symmetry)
void reinitializeColorFunction (const int &numTransport, const int &numPhase)
 Re-initialize the color function (transport) with alpha.
double hatFilterScalar (Variable nameVariable, int num=0)
 Select a specific scalar variable.
void computeGradients (std::vector< Coord > &grads, std::vector< Variable > &nameVariables, std::vector< int > &numPhases)
 Compute gradients (temperature, velocity, density) of a cell.
int getCellInterfacesSize () const
CellInterface * getCellInterface (const int &b)
void setCellInterface (const int &b, CellInterface *cellInterface)
Flux * getCons () const
void setCons (Flux *cons)
const Coord & getPosition () const
const Coord & getSize () const
const double & getSizeX () const
const double & getSizeY () const
const double & getSizeZ () const
void setElement (Element *element, const int &numCell)
Element * getElement () const
Transport * getConsTransport (const int &numTransport) const
void setConsTransport (double value, const int &numTransport)
std::vector< QuantitiesAddPhys * > & getVecQuantitiesAddPhys ()
const int & getNumberPhases () const
const int & getNumberTransports () const
double getDensityGradient ()
Model * getModel ()
Coord & getVelocity ()
const Coord & getVelocity () const
void setWall (bool wall)
bool getWall () const
double selectScalar (Variable nameVariable, int num=0) const
 Select a specific scalar variable.
virtual Phase * getSlopes () const
virtual Transport * getSlopesTransport () const
double distance (Cell *c)
double distanceX (Cell *c)
double distanceY (Cell *c)
double distanceZ (Cell *c)
double distance (CellInterface *b)
double distanceX (CellInterface *b)
double distanceY (CellInterface *b)
double distanceZ (CellInterface *b)
bool traverseObjet (const GeometricObject &objet) const
void printInfo () const
double getPsat ()
 Compute saturation pressure for a liquid/vapor fluid mixture (first phase is considered predominant -> not generalized be careful).
bool printGnuplotAMR (std::ofstream &fileStream, const int &dim, GeometricObject *objet=0, bool recordPsat=false)
void computeVolumePhaseK (double &integration, const int &numPhase)
void computeMass (double &mass, double &alphaRef)
void computeTotalMass (double &mass)
void computeTotalEnergy (double &totalEnergy)
void lookForPmax (double *pMax, double *pMaxWall)
void setToZeroXi ()
void setToZeroConsXi ()
void timeEvolutionXi ()
void chooseRefine (const double &xiSplit, const int &nbCellsY, const int &nbCellsZ, const std::vector< AddPhys * > &addPhys, int &nbCellsTotalAMR)
void chooseUnrefine (const double &xiJoin, int &nbCellsTotalAMR)
void refineCellAndCellInterfaces (const int &nbCellsY, const int &nbCellsZ, const std::vector< AddPhys * > &addPhys, const bool &refineExternalCellInterfaces)
void unrefineCellAndCellInterfaces ()
void averageChildrenInParent ()
bool lvlNeighborTooHigh ()
bool lvlNeighborTooLow ()
void buildLvlCellsAndLvlInternalCellInterfacesArrays (std::vector< Cell * > *cellsLvl, std::vector< CellInterface * > *cellInterfacesLvl)
const int & getLvl () const
const bool & getSplit () const
const double & getXi () const
void setXi (double value)
void addFluxXi (double value)
int getNumberCellsChildren ()
Cell * getCellChild (const int &num)
std::vector< Cell * > * getChildVector ()
void fillBufferPrimitives (double *buffer, int &counter, const int &lvl, const int &neighbour, Prim type=vecPhases) const
void getBufferPrimitives (double *buffer, int &counter, const int &lvl, Eos **eos, Prim type=vecPhases)
void fillBufferVector (double *buffer, int &counter, const int &lvl, const int &neighbour, const int &dim, Variable nameVector, int num=0, int index=-1) const
void getBufferVector (double *buffer, int &counter, const int &lvl, const int &dim, Variable nameVector, int num=0, int index=-1)
void fillBufferTransports (double *buffer, int &counter, const int &lvl, const int &neighbour) const
void getBufferTransports (double *buffer, int &counter, const int &lvl)
bool hasNeighboringGhostCellOfCPUneighbour (const int &neighbour) const
int numberOfNeighboringGhostCellsOfCPUneighbour (const int &neighbour) const
void chooseRefineDeraffineGhost (const int &nbCellsY, const int &nbCellsZ, const std::vector< AddPhys * > &addPhys, std::vector< Cell * > *cellsLvlGhost)
void refineCellAndCellInterfacesGhost (const int &nbCellsY, const int &nbCellsZ, const std::vector< AddPhys * > &addPhys)
void unrefineCellAndCellInterfacesGhost ()
void fillBufferXi (double *buffer, int &counter, const int &lvl, const int &neighbour) const
void getBufferXi (double *buffer, int &counter, const int &lvl)
void fillBufferSplit (bool *buffer, int &counter, const int &lvl, const int &neighbour) const
void getBufferSplit (bool *buffer, int &counter, const int &lvl)
void fillNumberElementsToSendToNeighbour (int &numberElementsToSendToNeighbor, int &numberSlopesToSendToNeighbor, const int &lvl, const int &neighbour, int numberNeighboursOfCPUneighbour)
void fillDataToSend (std::vector< double > &dataToSend, std::vector< int > &dataSplitToSend, const int &lvl) const
void getDataToReceiveAndRefine (std::vector< double > &dataToReceive, std::vector< int > &dataSplitToReceive, const int &lvl, Eos **eos, int &counter, int &counterSplit, const int &nbCellsY, const int &nbCellsZ, const std::vector< AddPhys * > &addPhys)
void computeLoad (double &load, int lvl) const
void computeLvlMax (int &lvlMax) const
void clearExternalCellInterfaces (const int &nbCellsY, const int &nbCellsZ)
void updatePointersInternalCellInterfaces ()
void updateNbCellsTotalAMR (int &nbCellsTotalAMR)

Protected Attributes

int m_rankOfNeighborCPU
std::vector< int > m_indexCellInterface
std::vector< Phase ** > m_vecPhasesSlopesGhost
std::vector< Mixture * > m_mixtureSlopesGhost
std::vector< double * > m_vecTransportsSlopesGhost
std::vector< double > m_alphaCellAfterOppositeSide
Protected Attributes inherited from CellO2
Phase ** m_vecPhasesO2
Mixture * m_mixtureO2
Transport * m_vecTransportsO2
Flux * m_consSauvegarde
Transport * m_consTransportsSauvegarde
Protected Attributes inherited from Cell
bool m_wall
Phase ** m_vecPhases
Mixture * m_mixture
Transport * m_vecTransports
Flux * m_cons
Transport * m_consTransports
Element * m_element
std::vector< CellInterface * > m_cellInterfaces
std::vector< QuantitiesAddPhys * > m_vecQuantitiesAddPhys
int m_lvl
double m_xi
double m_consXi
bool m_split
std::vector< Cell * > m_childrenCells
std::vector< CellInterface * > m_childrenInternalCellInterfaces

Constructor & Destructor Documentation

◆ CellO2GhostCartesian() [1/2]

CellO2GhostCartesian::CellO2GhostCartesian ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CellO2GhostCartesian() [2/2]

CellO2GhostCartesian::CellO2GhostCartesian ( int lvl)
Here is the call graph for this function:

◆ ~CellO2GhostCartesian()

CellO2GhostCartesian::~CellO2GhostCartesian ( )
override
Here is the call graph for this function:

Member Function Documentation

◆ allocate()

void CellO2GhostCartesian::allocate ( const std::vector< AddPhys * > & addPhys)
overridevirtual

Memory allocation of cell attributes.

Parameters
addPhysvector of additional physics

Reimplemented from CellO2.

Here is the call graph for this function:

◆ computeLocalSlopes()

void CellO2GhostCartesian::computeLocalSlopes ( CellInterface & cellInterfaceRef,
Limiter & globalLimiter,
Limiter & interfaceLimiter,
Limiter & globalVolumeFractionLimiter,
Limiter & interfaceVolumeFractionLimiter,
double & alphaCellAfterOppositeSide,
double & alphaCell,
double & alphaCellOtherInterfaceSide,
double & epsInterface )
overridevirtual

Reimplemented from CellO2Cartesian.

Here is the call graph for this function:

◆ createChildCell()

void CellO2GhostCartesian::createChildCell ( const int & lvl)
overridevirtual

Creer une cell enfant (non initializee)

Reimplemented from CellO2Cartesian.

Here is the call graph for this function:

◆ deleteSlopes()

void CellO2GhostCartesian::deleteSlopes ( int s)
virtual
Here is the caller graph for this function:

◆ getBufferSlopes()

void CellO2GhostCartesian::getBufferSlopes ( double * ,
int & ,
const int &  )
overridevirtual

Does nothing for first order cells

Reimplemented from CellO2Cartesian.

◆ getRankOfNeighborCPU()

int CellO2GhostCartesian::getRankOfNeighborCPU ( ) const
overridevirtual

Does nothing for non-ghost O2 cells

Reimplemented from Cell.

◆ isCellGhost()

bool CellO2GhostCartesian::isCellGhost ( ) const
inlineoverridevirtual

Does nothing for first order cells

Reimplemented from Cell.

◆ popBackSlope()

void CellO2GhostCartesian::popBackSlope ( )
overridevirtual

Does nothing for non-ghost O2 cells

Reimplemented from Cell.

Here is the call graph for this function:

◆ pushBackSlope()

void CellO2GhostCartesian::pushBackSlope ( )
overridevirtual

Reimplemented from Cell.

◆ setRankOfNeighborCPU()

void CellO2GhostCartesian::setRankOfNeighborCPU ( int rank)
overridevirtual

Reimplemented from Cell.

Member Data Documentation

◆ m_alphaCellAfterOppositeSide

std::vector<double> CellO2GhostCartesian::m_alphaCellAfterOppositeSide
protected

To store volume fractions after ghost cell

◆ m_indexCellInterface

std::vector<int> CellO2GhostCartesian::m_indexCellInterface
protected

Index of the corresponding cell interface for vectors below

◆ m_mixtureSlopesGhost

std::vector<Mixture*> CellO2GhostCartesian::m_mixtureSlopesGhost
protected

To store slopes of mixtures

◆ m_rankOfNeighborCPU

int CellO2GhostCartesian::m_rankOfNeighborCPU
protected

Rank of the neighbor CPU corresponding to this ghost cell

◆ m_vecPhasesSlopesGhost

std::vector<Phase**> CellO2GhostCartesian::m_vecPhasesSlopesGhost
protected

To store slopes of phases

◆ m_vecTransportsSlopesGhost

std::vector<double*> CellO2GhostCartesian::m_vecTransportsSlopesGhost
protected

To store slopes of transports


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