Class to solve the linear conservation law (Hyperbolic equation) in 1-D by a MUSCL Finite Volume scheme. More...
Inheritance diagram for LCL1D:
Public Types | |
| enum | Method { FIRST_ORDER_METHOD = 0, MULTI_SLOPE_Q_METHOD = 1, MULTI_SLOPE_M_METHOD = 2, M_FORCE_WORD = 0xFFFFFFFF } |
| Enumeration for flux choice. More... | |
| enum | Limiter { MINMOD_LIMITER = 0, VANLEER_LIMITER = 1, SUPERBEE_LIMITER = 2, VANALBADA_LIMITER = 3, MAX_LIMITER = 4, L_FORCE_WORD = 0xFFFFFFFF } |
| 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, FORCE_WORD = 0xFFFFFFFF } |
| Enumeration of various solvers for the Riemann problem. More... | |
Public Member Functions | |
| LCL1D (Mesh &m) | |
| Constructor using mesh instance. | |
| LCL1D (Mesh &m, Vect< double > &U) | |
| Constructor. | |
| ~LCL1D () | |
| Destructor. | |
| Vect< double > & | getFlux () |
| Return sidewise fluxes. | |
| void | setInitialCondition (Vect< double > &u) |
| Assign initial condition by a vector. | |
| void | setInitialCondition (double u) |
| Assign a constant initial condition. | |
| void | setReconstruction () |
| Run MUSCL reconstruction. | |
| double | runOneTimeStep () |
| Run one time step of the linear conservation law. | |
| void | setBC (double u) |
| Set Dirichlet boundary condition. | |
| void | setBC (const Side &sd, double u) |
| Set Dirichlet boundary condition. | |
| void | setBC (int code, double u) |
| Set Dirichlet boundary condition. | |
| void | setVelocity (Vect< double > &v) |
| Set convection velocity. | |
| void | setVelocity (double v) |
| Set (constant) convection velocity. | |
| void | setReferenceLength (double dx) |
| Assign reference length value. | |
| double | getReferenceLength () const |
| Return reference length. | |
| void | Forward (const Vect< double > &Flux, Vect< double > &Field) |
| Computation of the primal variable n->n+1. | |
| double | getMeanLength () const |
| Return mean length. | |
| double | getMaximumLength () const |
| Return maximal length. | |
| double | getMinimumLength () const |
| Return mimal length. | |
| double | getTauLim () const |
| Return mean length. | |
| void | print_mesh_stat () |
| Output mesh information. | |
| void | setTimeStep (double dt) |
| Assign time step value. | |
| double | getTimeStep () const |
| Return time step value. | |
| void | setCFL (double CFL) |
| Assign CFL value. | |
| double | getCFL () const |
| Return CFL value. | |
| Mesh & | getMesh () const |
| Return reference to Mesh instance. | |
| void | setVerbose (int v) |
| Set verbosity parameter. | |
| bool | setReconstruction (const Vect< double > &U, Vect< double > &LU, Vect< double > &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
Class to solve the linear conservation law (Hyperbolic equation) in 1-D by a MUSCL Finite Volume scheme.
Member Enumeration Documentation
enum Method [inherited] |
enum Limiter [inherited] |
enum SolverType [inherited] |
Enumeration of various solvers for the Riemann problem.
Member Function Documentation
| void setInitialCondition | ( | Vect< double > & | u | ) |
Assign initial condition by a vector.
- Parameters:
-
[in] u Vector containing initial condition
| void setInitialCondition | ( | double | u | ) |
Assign a constant initial condition.
- Parameters:
-
[in] u Constant value for the initial condition
| double runOneTimeStep | ( | ) |
Run one time step of the linear conservation law.
- Returns:
- Value of the time step
| void setBC | ( | double | u | ) |
Set Dirichlet boundary condition.
Assign a constant value u to all boundary sides
Set Dirichlet boundary condition.
Assign a constant value to a side
- Parameters:
-
[in] sd Side to which value is prescibed [in] u Value to prescribe
| void setBC | ( | int | code, |
| double | u | ||
| ) |
Set Dirichlet boundary condition.
Assign a constant value sides with a given code
- Parameters:
-
[in] code Code of sides to which value is prescibed [in] u Value to prescribe
| void setVelocity | ( | Vect< double > & | v | ) |
Set convection velocity.
- Parameters:
-
[in] v Vect instance containing velocity
Computation of the primal variable n->n+1.
Vector Flux contains elementwise fluxes issued from the Riemann problem, calculated with, as left element, getNeighborElement(1) and right element getNeighborElement(2) if getNeighborElement(2) doesn't exist, we are on a boundary and we prescribe a symmetry condition
| void setTimeStep | ( | double | dt | ) | [inherited] |
| void setCFL | ( | double | CFL | ) | [inherited] |
| void setVerbose | ( | int | v | ) | [inherited] |
Set verbosity parameter.
- Parameters:
-
[in] v Value of verbosity parameter
| bool setReconstruction | ( | const Vect< double > & | U, |
| Vect< double > & | LU, | ||
| Vect< double > & | RU, | ||
| size_t | dof | ||
| ) | [inherited] |
Choose a flux solver.
- Parameters:
-
[in] s Solver to choose
| void setLimiter | ( | Limiter | l | ) | [inherited] |
Choose a flux limiter.
- Parameters:
-
[in] l Limiter to choose
- OFELI
- LCL1D