|
static void | blcoord_singfixes (FTYPE *X, FTYPE *V) |
|
void | set_coord_parms (int defcoordlocal) |
| can call when no dependencies More...
|
|
void | set_coord_parms_nodeps (int defcoordlocal) |
| Things to set that only depend upon defcoord and nothing else NOTEMARK: By nothing else, that means things like hslope, R0, Rin, or anything else that user might set in init_grid() Otherwise, even if set hslope here for example and then use hslope to set something else, hslope could change and that other parameter would be wrong and coordinates would be mismatched. More...
|
|
void | set_coord_parms_deps (int defcoordlocal) |
| stuff that depends upon ANYTHING external that might be set by user in init_grid() or by system in init_defgrid(), like R0, Rin, hslope, h_over_r, etc. More...
|
|
void | write_coord_parms (int defcoordlocal) |
| write coordinate parameters More...
|
|
void | read_coord_parms (int defcoordlocal) |
| read coordinate parameters More...
|
|
void | bl_coord (FTYPE *X, FTYPE *V) |
| Returns boyer-lindquist coordinte of point. More...
|
|
FTYPE | thetaofx2 (FTYPE x2, FTYPE ror0nu) |
| theta(x2) special More...
|
|
void | dxdxprim (FTYPE *X, FTYPE *V, FTYPE(*dxdxp)[NDIM]) |
| Jacobian for dx uniform per dx nonuniform (dx/dr / dx/dr') i.e. More...
|
|
void | dxdxp_numerical (FTYPE *X, FTYPE(*dxdxp)[NDIM]) |
| numerical derivative of V w.r.t. X More...
|
|
int | setihor (void) |
| set i(horizon) More...
|
|
FTYPE | setRin (int ihor) |
| there's probably a way to do this in general probably can root find to get this set Rin so horizon exactly on FACE1 at i=ihor More...
|
|
void | coord (int i, int j, int k, int loc, FTYPE *X) |
| get X(i,j,k) CENT is default position in degenerate cases More...
|
|
void | coord_free (int i, int j, int k, int loc, FTYPE *X) |
| Get X(i,j,k) like coord() but does not constrain X when in reduced dimensionality used for infinitesimal differences such as when numerically computing connection or dxdxp's at the moment this function not used since X is defined directly rather than based upon grid. More...
|
|
void | coordf (FTYPE i, FTYPE j, FTYPE k, int loc, FTYPE *X) |
| identical to coord except declaration using FTYPEs More...
|
|
FTYPE | round (FTYPE x) |
| get rounded value of x More...
|
|
long int | lrint (FTYPE x) |
| get rounded value of x More...
|
|
int | is_inside_surface (int dir, int ii, int jj, int kk, int pp) |
| see if point inside surface dir=X1UP,X1DN,etc. More...
|
|
int | is_on_surface (int dir, int ii, int jj, int kk, int pp) |
| see if point is on surface More...
|
|
void | dxdxprim_ijk (int i, int j, int k, int loc, FTYPE(*dxdxp)[NDIM]) |
| normally-used dxdxp[i,j,k] = dV/dX More...
|
|
void | idxdxprim (FTYPE(*dxdxp)[NDIM], FTYPE(*idxdxp)[NDIM]) |
| Get (dV/dX)^{-1}. More...
|
|
void | idxdxprim_ijk (int i, int j, int k, int loc, FTYPE(*idxdxp)[NDIM]) |
| normally-used dxdxp[i,j,k] More...
|
|
void | bl_coord_ijk (int i, int j, int k, int loc, FTYPE *V) |
| normally-used bl_coord[i,j,k] {i,j,k} -> V only More...
|
|
void | bl_coord_coord (int i, int j, int k, int loc, FTYPE *X, FTYPE *V) |
| normally-used bl_coord[i,j,k] returns both X and V given i,j,k,loc and does NOT try to use stored memory – presumes could input arbitrary i,j,k not on a single CPU More...
|
|
void | coord_ijk (int i, int j, int k, int loc, FTYPE *X) |
| normally-used bl_coord[i,j,k] {i,j,k} -> X only More...
|
|
FTYPE | Ftr (FTYPE x) |
| smooth step function: Ftr = 0 if x < 0, Ftr = 1 if x > 1 and smoothly interps. More...
|
|
FTYPE | Ftrgenlin (FTYPE x, FTYPE xa, FTYPE xb, FTYPE ya, FTYPE yb) |
|
FTYPE | Ftrgen (FTYPE x, FTYPE xa, FTYPE xb, FTYPE ya, FTYPE yb) |
|
FTYPE | Fangle (FTYPE x) |
|
FTYPE | limlin (FTYPE x, FTYPE x0, FTYPE dxx, FTYPE y0) |
|
FTYPE | minlin (FTYPE x, FTYPE x0, FTYPE dxx, FTYPE y0) |
|
FTYPE | mins (FTYPE f1, FTYPE f2, FTYPE df) |
|
FTYPE | maxs (FTYPE f1, FTYPE f2, FTYPE df) |
|
FTYPE | minmaxs (FTYPE f1, FTYPE f2, FTYPE df, FTYPE dir) |
| =mins if dir < 0 =maxs if dir >= 0 More...
|
|
static FTYPE | sinth0 (FTYPE *X0, FTYPE *X, void(*vofx)(FTYPE *, FTYPE *)) |
| for sjet coords More...
|
|
static FTYPE | sinth1in (FTYPE *X0, FTYPE *X, void(*vofx)(FTYPE *, FTYPE *)) |
| for sjet coords More...
|
|
static FTYPE | th2in (FTYPE *X0, FTYPE *X, void(*vofx)(FTYPE *, FTYPE *)) |
| for sjet coords More...
|
|
static void | to1stquadrant (FTYPE *Xin, FTYPE *Xout, int *ismirrored) |
| for sjet coords Converts copies Xin to Xout and converts but sets Xout[2] to lie in the 1st quadrant, i.e. More...
|
|
static FTYPE | func1 (FTYPE *X0, FTYPE *X, void(*vofx)(FTYPE *, FTYPE *)) |
| for sjet coords More...
|
|
static FTYPE | func2 (FTYPE *X0, FTYPE *X, void(*vofx)(FTYPE *, FTYPE *)) |
| for sjet coords More...
|
|
User coordinates and other coordinates stuff.
this file contains all the coordinate dependent parts of the code, except the initial and boundary conditions
static variables with global scope to this file could make any or all of these true global if want to change them in, say, init.c
Notes: 1) BCtype[] used below, but should presume BCtype[] could change even if storing X and V. So far use of R0SING and DISKSURFACE is ok since not changing to/from those types.
OPENMPMARK: Note that previously had many static (so global to this file) variables. However, many were not thread safe since depended upon position or time. So need to ensure all statics here are set ONLY in set_coord_() type functions and NOT set in bl_coord() or dxdxp() or other functions that are called by multiple threads. Hence all these statics must be constant values in time and space. Note that JCM did have the variables set in the right location previously, just didn't have variables defined in right place since wasn't trying to be thread safe. Note that Intel Thread Checker didn't catch multiple thread use of myhslope.
Definition in file coord.c.