OFELI's Logo

An Object Oriented Finite Element Library

Class to solve the Inviscid compressible fluid flows (Euler equations) for perfect gas in 2-D. More...

#include <ICPG2DT.h>

+ Inheritance diagram for ICPG2DT:

Public Member Functions

 ICPG2DT (Mesh &ms)
 Constructor using mesh instance.
 
 ICPG2DT (Mesh &ms, Vect< real_t > &r, Vect< real_t > &v, Vect< real_t > &p)
 Constructor using mesh and initial data. More...
 
 ~ICPG2DT ()
 Destructor.
 
void setReconstruction ()
 Reconstruct. More...
 
real_t runOneTimeStep ()
 Advance one time step.
 
void Forward (const Vect< real_t > &Flux, Vect< real_t > &Field)
 Add Flux to Field. More...
 
real_t getFlux ()
 Get flux.
 
void setSolver (SolverType s)
 Choose solver. More...
 
void setGamma (real_t gamma)
 Set Gamma value.
 
void setCv (real_t Cv)
 Set value of heat capacity at constant volume.
 
void setCp (real_t Cp)
 Set value of heat capacity at constant pressure.
 
void setKappa (real_t Kappa)
 Set Kappa value.
 
real_t getGamma () const
 Return value of Gamma.
 
real_t getCv () const
 Return value of heat capacity at constant volume.
 
real_t getCp () const
 Return value of heat capacity at constant pressure.
 
real_t getKappa () const
 Return value of Kappa.
 
MeshgetMesh ()
 Return reference to mesh instance.
 
void getMomentum (Vect< real_t > &m) const
 Calculate elementwise momentum.
 
void getInternalEnergy (Vect< real_t > &e) const
 Calculate elementwise internal energy.
 
void getTotalEnergy (Vect< real_t > &e) const
 Return elementwise total energy.
 
void getSoundSpeed (Vect< real_t > &s) const
 Return elementwise sound speed.
 
void getMach (Vect< real_t > &m) const
 Return elementwise Mach number.
 
void setInitialConditionShockTube (const LocalVect< real_t, 4 > &BcL, const LocalVect< real_t, 4 > &BcR, real_t x0)
 Set initial condition for the schock tube problem.
 
void setInitialCondition (const LocalVect< real_t, 4 > &u)
 Set initial condition.
 
void setBC (const Side &sd, real_t a)
 Prescribe a constant boundary condition at given side. More...
 
void setBC (int code, real_t a)
 Prescribe a constant boundary condition for a given code. More...
 
void setBC (real_t u)
 Prescribe a constant boundary condition on all boundary sides. More...
 
void setBC (const Side &sd, const LocalVect< real_t, 4 > &u)
 Prescribe a constant boundary condition at a given side. More...
 
void setBC (int code, const LocalVect< real_t, 4 > &u)
 Prescribe a constant boundary condition for a given code. More...
 
void setBC (const LocalVect< real_t, 4 > &u)
 Prescribe a constant boundary condition at all boundary sides. More...
 
real_t getR (size_t i) const
 Return density at given element label. More...
 
real_t getV (size_t i, size_t j) const
 
real_t getP (size_t i) const
 Return pressure at given element label. More...
 
- Public Member Functions inherited from Muscl2DT
 Muscl2DT (Mesh &m)
 Constructor using mesh.
 
 ~Muscl2DT ()
 Destructor.
 
bool setReconstruction (const Vect< real_t > &U, Vect< real_t > &LU, Vect< real_t > &RU, size_t dof)
 Function to reconstruct by the Muscl method. More...
 
- Public Member Functions inherited from Muscl
 Muscl (Mesh &m)
 Constructor using mesh instance.
 
virtual ~Muscl ()
 Destructor.
 
void setTimeStep (real_t dt)
 Assign time step value. More...
 
real_t getTimeStep () const
 Return time step value.
 
void setCFL (real_t CFL)
 Assign CFL value. More...
 
real_t getCFL () const
 Return CFL value.
 
void setReferenceLength (real_t dx)
 Assign reference length value. More...
 
real_t getReferenceLength () const
 Return reference length.
 
MeshgetMesh () const
 Return reference to Mesh instance.
 
void setVerbose (int v)
 Set verbosity parameter. More...
 
bool setReconstruction (const Vect< real_t > &U, Vect< real_t > &LU, Vect< real_t > &RU, size_t dof)
 Function to reconstruct by the Muscl method. More...
 
void setMethod (const Method &s)
 Choose a flux solver. More...
 
void setSolidZoneCode (int c)
 Choose a code for solid zone.
 
bool getSolidZone () const
 Return flag for presence of solid zones.
 
int getSolidZoneCode () const
 Return code of solid zone, 0 if this one is not present.
 
void setLimiter (Limiter l)
 Choose a flux limiter. More...
 

Additional Inherited Members

- Public Types inherited from Muscl
enum  Method {
  FIRST_ORDER_METHOD = 0 ,
  MULTI_SLOPE_Q_METHOD = 1 ,
  MULTI_SLOPE_M_METHOD = 2
}
 Enumeration for flux choice. More...
 
enum  Limiter {
  MINMOD_LIMITER = 0 ,
  VANLEER_LIMITER = 1 ,
  SUPERBEE_LIMITER = 2 ,
  VANALBADA_LIMITER = 3 ,
  MAX_LIMITER = 4
}
 Enumeration of flux limiting methods. More...
 
enum  SolverType {
  ROE_SOLVER = 0 ,
  VFROE_SOLVER = 1 ,
  LF_SOLVER = 2 ,
  RUSANOV_SOLVER = 3 ,
  HLL_SOLVER = 4 ,
  HLLC_SOLVER = 5 ,
  MAX_SOLVER = 6
}
 Enumeration of various solvers for the Riemann problem. More...
 
- Protected Member Functions inherited from Muscl2DT
void Initialize ()
 Construction of normals to sides. More...
 

Detailed Description

Class to solve the Inviscid compressible fluid flows (Euler equations) for perfect gas in 2-D.

Solution method is a second-order MUSCL Finite Volume scheme on triangles

Author
S. Clain, V. Clauzon

Constructor & Destructor Documentation

◆ ICPG2DT()

ICPG2DT ( Mesh ms,
Vect< real_t > &  r,
Vect< real_t > &  v,
Vect< real_t > &  p 
)

Constructor using mesh and initial data.

Parameters
[in]msMesh instance
[in]rInitial density vector (as instance of Vect)
[in]vInitial velocity vector (as instance of Vect)
[in]pInitial pressure vector (as instance of Vect)

Member Function Documentation

◆ Forward()

void Forward ( const Vect< real_t > &  Flux,
Vect< real_t > &  Field 
)

Add Flux to Field.

If this function is used, the function getFlux must be called

◆ getP()

real_t getP ( size_t  i) const

Return pressure at given element label.

Parameters
[in]iElement label

◆ getR()

real_t getR ( size_t  i) const

Return density at given element label.

Parameters
[in]iElement label

◆ getV()

real_t getV ( size_t  i,
size_t  j 
) const

Return velocity at given element label

Parameters
[in]iElement label
[in]jcomponent index (1 or 2)

◆ setBC() [1/6]

void setBC ( const LocalVect< real_t, 4 > &  u)

Prescribe a constant boundary condition at all boundary sides.

Parameters
[in]uVector (instance of class LocalVect) with as components the constant values to prescribe for the four fields (r, vx, vy, p)

◆ setBC() [2/6]

void setBC ( const Side sd,
const LocalVect< real_t, 4 > &  u 
)

Prescribe a constant boundary condition at a given side.

Parameters
[in]sdReference to Side instance
[in]uVector (instance of class LocalVect) with as components the constant values to prescribe for the four fields (r, vx, vy, p)

◆ setBC() [3/6]

void setBC ( const Side sd,
real_t  a 
)

Prescribe a constant boundary condition at given side.

Parameters
[in]sdReference to Side instance
[in]aValue to prescribe

◆ setBC() [4/6]

void setBC ( int  code,
const LocalVect< real_t, 4 > &  u 
)

Prescribe a constant boundary condition for a given code.

Parameters
[in]codeCode for which value is imposed
[in]uVector (instance of class LocalVect) with as components the constant values to prescribe for the four fields (r, vx, vy, p)

◆ setBC() [5/6]

void setBC ( int  code,
real_t  a 
)

Prescribe a constant boundary condition for a given code.

Parameters
[in]codeCode for which value is imposed
[in]aValue to prescribe

◆ setBC() [6/6]

void setBC ( real_t  u)

Prescribe a constant boundary condition on all boundary sides.

Parameters
[in]uValue to prescribe

◆ setReconstruction()

void setReconstruction ( )

Reconstruct.

exit(3) if reconstruction fails

◆ setSolver()

void setSolver ( SolverType  s)

Choose solver.

Parameters
[in]sIndex of solver in the enumerated variable SolverType Available values are: ROE_SOLVER, VFROE_SOLVER, LF_SOLVER, RUSANOV_SOLVER, HLL_SOLVER, HLLC_SOLVER, MAX_SOLVER





Copyright © 1998-2022 Rachid Touzani