Parent class for hyperbolic solvers with Muscl scheme. More...

#include <Muscl.h>

Inheritance diagram for Muscl:
Muscl1D Muscl2DT Muscl3DT ICPG1D LCL1D ICPG2DT LCL2DT ICPG3DT LCL3DT

Public Types

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...
 

Public Member Functions

 Muscl (Mesh &m)
 Constructor using mesh instance.
 
virtual ~Muscl ()
 Destructor.
 
void setTimeStep (real_t dt)
 Assign time step value.
 
real_t getTimeStep () const
 Return time step value.
 
void setCFL (real_t CFL)
 Assign CFL value.
 
real_t getCFL () const
 Return CFL value.
 
void setReferenceLength (real_t dx)
 Assign reference length value.
 
real_t getReferenceLength () const
 Return reference length.
 
MeshgetMesh () const
 Return reference to Mesh instance.
 
void setVerbose (int v)
 Set verbosity parameter.
 
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.
 
void setMethod (const Method &s)
 Choose a flux solver.
 
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.
 

Detailed Description

Parent class for hyperbolic solvers with Muscl scheme.

Everything here is common for both 2D and 3D muscl methods ! Virtual functions are implemented in Muscl2D and Muscl3D classes

Author
S. Clain, V. Clauzon

Member Enumeration Documentation

◆ Limiter

enum Limiter

Enumeration of flux limiting methods.

Enumerator
MINMOD_LIMITER 

MinMod limiter

VANLEER_LIMITER 

Van Leer limiter

SUPERBEE_LIMITER 

Superbee limiter

VANALBADA_LIMITER 

Van Albada limiter

MAX_LIMITER 

Max limiter

◆ Method

enum Method

Enumeration for flux choice.

Enumerator
FIRST_ORDER_METHOD 

First Order upwind method

MULTI_SLOPE_Q_METHOD 

Multislope Q method

MULTI_SLOPE_M_METHOD 

Multislope M method

◆ SolverType

enum SolverType

Enumeration of various solvers for the Riemann problem.

Enumerator
ROE_SOLVER 

Roe solver

VFROE_SOLVER 

Finite Volume Roe solver

LF_SOLVER 

LF solver

RUSANOV_SOLVER 

Rusanov solver

HLL_SOLVER 

HLL solver

HLLC_SOLVER 

HLLC solver

MAX_SOLVER 

Max solver

Member Function Documentation

◆ setCFL()

void setCFL ( real_t  CFL)

Assign CFL value.

Parameters
[in]CFLValue of CFL

◆ setLimiter()

void setLimiter ( Limiter  l)

Choose a flux limiter.

Parameters
[in]lLimiter to choose

◆ setMethod()

void setMethod ( const Method s)

Choose a flux solver.

Parameters
[in]sSolver to choose

◆ setReconstruction()

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.

Parameters
[in]UField to reconstruct
[out]LULeft gradient vector
[out]RURight gradient vector
[in]dofLabel of dof to reconstruct

◆ setReferenceLength()

void setReferenceLength ( real_t  dx)

Assign reference length value.

Parameters
[in]dxValue of reference length

◆ setTimeStep()

void setTimeStep ( real_t  dt)

Assign time step value.

Parameters
[in]dtTime step value

◆ setVerbose()

void setVerbose ( int  v)

Set verbosity parameter.

Parameters
[in]vValue of verbosity parameter