Computes 1D fluxes using exact nonlinear Riemann solver. More...
Go to the source code of this file.
Functions | |
static void | srder (double dm, double vl, double vr, double dmin, double dmax, double *y, double *dydx) |
Equation to solve iteratively for shock and rarefaction as well as its derivative. | |
static double | rtsafe (void(*funcd)(double, double, double, double, double, double *, double *), double x1, double x2, double xacc, double vl, double vr, double dmin, double dmax) |
Numerical Recipes function rtsafe modified to use doubles and take extra parameters to pass to the derivative function above. | |
void | fluxes (const Cons1DS Ul, const Cons1DS Ur, const Prim1DS Wl, const Prim1DS Wr, const Real Bxi, Cons1DS *pF) |
Calculates fluxes of CONSERVED variables. | |
static Real | guessP (const Prim1DS Wl, const Prim1DS Wr) |
Provides a guess value for the pressure in the center region. | |
static Real | PFunc (const Prim1DS W, Real POld) |
Evaluates the pressure function (see Toro) for the exact riemann solver, given the pressure POld. | |
static Real | PFuncDeriv (const Prim1DS W, Real POld) |
evaluate the derivative of the pressure function (see Toro) at the pressure value POld | |
static Real | getPC (const Prim1DS Wl, const Prim1DS Wr) |
Uses Newton-Raphson iteration to find the alebraic root of the pressure function and determine the pressure solution in the center region, Pc. |
Computes 1D fluxes using exact nonlinear Riemann solver.
PURPOSE: Computes 1D fluxes using exact nonlinear Riemann solver. Currently only isothermal hydrodynamics has been implemented.
REFERENCES:
HISTORY:
CONTAINS PUBLIC FUNCTIONS:
Definition in file exact.c.
void fluxes | ( | const Cons1DS | Ul, | |
const Cons1DS | Ur, | |||
const Prim1DS | Wl, | |||
const Prim1DS | Wr, | |||
const Real | Bx, | |||
Cons1DS * | pFlux | |||
) |
Calculates fluxes of CONSERVED variables.
Computes 1D fluxes Input Arguments:
Computes 1D fluxes.
Compute 1D fluxes Input Arguments:
Computes 1D fluxes Input Arguments:
Computes 1D fluxes Input Arguments:
Computes 1D fluxes Input Arguments:
Computes 1D fluxes using exact special relativistic Riemann solver.
Computes fluxes of CONSERVES variables.
Input Arguments:
Input Arguments:
Input Arguments:
--------------------------------------------------------------------------
Output Arguments:
Input Arguments:
Definition at line 482 of file exact.c.
Referenced by integrate_1d_ctu(), integrate_1d_vl(), integrate_2d_ctu(), integrate_2d_vl(), integrate_3d_ctu(), and integrate_3d_vl().
Uses Newton-Raphson iteration to find the alebraic root of the pressure function and determine the pressure solution in the center region, Pc.
Fails if iteration diverges
Definition at line 433 of file exact.c.
References ath_error(), guessP(), PFunc(), PFuncDeriv(), and Prim1DS::Vx.
Referenced by fluxes().
Provides a guess value for the pressure in the center region.
The choice is made according to the Two-Shock approximate Riemman solver algorithm. Returns pressure guess value p_0, or TOL if p_0 is less than zero
Definition at line 347 of file exact.c.
References Prim1DS::d, Gamma, Prim1DS::P, and Prim1DS::Vx.
Referenced by getPC().
Evaluates the pressure function (see Toro) for the exact riemann solver, given the pressure POld.
Definition at line 377 of file exact.c.
References a, Prim1DS::d, f, Gamma, and Prim1DS::P.
Referenced by fluxes(), and getPC().
evaluate the derivative of the pressure function (see Toro) at the pressure value POld
Definition at line 404 of file exact.c.
References a, Prim1DS::d, Gamma, and Prim1DS::P.
Referenced by getPC().
static double rtsafe | ( | void(*)(double, double, double, double, double, double *, double *) | funcd, | |
double | x1, | |||
double | x2, | |||
double | xacc, | |||
double | vl, | |||
double | vr, | |||
double | dmin, | |||
double | dmax | |||
) | [static] |