ABSTRACT TYPE for \(\mathrm{DRS}\) \(\mathrm{ID}\) (produced with \(\texttt{LORENE}\), or with \(\texttt{FUKA}\), etc.; or produced with the same tool, but read in different ways, for example by linking to the \(\texttt{LORENE}\) library, or reading the \(\mathrm{ID}\) from a lattice, etc.)
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
double precision, | public | :: | adm_mass |
ADM mass of the \(\mathrm{DRS}\) |
|||
double precision, | public | :: | angular_momentum | = | 0.0D0 |
Angular momentum of the \(\mathrm{DRS}\) |
|
double precision, | public | :: | area_radius |
Areal (or circumferential) radius of \(\mathrm{DRS}\) [Msun_geo] Note that these is the areal radius of the star in the binary system, which is different than that of an isolated star. The latter is used in the mass-radius diagrams, together with the gravitatonal mass |
|||
double precision, | public, | DIMENSION(3) | :: | barycenter |
Array containing the barycenters of the stars Todoadd details |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | baryon_density |
1-D array storing the baryon mass density in the fluid frame [kg m^{-3}] |
||
double precision, | public, | DIMENSION(3) | :: | center |
Array containing the centers of the stars Todoadd details |
||
type(timer), | public | :: | construction_timer |
Timer that times the construction of the appropriate object |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | energy_density |
1-D array storing the energy density [kg c^2 m^{-3}] |
||
double precision, | public | :: | energy_density_center |
Central energy density |
|||
double precision, | public | :: | ent_center |
Central enthalpy |
|||
character(len=:), | public, | ALLOCATABLE | :: | eos |
Name of the equation of state (EoS) of star 1 |
||
character(len=max_length), | public, | DIMENSION(1) | :: | eos_filename |
Array of string containing the names of the files containing the \(\mathrm{EOS}\) to be used for each matter object. |
||
integer, | public | :: | eos_id |
\(\texttt{SPHINCS_ID}\) identifier for the \(\mathrm{EOS}\) of star 1 |
|||
character(len=:), | public, | ALLOCATABLE | :: | eos_table |
String containing the path to the files containing the table of the \(\mathrm{EOS}\) |
||
double precision, | public | :: | f_isco |
Orbital frequency of the Innermost Stable Circular Orbit (ISCO) |
|||
procedure, | public, | POINTER, NOPASS | :: | finalize_sph_id_ptr |
Pointer to a procedure that finalize the \(\mathrm{SPH}\) \(\mathrm{ID}\); for example, correct for the residual ADM linear momentum. |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_xx |
1-D array storing the xx component of the spatial metric [pure number] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_xy |
1-D array storing the xy component of the spatial metric [pure number] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_xz |
1-D array storing the xz component of the spatial metric [pure number] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_yy |
1-D array storing the yy component of the spatial metric [pure number] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_yz |
1-D array storing the yz component of the spatial metric [pure number] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | g_zz |
1-D array storing the zz component of the spatial metric [pure number] |
||
double precision, | public | :: | gamma |
Single polytrope: polytropic index |
|||
double precision, | public | :: | gamma0 |
Piecewise polytrope: polytropic index |
|||
double precision, | public | :: | gamma1 |
Piecewise polytrope: polytropic index |
|||
double precision, | public | :: | gamma2 |
Piecewise polytrope: polytropic index |
|||
double precision, | public | :: | gamma3 |
Piecewise polytrope: polytropic index |
|||
double precision, | public | :: | grv2 |
Error on the virial identity . See Section 3.5 in Gourgoulhon et al, Astron.Astrophys.349:851,1999. |
|||
double precision, | public | :: | grv3 |
Error on the virial identity . See Section 3.5 in Gourgoulhon et al, Astron.Astrophys.349:851,1999 . The error is computed as the integral defined by Eq. (43) of Gourgoulhon and Bonazzola, Class. Quantum Grav. 11, 443 (1994) divided by the integral of the matter terms. |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_xx |
1-D array storing the xx component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_xy |
1-D array storing the xy component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_xz |
1-D array storing the xz component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_yy |
1-D array storing the yy component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_yz |
1-D array storing the yz component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | k_zz |
1-D array storing the zz component of the extrinsic curvature [c/MSun_geo] |
||
double precision, | public | :: | kappa |
Single polytrope: polytropic constant [pure number] |
|||
double precision, | public | :: | kappa0 |
Piecewise polytrope: polytropic constant [pure number] |
|||
double precision, | public | :: | kappa1 |
Piecewise polytrope: polytropic constant [pure number] |
|||
double precision, | public | :: | kappa2 |
Piecewise polytrope: polytropic constant [pure number] |
|||
double precision, | public | :: | kappa3 |
Piecewise polytrope: polytropic constant [pure number] |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | lapse |
1-D array storing the lapse function |
||
double precision, | public | :: | logP1 |
Piecewise polytrope: Base 10 exponent of the pressure at the first fiducial density (between and ) |
|||
double precision, | public | :: | logRho0 |
Piecewise polytrope: Base 10 exponent of the first fiducial density (between and ) |
|||
double precision, | public | :: | logRho1 |
Piecewise polytrope: Base 10 exponent of the second fiducial density (between and ) |
|||
double precision, | public | :: | logRho2 |
Piecewise polytrope: Base 10 exponent of the third fiducial density (between and ) |
|||
double precision, | public | :: | mass |
Baryonic mass of \(\mathrm{DRS}\) |
|||
double precision, | public | :: | mass_grav |
Gravitational mass of \(\mathrm{DRS}\) |
|||
double precision, | public | :: | nbar_center |
Central baryon number density |
|||
integer, | public | :: | npeos |
Piecewise polytrope: Number of polytropic pieces |
|||
double precision, | public | :: | omega_c |
Central angular velocity |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | pressure |
1-D array storing the pressure |
||
double precision, | public | :: | pressure_center |
Central pressure |
|||
double precision, | public | :: | r_circ |
Circumferential radius |
|||
double precision, | public | :: | r_eq |
Equatorial radius at |
|||
double precision, | public | :: | r_eq_3pi2 |
Equatorial radius at |
|||
double precision, | public | :: | r_eq_pi |
Equatorial radius at |
|||
double precision, | public | :: | r_eq_pi2 |
Equatorial radius at |
|||
double precision, | public | :: | r_isco |
Radius of the Innermost Stable Circular Orbit (ISCO) |
|||
double precision, | public | :: | r_mean |
Mean radius |
|||
double precision, | public | :: | r_pole |
Polar radius |
|||
double precision, | public | :: | r_ratio | ||||
double precision, | public, | DIMENSION(6) | :: | radii | |||
double precision, | public | :: | redshift_eqb |
Backward redshift factor at equator |
|||
double precision, | public | :: | redshift_eqf |
Forward redshift factor at equator |
|||
double precision, | public | :: | redshift_pole |
Redshift factor at North pole |
|||
double precision, | public | :: | rho_center |
Central baryon mass density |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | shift_x |
1-D array storing the x component of the shift vector [c] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | shift_y |
1-D array storing the y component of the shift vector [c] |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | shift_z |
1-D array storing the z component of the shift vector [c] |
||
double precision, | public | :: | specific_angular_momentum_isco |
Specific angular momentum of a test particle at the Innermost Stable Circular Orbit (ISCO) |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | specific_energy |
1-D array storing the specific internal energy [c^2] |
||
double precision, | public | :: | specific_energy_center |
Central specific energy |
|||
double precision, | public | :: | specific_energy_isco |
Specific energy of a test particle at the Innermost Stable Circular Orbit (ISCO) |
|||
double precision, | public | :: | surface_area |
Surface area |
|||
type(surface), | public, | DIMENSION(:), ALLOCATABLE | :: | surfaces |
Array containing, for each matter object, a set of coordinates of some points modelling the surfaces. TodoTODO: make PRIVATE |
||
type(tabu_eos), | public, | DIMENSION(:), ALLOCATABLE | :: | tab_eos |
Array containing a tabulated \(\mathrm{EOS}\) for each matter object, when used. TodoTODO: make PRIVATE |
||
double precision, | public | :: | tsw |
Ratio between the rotational kinetic and gravitatial potential energy . See Section 6 in Gourgoulhon et al, Astron.Astrophys.349:851,1999 For axisymmetric configurations as those considered here, the threshold for dynamical bar-mode instability is [Masaru Shibata et al 2000 ApJ 542 453]. See also Manca et al., Classical and Quantum Gravity, 24, 171, Sec.3.3 in Galeazzi et al., Astron Astrophys 541:A156, and Sec.5.1.3 in Paschalidis, V., Stergioulas, N., Rotating stars in relativity. Living Rev Relativ 20, 7 (2017). |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | v_euler_x |
1-D array storing the x component of the fluid 3-velocity with respect to |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | v_euler_y |
1-D array storing the y component of the fluid 3-velocity with respect to |
||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | v_euler_z |
1-D array storing the z component of the fluid 3-velocity with respect to |
Checks that the given index is between 1 and n_matter, included. If not, it stops the execution of the program.
Checks that the given index i_matter
is between 1 and
n_matter, included. If not, it stops the execution of the
program.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this | |||
integer, | intent(in) | :: | i_matter |
Value to be checked |
Constructs a TYPE that extends idbase
Construct the DERIVED TYPE that extends idbase
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(out) | :: | derived_type |
Object of DERIVED TYPE that extends [[idbase], to be constructed |
||
character(len=*), | intent(in), | optional | :: | filename |
Name of the file containing the \(\mathrm{ID}\) |
|
character(len=*), | intent(in), | optional, | DIMENSION(:) | :: | eos_filenames |
Array of strings containing the names of the files containing the \(\mathrm{EOS}\)
to be used for each matter object. If not PRESENT, information from
the file |
Estimate typical length scales, one per each matter object, by computing , where is a field given as input, and represent a derivative of it. Presently, the derivatives are computed separately along each spatial dimension, as 1D derivatives.
Estimate typical length scales, one per each matter object, by computing , where is a field given as input, and represent a derivative of it. Presently, the derivatives are computed separately along each spatial dimension, as 1D derivatives.
Type | Intent | Optional | Attributes | Name | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this | |||||||||||||||||||||||||||||||
function get_field(x, y, z) result(val)Returns the value of a field at the desired point Arguments
Return Value double precisionValue of the field at |
||||||||||||||||||||||||||||||||||
integer, | intent(in) | :: | n_mat |
Array of the minimum over the lattices that surround each matter object
Returns angular_momentum
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns area_radius
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns cold_system, the LOGICAL
variable that specifies if
the system is cold (no thermal component)
Returns cold_system, the LOGICAL
variable at specifies if
the system is cold (no thermal component)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Returns energy_density_center
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns ent_center
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns an integer that identifies the equation of state
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns estimate_length_scale, the LOGICAL
variable that
specifies if a typical length scale, equal to the ratio of a field over
its gradient, should be computed
Returns estimate_length_scale, the LOGICAL
variable
that specifies if a typical length scale, equal to the ratio
of a field over its gradient, should be computed
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Returns f_isco
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns gamma
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns gamma0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns gamma1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns gamma2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns gamma3
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns grv2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns grv3
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns kappa
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns kappa0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns kappa1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns kappa2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns kappa3
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns logP1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns logRho0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns logRho1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns logRho2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns mass_grav
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns n_matter, the number of matter objects in the physical system
Returns nbar_center
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns npeos
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns omega_c
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns one_lapse, the LOGICAL
variable that determines if
the lapse function , i.e., if the geodesic gauge is to be used
Returns pressure_center
Returns eos
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_circ
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_eq
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_eq_3pi2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_eq_pi
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_eq_pi2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_isco
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_mean
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_pole
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns r_ratio
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns rho_center
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns specific_angular_momentum_isco
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns specific_energy_center
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns specific_energy_isco
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns surface_area
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns the spatial extent of the physical system considered, as the array of 6 numbers
INTERFACE to the SUBROUTINE that detects the spatial extent of the physical system considered, and returns a 6-dimensional array containing the coordinates of a box centered at the center of the object and containing the system.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
6-dimensional array containing the coordinates of a box containing the physical system.
Returns tsw
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Returns zero_shift, the LOGICAL
variable that determines if
the shift
This PROCEDURE calls the constructor of the idbase-extended type and the SUBROUTINE sanity_check afterwards. It is recommended to use this SUBROUTINE to construct objects of idbase-extended type since the sanity check is performed automatically.
Initialize the DERIVED TYPE that extends idbase
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(out) | :: | derived_type |
Object of DERIVED TYPE that extends [[idbase], to be constructed |
||
character(len=*), | intent(in), | optional | :: | filename |
Name of the file containing the \(\mathrm{ID}\) |
|
character(len=*), | intent(in), | optional, | DIMENSION(:) | :: | eos_filenames |
Array of strings containing the names of the files containing the \(\mathrm{EOS}\)
to be used for each matter object. If not PRESENT, information from
the file |
Initialize the \(\mathrm{ID}\); for example, set up the lattices around the stars for the \(\mathrm{BNS}\) produced with \(\texttt{FUKA}\).
Initialize the \(\mathrm{ID}\); for example, set up the lattices around the stars for the \(\mathrm{BNS}\) produced with \(\texttt{FUKA}\).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | flag |
Identifies what kind of initialization has to be done |
||
logical, | intent(in), | optional | :: | switch |
If |
Integrates the baryon mass density over a matter object, using spherical coordinates, and computes its radial profile inside the star
INTERFACE to the SUBROUTINE integrating the baryon mass density to compute the radial mass profile of a single star.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
||
double precision, | intent(in), | DIMENSION(3) | :: | center |
Center of the star |
|
double precision, | intent(in) | :: | radius |
Central density of the star |
||
double precision, | intent(in) | :: | central_density |
Integration steps |
||
double precision, | intent(in) | :: | dr |
Radius of the star |
||
double precision, | intent(in) | :: | dth |
Radius of the star |
||
double precision, | intent(in) | :: | dphi |
Radius of the star |
||
double precision, | intent(inout) | :: | mass |
Integrated mass of the star |
||
double precision, | intent(out), | DIMENSION(3,0:NINT(radius/dr)) | :: | mass_profile |
Array storing the radial mass profile of the star |
|
integer, | intent(out), | DIMENSION(0:NINT(radius/dr)) | :: | mass_profile_idx |
Array to store the indices for array mass_profile, sorted so that
|
|
double precision, | intent(in), | optional, | DIMENSION(2) | :: | radii | |
type(surface), | intent(in), | optional | :: | surf |
Surface of the matter object |
Prints a summary of the physical properties the system
to the standard output and, optionally, to a formatted file whose name
is given as the optional argument filename
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this | |||
character(len=*), | intent(inout), | optional | :: | filename |
Name of the formatted file to print the summary to |
Reads the full \(\mathrm{ID}\)
INTERFACE or the SUBROUTINE reading the full \(\mathrm{ID}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
idbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | n | |||
double precision, | intent(in), | DIMENSION(:) | :: | x | ||
double precision, | intent(in), | DIMENSION(:) | :: | y | ||
double precision, | intent(in), | DIMENSION(:) | :: | z | ||
double precision, | intent(inout), | DIMENSION(:) | :: | lapse | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_x | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_y | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_z | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xx | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_yy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_yz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_zz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xx | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_yy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_yz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_zz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | baryon_density | ||
double precision, | intent(inout), | DIMENSION(:) | :: | energy_density | ||
double precision, | intent(inout), | DIMENSION(:) | :: | specific_energy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | pressure | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_x | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_y | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_z |
Reads the hydro \(\mathrm{ID}\) needed to compute the constraints on the refined mesh
INTERFACE or the SUBROUTINE reading the the hydro \(\mathrm{ID}\) needed to compute the constraints on the refined mesh
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
idbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nz | |||
double precision, | intent(in), | DIMENSION(:,:,:,:) | :: | pos | ||
double precision, | intent(inout), | DIMENSION(:,:,:) | :: | baryon_density | ||
double precision, | intent(inout), | DIMENSION(:,:,:) | :: | energy_density | ||
double precision, | intent(inout), | DIMENSION(:,:,:) | :: | specific_energy | ||
double precision, | intent(inout), | DIMENSION(:,:,:) | :: | pressure | ||
double precision, | intent(inout), | DIMENSION(:,:,:,:) | :: | u_euler |
Reads the components of the extrinsic curvature
INTERFACE or the SUBROUTINE reading the components of the extrinsic curvature
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
idbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | n | |||
double precision, | intent(in), | DIMENSION(:) | :: | x | ||
double precision, | intent(in), | DIMENSION(:) | :: | y | ||
double precision, | intent(in), | DIMENSION(:) | :: | z | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xx | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_xz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_yy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_yz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | k_zz |
Reads the hydro \(\mathrm{ID}\) needed to compute the baryon mass
INTERFACE or the SUBROUTINE reading the hydro \(\mathrm{ID}\) needed to compute the baryon mass
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
||
double precision, | intent(in) | :: | x | |||
double precision, | intent(in) | :: | y | |||
double precision, | intent(in) | :: | z | |||
double precision, | intent(out), | DIMENSION(6) | :: | g | ||
double precision, | intent(out) | :: | baryon_density | |||
double precision, | intent(out) | :: | gamma_euler |
Reads the hydro \(\mathrm{ID}\) needed to compute the SPH \(\mathrm{ID}\)
INTERFACE or the SUBROUTINE reading the hydro \(\mathrm{ID}\) needed to compute the SPH \(\mathrm{ID}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
idbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | n | |||
double precision, | intent(in), | DIMENSION(:) | :: | x | ||
double precision, | intent(in), | DIMENSION(:) | :: | y | ||
double precision, | intent(in), | DIMENSION(:) | :: | z | ||
double precision, | intent(inout), | DIMENSION(:) | :: | lapse | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_x | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_y | ||
double precision, | intent(inout), | DIMENSION(:) | :: | shift_z | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xx | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_xz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_yy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_yz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | g_zz | ||
double precision, | intent(inout), | DIMENSION(:) | :: | baryon_density | ||
double precision, | intent(inout), | DIMENSION(:) | :: | energy_density | ||
double precision, | intent(inout), | DIMENSION(:) | :: | specific_energy | ||
double precision, | intent(inout), | DIMENSION(:) | :: | pressure | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_x | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_y | ||
double precision, | intent(inout), | DIMENSION(:) | :: | u_euler_z |
Reads the spacetime \(\mathrm{ID}\) needed to compute the BSSN variables and constraints
INTERFACE or the SUBROUTINE reading the spacetime \(\mathrm{ID}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this |
idbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nz | |||
double precision, | intent(in), | DIMENSION(:,:,:,:) | :: | pos | ||
double precision, | intent(inout), | DIMENSION(:,:,:) | :: | lapse | ||
double precision, | intent(inout), | DIMENSION(:,:,:,:) | :: | shift | ||
double precision, | intent(inout), | DIMENSION(:,:,:,:) | :: | g | ||
double precision, | intent(inout), | DIMENSION(:,:,:,:) | :: | ek |
Returns the baryon mass density from the \(\mathrm{ID}\) at the given point
INTERFACE for a PROCEDURE that returns a DOUBLE PRECISION at a given position
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
||
double precision, | intent(in), | VALUE | :: | x |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | y |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | z |
coordinate of the desired point |
Real number at
Returns the pressure from te \(\mathrm{ID}\) at the given point
INTERFACE for a PROCEDURE that returns a DOUBLE PRECISION at a given position
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
||
double precision, | intent(in), | VALUE | :: | x |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | y |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | z |
coordinate of the desired point |
Real number at
Returns 0 (the ADM mass is not necessarily known for this TYPE)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose parameter is to return |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose parameter is to return |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose string is to return |
Returns the identification number of the \(\mathrm{EOS}\) of the matter objects.
Set up a convention for the identification number
INTERFACE for a PROCEDURE that returns an array containing the parametersf the \(\mathrm{EOS}\) for the matter objects
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this | |||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose parameter is to return |
||
double precision, | intent(out), | DIMENSION(:), ALLOCATABLE | :: | eos_params |
Array containing the parameters of the \(\mathrm{EOS}\) for the |
Returns mass
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | i_matter |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(diffstarbase), | intent(in) | :: | this |
diffstarbase object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose string is to return |
Checks that n_matter and the sizes returned by return_spatial_extent and get_total_spatial_extent are acceptable. It is called by initialize, after the constructor of the derived type.
Sets cold_system, the LOGICAL
variable that specifies if
the system is cold (no thermal component)
Sets cold_system, the LOGICAL
variable at specifies if
the system is cold (no thermal component)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this | |||
logical, | intent(in) | :: | value |
Value to set cold_system to |
Sets estimate_length_scale, the LOGICAL
variable that
specifies if a typical length scale, equal to the ratio of a field over
its gradient, should be computed
Sets estimate_length_scale, the LOGICAL
variable
that specifies if a typical length scale, equal to the ratio
of a field over its gradient, should be computed
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(inout) | :: | this | |||
logical, | intent(in) | :: | value |
Value to set cold_system to |
Sets n_matter, the number of matter objects in the physical system, to a value
Sets one_lapse, the LOGICAL
variable that determines if
the lapse , i.e., if the geodesic gauge is to be used
Sets zero_shift, the LOGICAL
variable that determines if
the shift
Returns .TRUE.
if the position has physically acceptable properties,
.FALSE.
otherwise
INTERFACE for a PROCEDURE that returns a LOGICAL at a given position
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(idbase), | intent(in) | :: | this |
Object of class idbase which this PROCEDURE is a member of |
||
double precision, | intent(in), | VALUE | :: | x |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | y |
coordinate of the desired point |
|
double precision, | intent(in), | VALUE | :: | z |
coordinate of the desired point |
Logical at
TYPE, ABSTRACT, EXTENDS(idbase):: diffstarbase
!# ABSTRACT TYPE for |drs| |id| (produced with |lorene|, or with
! |fuka|, etc.; or produced with the same tool, but read in different ways,
! for example by linking to the |lorene| library, or reading the |id| from
! a lattice, etc.)
!-------------------------------!
!-- Parameters of the |drs| --!
!-------------------------------!
DOUBLE PRECISION:: omega_c
!! Central angular velocity \([{\rm rad/s}]\)
DOUBLE PRECISION:: mass
!! Baryonic mass of |drs| \([M_\odot]\)
DOUBLE PRECISION:: adm_mass
!! ADM mass of the |drs| \([M_\odot]\)
DOUBLE PRECISION:: mass_grav
!! Gravitational mass of |drs| \([M_\odot]\)
DOUBLE PRECISION:: angular_momentum= 0.0D0
!! Angular momentum of the |drs| \([G M_\odot^2/c]\)
DOUBLE PRECISION:: tsw
!# Ratio between the rotational kinetic and gravitatial potential energy
! \(T/|W|\).
!
! See Section 6 in
! [Gourgoulhon et al, Astron.Astrophys.349:851,1999](https://arxiv.org/abs/astro-ph/9907225v1){:target="_blank"}
!
! For axisymmetric configurations as those considered here, the
! threshold for dynamical bar-mode instability is \(T/|W|\sim 0.25\)
! [[Masaru Shibata et al 2000 ApJ 542 453](https://arxiv.org/pdf/astro-ph/0005378.pdf){:target="_blank"}].
! See also [Manca et al., Classical and Quantum Gravity, 24, 171](https://arxiv.org/abs/0705.1826){:target="_blank"}, Sec.3.3 in [Galeazzi et al., Astron Astrophys 541:A156](https://arxiv.org/abs/1101.2664){:target="_blank"}, and Sec.5.1.3 in [Paschalidis, V., Stergioulas, N., _Rotating stars in relativity_. Living Rev Relativ 20, 7 (2017)](https://link.springer.com/article/10.1007%2Fs41114-017-0008-x){:target="_blank"}.
DOUBLE PRECISION:: grv2
!# Error on the virial identity \({\rm GRV2}\).
!
! See Section 3.5 in
! [Gourgoulhon et al, Astron.Astrophys.349:851,1999](https://arxiv.org/abs/astro-ph/9907225v1){:target="_blank"}.
DOUBLE PRECISION:: grv3
!# Error on the virial identity \({\rm GRV3}\).
!
! See Section 3.5 in
! [Gourgoulhon et al, Astron.Astrophys.349:851,1999](https://arxiv.org/abs/astro-ph/9907225v1){:target="_blank"} .
!
! The error is computed as the integral defined
! by Eq. (43) of [Gourgoulhon and Bonazzola, Class. Quantum Grav. 11, 443 (1994)](https://iopscience.iop.org/article/10.1088/0264-9381/11/2/015?pageTitle=IOPscience){:target="_blank"}
! divided by the integral of the matter terms.
DOUBLE PRECISION, DIMENSION(3):: center
!# Array containing the centers of the stars
! @todo add details
DOUBLE PRECISION, DIMENSION(3):: barycenter
!# Array containing the barycenters of the stars
! @todo add details
DOUBLE PRECISION, DIMENSION(6):: radii
DOUBLE PRECISION:: r_circ
!# Circumferential radius
DOUBLE PRECISION:: r_mean
!# Mean radius
DOUBLE PRECISION:: r_eq
!# Equatorial radius at \(\phi=0\)
DOUBLE PRECISION:: r_eq_pi2
!# Equatorial radius at \(\phi=\dfrac{\pi}{2}\)
DOUBLE PRECISION:: r_eq_pi
!# Equatorial radius at \(\phi=\pi\)
DOUBLE PRECISION:: r_eq_3pi2
!# Equatorial radius at \(\phi=\dfrac{3\pi}{2}\)
DOUBLE PRECISION:: r_pole
!# Polar radius
DOUBLE PRECISION:: r_ratio
!# Ratio [[diffstarbase:r_pole]]/[[diffstarbase:r_eq]]
DOUBLE PRECISION:: r_isco
!# Radius of the Innermost Stable Circular Orbit (ISCO)
DOUBLE PRECISION:: f_isco
!# Orbital frequency of the Innermost Stable Circular Orbit (ISCO)
DOUBLE PRECISION:: specific_energy_isco
!# Specific energy of a test particle at the Innermost Stable Circular
! Orbit (ISCO)
DOUBLE PRECISION:: specific_angular_momentum_isco
!# Specific angular momentum of a test particle at the Innermost Stable
! Circular Orbit (ISCO)
DOUBLE PRECISION:: surface_area
!# Surface area
DOUBLE PRECISION:: area_radius
!# Areal (or circumferential) radius of |drs| [Msun_geo]
! Note that these is the areal radius of the star in the binary system,
! which is different than that of an isolated star. The latter is used
! in the mass-radius diagrams, together with the gravitatonal mass
DOUBLE PRECISION:: ent_center
!! Central enthalpy \([c^2]\)
DOUBLE PRECISION:: nbar_center
!! Central baryon number density \([L_\odot^{-3}]\)
DOUBLE PRECISION:: rho_center
!! Central baryon mass density \([M_\odot L_\odot^{-3}]\)
DOUBLE PRECISION:: energy_density_center
!! Central energy density \([M_\odot c^2 L_\odot^{-3}]\)
DOUBLE PRECISION:: specific_energy_center
!! Central specific energy \([c^2]\)
DOUBLE PRECISION:: pressure_center
!! Central pressure \([M_\odot c^2 L_\odot^{-3}]\)
DOUBLE PRECISION:: redshift_eqf
!! Forward redshift factor at equator
DOUBLE PRECISION:: redshift_eqb
!! Backward redshift factor at equator
DOUBLE PRECISION:: redshift_pole
!! Redshift factor at North pole
CHARACTER(LEN=:), ALLOCATABLE:: eos
!! Name of the equation of state (EoS) of star 1
INTEGER:: eos_id
!! |sphincsid| identifier for the |eos| of star 1
!
!-- Parameters of single polytropic equations of state for the two NSs
!
DOUBLE PRECISION:: gamma
!! Single polytrope: polytropic index
DOUBLE PRECISION:: kappa
!! Single polytrope: polytropic constant [pure number]
!
!-- Parameters of the piecewise polytropic equation of state for NS 1
!
INTEGER:: npeos
!! Piecewise polytrope: Number of polytropic pieces
DOUBLE PRECISION:: gamma0
!! Piecewise polytrope: polytropic index \(\gamma_0\)
DOUBLE PRECISION:: gamma1
!! Piecewise polytrope: polytropic index \(\gamma_1\)
DOUBLE PRECISION:: gamma2
!! Piecewise polytrope: polytropic index \(\gamma_2\)
DOUBLE PRECISION:: gamma3
!! Piecewise polytrope: polytropic index \(\gamma_3\)
DOUBLE PRECISION:: kappa0
!# Piecewise polytrope: polytropic constant \(\kappa_0\)
! [pure number]
DOUBLE PRECISION:: kappa1
!# Piecewise polytrope: polytropic constant \(\kappa_1\)
! [pure number]
DOUBLE PRECISION:: kappa2
!# Piecewise polytrope: polytropic constant \(\kappa_2\)
! [pure number]
DOUBLE PRECISION:: kappa3
!# Piecewise polytrope: polytropic constant \(\kappa_3\)
! [pure number]
DOUBLE PRECISION:: logP1
!# Piecewise polytrope: Base 10 exponent of the pressure at the first
! fiducial density (between \(\gamma_0\) and \(\gamma_1\))
! \([{\rm dyne/cm^2}]\)
DOUBLE PRECISION:: logRho0
!# Piecewise polytrope: Base 10 exponent of the first fiducial density
! (between \(\gamma_0\) and \(\gamma_1\)) \([{\rm g/cm^3}]\)
DOUBLE PRECISION:: logRho1
!# Piecewise polytrope: Base 10 exponent of the second fiducial density
! (between \(\gamma_1\) and \(\gamma_2\)) \([{\rm g/cm^3}]\)
DOUBLE PRECISION:: logRho2
!# Piecewise polytrope: Base 10 exponent of the third fiducial density
! (between \(\gamma_2\) and \(\gamma_3\)) \([{\rm g/cm^3}]\)
CHARACTER(LEN=max_length), DIMENSION(1):: eos_filename
!# Array of string containing the names of the files containing the |eos|
! to be used for each matter object.
CHARACTER(LEN=:), ALLOCATABLE:: eos_table
!# String containing the path to the files containing the table of the |eos|
!
!-- Spacetime fields
!
!> 1-D array storing the lapse function
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: lapse
!> 1-D array storing the x component of the shift vector [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: shift_x
!> 1-D array storing the y component of the shift vector [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: shift_y
!> 1-D array storing the z component of the shift vector [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: shift_z
!> 1-D array storing the xx component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_xx
!> 1-D array storing the xy component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_xy
!> 1-D array storing the xz component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_xz
!> 1-D array storing the yy component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_yy
!> 1-D array storing the yz component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_yz
!> 1-D array storing the zz component of the spatial metric [pure number]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: g_zz
!& 1-D array storing the xx component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_xx
!& 1-D array storing the xy component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_xy
!& 1-D array storing the xz component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_xz
!& 1-D array storing the yy component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_yy
!& 1-D array storing the yz component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_yz
!& 1-D array storing the zz component of the extrinsic curvature
! [c/MSun_geo]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: k_zz
!
!-- Hydro fields
!
!> 1-D array storing the baryon mass density in the fluid frame [kg m^{-3}]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: baryon_density
!> 1-D array storing the energy density [kg c^2 m^{-3}]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: energy_density
!> 1-D array storing the specific internal energy [c^2]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: specific_energy
!> 1-D array storing the pressure
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: pressure
!> 1-D array storing the x component of the fluid 3-velocity with respect to
! the Eulerian observer [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: v_euler_x
!> 1-D array storing the y component of the fluid 3-velocity with respect to
! the Eulerian observer [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: v_euler_y
!> 1-D array storing the z component of the fluid 3-velocity with respect to
! the Eulerian observer [c]
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: v_euler_z
CONTAINS
!-------------------!
!-- SUBROUTINES --!
!-------------------!
PROCEDURE(get_eos_id_int), DEFERRED:: get_eos_id
!! Returns an integer that identifies the equation of state
!-----------------!
!-- FUNCTIONS --!
!-----------------!
!
!-- FUNCTIONS that access PRIVATE member variables
!
PROCEDURE:: return_mass => get_mass
PROCEDURE:: return_adm_mass => get_adm_mass
PROCEDURE:: return_center => get_center
PROCEDURE:: return_barycenter => get_barycenter
PROCEDURE:: return_eos_name => get_eos
PROCEDURE:: return_spatial_extent => get_radii
PROCEDURE:: print_summary => print_summary_drs
PROCEDURE, PUBLIC:: get_omega_c
!! Returns [[diffstarbase:omega_c]]
!PROCEDURE, PUBLIC:: get_mass
!! Returns [[diffstarbase:mass]]
PROCEDURE, PUBLIC:: get_mass_grav
!! Returns [[diffstarbase:mass_grav]]
PROCEDURE, PUBLIC:: get_angular_momentum
!! Returns [[diffstarbase:angular_momentum]]
PROCEDURE, PUBLIC:: get_tsw
!! Returns [[diffstarbase:tsw]]
PROCEDURE, PUBLIC:: get_grv2
!! Returns [[diffstarbase:grv2]]
PROCEDURE, PUBLIC:: get_grv3
!! Returns [[diffstarbase:grv3]]
PROCEDURE, PUBLIC:: get_r_circ
!! Returns [[diffstarbase:r_circ]]
PROCEDURE, PUBLIC:: get_r_mean
!! Returns [[diffstarbase:r_mean]]
PROCEDURE, PUBLIC:: get_r_eq
!! Returns [[diffstarbase:r_eq]]
PROCEDURE, PUBLIC:: get_r_eq_pi2
!! Returns [[diffstarbase:r_eq_pi2]]
PROCEDURE, PUBLIC:: get_r_eq_pi
!! Returns [[diffstarbase:r_eq_pi]]
PROCEDURE, PUBLIC:: get_r_eq_3pi2
!! Returns [[diffstarbase:r_eq_3pi2]]
PROCEDURE, PUBLIC:: get_r_pole
!! Returns [[diffstarbase:r_pole]]
PROCEDURE, PUBLIC:: get_r_ratio
!! Returns [[diffstarbase:r_ratio]]
PROCEDURE, PUBLIC:: get_r_isco
!! Returns [[diffstarbase:r_isco]]
PROCEDURE, PUBLIC:: get_f_isco
!! Returns [[diffstarbase:f_isco]]
PROCEDURE, PUBLIC:: get_specific_energy_isco
!! Returns [[diffstarbase:specific_energy_isco]]
PROCEDURE, PUBLIC:: get_specific_angular_momentum_isco
!! Returns [[diffstarbase:specific_angular_momentum_isco]]
PROCEDURE, PUBLIC:: get_surface_area
!! Returns [[diffstarbase:surface_area]]
PROCEDURE, PUBLIC:: get_area_radius
!! Returns [[diffstarbase:area_radius]]
PROCEDURE, PUBLIC:: get_ent_center
!! Returns [[diffstarbase:ent_center]]
PROCEDURE, PUBLIC:: get_nbar_center
!! Returns [[diffstarbase:nbar_center]]
PROCEDURE, PUBLIC:: get_rho_center
!! Returns [[diffstarbase:rho_center]]
PROCEDURE, PUBLIC:: get_energy_density_center
!! Returns [[diffstarbase:energy_density_center]]
PROCEDURE, PUBLIC:: get_specific_energy_center
!! Returns [[diffstarbase:specific_energy_center]]
PROCEDURE, PUBLIC:: get_pressure_center
!! Returns [[diffstarbase:pressure_center]]
!PROCEDURE, PUBLIC:: get_eos
!! Returns [[diffstarbase:eos]]
!
!-- PROCEDURES to be used for single polytropic EOS
!
PROCEDURE, PUBLIC:: get_gamma
!! Returns [[diffstarbase:gamma]]
PROCEDURE, PUBLIC:: get_kappa
!! Returns [[diffstarbase:kappa]]
!
!-- PROCEDURES to be used for piecewise polytropic EOS
!
PROCEDURE, PUBLIC:: get_npeos
!! Returns [[diffstarbase:npeos]]
PROCEDURE, PUBLIC:: get_gamma0
!! Returns [[diffstarbase:gamma0]]
PROCEDURE, PUBLIC:: get_gamma1
!! Returns [[diffstarbase:gamma1]]
PROCEDURE, PUBLIC:: get_gamma2
!! Returns [[diffstarbase:gamma2]]
PROCEDURE, PUBLIC:: get_gamma3
!! Returns [[diffstarbase:gamma3]]
PROCEDURE, PUBLIC:: get_kappa0
!! Returns [[diffstarbase:kappa0]]
PROCEDURE, PUBLIC:: get_kappa1
!! Returns [[diffstarbase:kappa1]]
PROCEDURE, PUBLIC:: get_kappa2
!! Returns [[diffstarbase:kappa2]]
PROCEDURE, PUBLIC:: get_kappa3
!! Returns [[diffstarbase:kappa3]]
PROCEDURE, PUBLIC:: get_logP1
!! Returns [[diffstarbase:logP1]]
PROCEDURE, PUBLIC:: get_logRho0
!! Returns [[diffstarbase:logRho0]]
PROCEDURE, PUBLIC:: get_logRho1
!! Returns [[diffstarbase:logRho1]]
PROCEDURE, PUBLIC:: get_logRho2
!! Returns [[diffstarbase:logRho2]]
END TYPE diffstarbase