PLUTO
set_solver.c
Go to the documentation of this file.
1 /* ///////////////////////////////////////////////////////////////////// */
2 /*!
3  \file
4  \brief Return a pointer to a Riemann solver function.
5 
6  \author A. Mignone (mignone@ph.unito.it)
7  \date June 5, 2013
8 */
9 /* ///////////////////////////////////////////////////////////////////// */
10 #include"pluto.h"
11 
12 /* ********************************************************************* */
13 Riemann_Solver *SetSolver (const char *solver)
14 /*!
15  * Depending on the choice of the Riemann solver specified in
16  * pluto.ini, return a pointer to the corresponding Riemann solver
17  * function
18  *
19  *********************************************************************** */
20 {
21 
22  #ifdef FINITE_DIFFERENCE
23  return (&FD_Flux);
24  #endif
25 
26 /* ------------------------------------------------------
27  Set Pointers for SOLVERS
28  ------------------------------------------------------ */
29 
30  #if EOS == IDEAL
31 
32  if (!strcmp(solver, "tvdlf")) return (&LF_Solver);
33  else if (!strcmp(solver, "roe")) return (&Roe_Solver);
34  else if (!strcmp(solver, "hlle") ||
35  !strcmp(solver, "hll")) return (&HLL_Solver);
36  else if (!strcmp(solver, "hllc")) return (&HLLC_Solver);
37  else if (!strcmp(solver, "hlld")) return (&HLLD_Solver);
38 /*
39  else if (!strcmp(solver, "musta")) return (&MUSTA_Solver);
40 */
41 
42  #elif EOS == PVTE_LAW
43  if (!strcmp(solver, "tvdlf")) return (&LF_Solver);
44  else if (!strcmp(solver, "hlle") ||
45  !strcmp(solver, "hll")) return (&HLL_Solver);
46  else if (!strcmp(solver, "hllc")) return (&HLLC_Solver);
47  else if (!strcmp(solver, "hlld")) return (&HLLD_Solver);
48 
49  #elif EOS == ISOTHERMAL
50 
51  if (!strcmp(solver, "tvdlf")) return (&LF_Solver);
52  else if (!strcmp(solver, "roe")) return (&Roe_Solver);
53  else if (!strcmp(solver, "hlle") ||
54  !strcmp(solver, "hll")) return (&HLL_Solver);
55  else if (!strcmp(solver, "hlld")) return (&HLLD_Solver);
56 /*
57  else if (!strcmp(solver, "musta")) return (&MUSTA_Solver);
58 */
59 
60  #elif EOS == BAROTROPIC
61 
62  if (!strcmp(solver, "tvdlf")) return (&LF_Solver);
63  else if (!strcmp(solver, "hlle") ||
64  !strcmp(solver, "hll")) return (&HLL_Solver);
65 
66  #endif
67 
68  print1 ("\n! SetSolver: '%s' is not available.\n", solver);
69  QUIT_PLUTO(1);
70 
71 }
72 
Riemann_Solver * SetSolver(const char *solver)
Definition: set_solver.c:4
void print1(const char *fmt,...)
Definition: amrPluto.cpp:511
void Riemann_Solver(const State_1D *, int, int, double *, Grid *)
Definition: pluto.h:489
Riemann_Solver HLLC_Solver
Definition: mod_defs.h:106
Riemann_Solver Roe_Solver
Definition: mod_defs.h:106
Riemann_Solver HLLD_Solver
Definition: mod_defs.h:221
PLUTO main header file.
Riemann_Solver HLL_Solver
Definition: mod_defs.h:106
Riemann_Solver LF_Solver
Definition: mod_defs.h:106
#define QUIT_PLUTO(e_code)
Definition: macros.h:125
void FD_Flux(const State_1D *state, int beg, int end, double *cmax, Grid *grid)
Definition: fd_flux.c:23