3.4.16. horton/grid/rtransform.h – Transformation from uniform 1D to non-uniform 1D grids¶
-
class
RTransform¶ - #include <rtransform.h>
Transformation of radial grid used for integration in spherical coordinates.
Some conventions
radiusorrare the transformed values, a function of t.tis used for the original grid
Subclassed by ExpRTransform, HyperbolicRTransform, IdentityRTransform, LinearRTransform, PowerRTransform
Public Functions
-
RTransform(int npoint)¶ Create an RTransform object.
- Parameters
npoint: The number of points on the radial grid.
-
virtual
~RTransform()¶ Destructor.
-
virtual double
radius(double t) = 0¶ Compute the radius for a given t. (Forward transformation.)
- Parameters
t: The value on the untransformed grid.
-
virtual double
deriv(double t) = 0¶ Compute the derivative of the radius w.r.t. t.
- Parameters
t: The value on the untransformed grid.
-
virtual double
deriv2(double t) = 0¶ Compute the second derivative of the radius w.r.t. t.
- Parameters
t: The value on the untransformed grid.
-
virtual double
deriv3(double t) = 0¶ Compute the third derivative of the radius w.r.t. t.
- Parameters
t: The value on the untransformed grid.
-
virtual double
inv(double r) = 0¶ Compute t for a given radius. (Reverse transform.)
- Parameters
r: The value on the transformed grid.
-
void
radius_array(double *t, double *r, int n)¶ Compute the radii for a given array of t values. (Forward transformation.)
- Parameters
t: The array with values on the untransformed grid.r: The output array with radii.n: The number of elements in the array.
-
void
deriv_array(double *t, double *d, int n)¶ Compute derivatives of the radius for a given array of t values.
- Parameters
t: The array with values on the untransformed grid.d: The output array with (d r)/(d t).n: The number of elements in the array.
-
void
deriv2_array(double *t, double *d, int n)¶ Compute second derivatives of the radius for a given array of t values.
- Parameters
t: The array with values on the untransformed grid.d: The output array with (d^2 r)/(d t^2).n: The number of elements in the array.
-
void
deriv3_array(double *t, double *d, int n)¶ Compute third derivatives of the radius for a given array of t values.
- Parameters
t: The array with values on the untransformed grid.d: The output array with (d^3 r)/(d t^3).n: The number of elements in the array.
-
void
inv_array(double *r, double *t, int n)¶ Compute the t values for a given array radii. (Reverse transformation.)
- Parameters
r: The array with radii.t: The output array with values on the untransformed grid.n: The number of elements in the array.
-
int
get_npoint()¶ The number of grid points .
Protected Attributes
-
int
npoint¶ The number of grid points.
-
class
IdentityRTransform¶ - #include <rtransform.h>
Identity transformation, mostly used for debugging. r(t) = t.
Inherits from RTransform
Public Functions
-
IdentityRTransform(int npoint)¶ Create an IdentityRTransform object.
- Parameters
npoint: The number of points on the radial grid.
-
double
radius(double t)¶ Forward transformation.
-
double
deriv(double t)¶ (d r)/(d t)
-
double
deriv2(double t)¶ (d^2 r)/(d t^2)
-
double
deriv3(double t)¶ (d^3 r)/(d t^3)
-
double
inv(double r)¶ Reverse transformation.
-
-
class
LinearRTransform¶ - #include <rtransform.h>
Linear transformation. r(t) = rmin + t*(rmax - rmin)/(npoint - 1)
Inherits from RTransform
Public Functions
-
LinearRTransform(double rmin, double rmax, int npoint)¶ Create an LinearRTransform object.
- Parameters
rmin: First radiusrmax: Last radiusnpoint: The number of points on the radial grid.
-
double
radius(double t)¶ Forward transformation.
-
double
deriv(double t)¶ (d r)/(d t)
-
double
deriv2(double t)¶ (d^2 r)/(d t^2)
-
double
deriv3(double t)¶ (d^3 r)/(d t^3)
-
double
inv(double r)¶ Reverse transformation.
-
double
get_rmin()¶ First radius.
-
double
get_rmax()¶ Last radius.
-
double
get_alpha()¶ Slope.
-
-
class
ExpRTransform¶ - #include <rtransform.h>
Exponential transformation. r(t) = rmin*exp(t*log(rmax/rmin)/(npoint - 1))
Inherits from RTransform
Public Functions
-
ExpRTransform(double rmin, double rmax, int npoint)¶ Create an ExpRTransform object.
- Parameters
rmin: First radiusrmax: Last radiusnpoint: The number of points on the radial grid.
-
double
radius(double t)¶ Forward transformation.
-
double
deriv(double t)¶ (d r)/(d t)
-
double
deriv2(double t)¶ (d^2 r)/(d t^2)
-
double
deriv3(double t)¶ (d^3 r)/(d t^3)
-
double
inv(double r)¶ Reverse transformation.
-
double
get_rmin()¶ First radius.
-
double
get_rmax()¶ Last radius.
-
double
get_alpha()¶ Exponent.
-
-
class
PowerRTransform¶ - #include <rtransform.h>
Power transformation. r(t) = rmin*t^power with power = log(rmax/rmin)/log(npoint)
Inherits from RTransform
Public Functions
-
PowerRTransform(double rmin, double rmax, int npoint)¶ Create a PowerRTransform object.
- Parameters
rmin: First radiusrmax: Last radiusnpoint: The number of points on the radial grid.
-
double
radius(double t)¶ Forward transformation.
-
double
deriv(double t)¶ (d r)/(d t)
-
double
deriv2(double t)¶ (d^2 r)/(d t^2)
-
double
deriv3(double t)¶ (d^3 r)/(d t^3)
-
double
inv(double r)¶ Reverse transformation.
-
double
get_rmin()¶ First radius.
-
double
get_rmax()¶ Last radius.
-
double
get_power()¶ The power of t.
-
-
class
HyperbolicRTransform¶ - #include <rtransform.h>
Hyperbolic transformation. r(t) = a*t/(1 - b*t)
Inherits from RTransform
Public Functions
-
HyperbolicRTransform(double a, double b, int npoint)¶ Create a HyperbolicRTransform object.
- Parameters
a: Prefactor in r(t).b: Parameter in denominator of r(t).npoint: The number of points on the radial grid.
-
double
radius(double t)¶ Forward transformation.
-
double
deriv(double t)¶ (d r)/(d t)
-
double
deriv2(double t)¶ (d^2 r)/(d t^2)
-
double
deriv3(double t)¶ (d^3 r)/(d t^3)
-
double
inv(double r)¶ Reverse transformation.
-
double
get_a()¶ Prefactor in r(t)
-
double
get_b()¶ Parameter in denominator of r(t)
-