TYPE representing a binary system of neutron stars (\(\mathrm{BNS}\)) produced with \(\texttt{LORENE}\)
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
double precision, | public | :: | adm_mass |
ADM mass of the system |
|||
double precision, | public | :: | angular_momentum_x | = | 0.0D0 |
component of the angular momentum of the BNS system |
|
double precision, | public | :: | angular_momentum_y | = | 0.0D0 |
component of the angular momentum of the BNS system |
|
double precision, | public | :: | angular_momentum_z | = | 0.0D0 |
component of the angular momentum of the BNS system |
|
double precision, | public | :: | angular_vel |
Angular velocity |
|||
double precision, | public | :: | area_radius1 |
Areal (or circumferential) radius of star 1 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 | :: | area_radius2 |
Areal (or circumferential) radius of star 2 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(2,3) | :: | barycenter |
Array containing the barycenters of the stars Todoadd details |
||
double precision, | public | :: | barycenter1_x |
Barycenter of star 1 |
|||
double precision, | public | :: | barycenter2_x |
Barycenter of star 2 |
|||
double precision, | public, | DIMENSION(3) | :: | barycenter_system |
Array containing the barycenters of the stars Todoadd details |
||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | baryon_density |
1-D array storing the baryon mass density in the fluid frame [kg m^{-3}] |
||
integer, | private | :: | bns_identifier | = | 0 |
Identifier of the bnslorene object |
|
type(C_PTR), | private | :: | bns_ptr |
C pointer to the \(\texttt{LORENE}\)'s \(\texttt{Bin_NS}\) object N.B. This variable is global. The pointer to the second \(\texttt{LORENE}\) \(\texttt{Bin_NS}\) object will overwrite the first one, and so on. This variable stores the pointer to the last defined \(\texttt{LORENE}\) \(\texttt{Bin_NS}\) object. That's why it is not freed in the destructor of a bns object. Presently, it has to be freed by the user at the end of the PROGRAM. See the last part of the PROGRAM in setup_lorene_id.f90, for example. |
|||
double precision, | public, | DIMENSION(2,3) | :: | center |
Array containing the centers of the stars Todoadd details |
||
double precision, | public | :: | center1_x |
Stellar center of star 1 (origin of the LORENE chart centered on star 1) |
|||
double precision, | public | :: | center2_x |
Stellar center of star 2 (origin of the LORENE chart centered on star 2) |
|||
type(timer), | public | :: | construction_timer |
Timer that times the construction of the appropriate object |
|||
double precision, | public | :: | distance |
Distance between the points of maximum baryon density |
|||
double precision, | public | :: | distance_com |
Distance between the centers of mass |
|||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | energy_density |
1-D array storing the energy density [kg c^2 m^{-3}] |
||
double precision, | public | :: | energy_density_center1 |
Central energy density for star 1 |
|||
double precision, | public | :: | energy_density_center2 |
Central energy density for star 2 |
|||
double precision, | public | :: | ent_center1 |
Central enthalpy for star 1 |
|||
double precision, | public | :: | ent_center2 |
Central enthalpy for star 2 |
|||
character(len=:), | public, | ALLOCATABLE | :: | eos1 |
Name of the equation of state (\(\mathrm{EOS}\)) of star 1 |
||
integer, | public | :: | eos1_id |
\(\texttt{SPHINCS_ID}\) identifier for the \(\mathrm{EOS}\) of star 1 |
|||
integer, | private | :: | eos1_loreneid |
\(\texttt{LORENE}\) identifier for the \(\mathrm{EOS}\) of star 1 |
|||
character(len=:), | public, | ALLOCATABLE | :: | eos2 |
Name of the equation of state (\(\mathrm{EOS}\)) of star 2 |
||
integer, | public | :: | eos2_id |
\(\texttt{SPHINCS_ID}\) identifier for the \(\mathrm{EOS}\) of star 2 |
|||
integer, | private | :: | eos2_loreneid |
\(\texttt{LORENE}\) identifier for the \(\mathrm{EOS}\) of star 2 |
|||
character(len=max_length), | public, | DIMENSION(2) | :: | eos_filenames |
Array of strings containing the names of the files containing the \(\mathrm{EOS}\) to be used for each matter object. |
||
character(len=:), | public, | ALLOCATABLE | :: | eos_table1 |
String containing the path to the files containing the table of the \(\mathrm{EOS}\) for star 1. |
||
character(len=:), | public, | ALLOCATABLE | :: | eos_table2 |
String containing the path to the files containing the table of the \(\mathrm{EOS}\) for star 2. |
||
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 | :: | gamma0_1 |
Piecewise polytrope: polytropic index for star 1 |
|||
double precision, | public | :: | gamma0_2 |
Piecewise polytrope: polytropic index for star 2 |
|||
double precision, | public | :: | gamma1_1 |
Piecewise polytrope: polytropic index for star 1 |
|||
double precision, | public | :: | gamma1_2 |
Piecewise polytrope: polytropic index for star 2 |
|||
double precision, | public | :: | gamma2_1 |
Piecewise polytrope: polytropic index for star 1 |
|||
double precision, | public | :: | gamma2_2 |
Piecewise polytrope: polytropic index for star 2 |
|||
double precision, | public | :: | gamma3_1 |
Piecewise polytrope: polytropic index for star 1 |
|||
double precision, | public | :: | gamma3_2 |
Piecewise polytrope: polytropic index for star 2 |
|||
double precision, | public | :: | gamma_1 |
Single polytrope: polytropic index for star 1 |
|||
double precision, | public | :: | gamma_2 |
Single polytrope: polytropic index for star 2 |
|||
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 | :: | kappa0_1 |
Piecewise polytrope: polytropic constant for star 1 [pure number] |
|||
double precision, | public | :: | kappa0_2 |
Piecewise polytrope: polytropic constant for star 2 [pure number] |
|||
double precision, | public | :: | kappa1_1 |
Piecewise polytrope: polytropic constant for star 1 [pure number] |
|||
double precision, | public | :: | kappa1_2 |
Piecewise polytrope: polytropic constant for star 2 [pure number] |
|||
double precision, | public | :: | kappa2_1 |
Piecewise polytrope: polytropic constant for star 1 [pure number] |
|||
double precision, | public | :: | kappa2_2 |
Piecewise polytrope: polytropic constant for star 2 [pure number] |
|||
double precision, | public | :: | kappa3_1 |
Piecewise polytrope: polytropic constant for star 1 [pure number] |
|||
double precision, | public | :: | kappa3_2 |
Piecewise polytrope: polytropic constant for star 2 [pure number] |
|||
double precision, | public | :: | kappa_1 |
Single polytrope: polytropic constant for star 1 [pure number] |
|||
double precision, | public | :: | kappa_2 |
Single polytrope: polytropic constant for star 2 [pure number] |
|||
double precision, | public, | DIMENSION(:), ALLOCATABLE | :: | lapse |
1-D array storing the lapse function |
||
double precision, | public | :: | linear_momentum_x | = | 0.0D0 |
component of the ADM linear momentum of the system |
|
double precision, | public | :: | linear_momentum_y | = | 0.0D0 |
component of the ADM linear momentum of the system |
|
double precision, | public | :: | linear_momentum_z | = | 0.0D0 |
component of the ADM linear momentum of the system |
|
double precision, | public | :: | logP1_1 |
Piecewise polytrope: Base 10 exponent of the pressure at the first fiducial density (between and ) for star 1 |
|||
double precision, | public | :: | logP1_2 |
Piecewise polytrope: Base 10 exponent of the pressure at the first fiducial density (between and ) for star 2 |
|||
double precision, | public | :: | logRho0_1 |
Piecewise polytrope: Base 10 exponent of the first fiducial density (between and ) for star 1 |
|||
double precision, | public | :: | logRho0_2 |
Piecewise polytrope: Base 10 exponent of the second fiducial density (between and ) for star 2 |
|||
double precision, | public | :: | logRho1_1 |
Piecewise polytrope: Base 10 exponent of the second fiducial density (between and ) for star 1 |
|||
double precision, | public | :: | logRho1_2 |
Piecewise polytrope: Base 10 exponent of the second fiducial density (between and ) for star 2 |
|||
double precision, | public | :: | logRho2_1 |
Piecewise polytrope: Base 10 exponent of the third fiducial density (between and ) for star 1 |
|||
double precision, | public | :: | logRho2_2 |
Piecewise polytrope: Base 10 exponent of the third fiducial density (between and ) for star 2 |
|||
double precision, | public | :: | mOmega |
mOmega= ( angular_vel ) ( mass_grav1 + mass_grav2 ) [pure number] Constant used in K. Hotokezaka et al, Phys. Rev. D 87, 024001 (see Sec. IIB) to determine when the BNS is at approximately 3-4 quasicircular orbits from merger. For the EOS APR4 and ALF2, this requirement is approximately satisfied for mOmega ; for the EOS H4 and MS1, for mOmega . |
|||
double precision, | public, | DIMENSION(2) | :: | mass |
Array containing the baryonic masses |
||
double precision, | public | :: | mass1 |
Baryonic mass of star 1 |
|||
double precision, | public | :: | mass2 |
Baryonic mass of star 2 |
|||
double precision, | public, | DIMENSION(2) | :: | mass_grav |
Array containing the gravitational masses |
||
double precision, | public | :: | mass_grav1 |
Gravitational mass of star 1 |
|||
double precision, | public | :: | mass_grav2 |
Gravitational mass of star 2 |
|||
double precision, | public | :: | nbar_center1 |
Central baryon number density for star 1 |
|||
double precision, | public | :: | nbar_center2 |
Central baryon number density for star 2 |
|||
integer, | public | :: | npeos_1 |
Piecewise polytrope: Number of polytropic pieces for star 1 |
|||
integer, | public | :: | npeos_2 |
Piecewise polytrope: Number of polytropic pieces for star 2 |
|||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | pressure |
1-D array storing the pressure |
||
double precision, | public | :: | pressure_center1 |
Central pressure for star 1 |
|||
double precision, | public | :: | pressure_center2 |
Central pressure for star 2 |
|||
double precision, | public, | DIMENSION(2,6) | :: | radii |
Array containing the signed radii of the stars Todoadd details |
||
double precision, | public | :: | radius1_x_comp |
Radius of star 1, in the x direction, towards the companion |
|||
double precision, | public | :: | radius1_x_opp |
Radius of star 1, in the x direction, opposite to companion |
|||
double precision, | public | :: | radius1_y |
Radius of star 1, in the y direction |
|||
double precision, | public | :: | radius1_z |
Radius of star 1, in the z direction |
|||
double precision, | public | :: | radius2_x_comp |
Radius of star 2, in the x direction, towards the companion |
|||
double precision, | public | :: | radius2_x_opp |
Radius of star 2, in the x direction, opposite to companion |
|||
double precision, | public | :: | radius2_y |
Radius of star 2, in the y direction |
|||
double precision, | public | :: | radius2_z |
Radius of star 2, in the z direction |
|||
double precision, | public | :: | rho_center1 |
Central baryon mass density for star 1 |
|||
double precision, | public | :: | rho_center2 |
Central baryon mass density for star 2 |
|||
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, | private, | DIMENSION(:), ALLOCATABLE | :: | specific_energy |
1-D array storing the specific internal energy [c^2] |
||
double precision, | public | :: | specific_energy_center1 |
Central specific energy for star 1 |
|||
double precision, | public | :: | specific_energy_center2 |
Central specific energy for star 2 |
|||
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 |
||
double precision, | public | :: | t_merger |
Estimated time of the merger P. C. Peters, "Gravitational Radiation and the Motion of Two Point Masses", Phys. Rev. 136, B1224 (1964) |
|||
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, | private, | DIMENSION(:), ALLOCATABLE | :: | v_euler_x |
1-D array storing the x component of the fluid 3-velocity with respect to |
||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | v_euler_y |
1-D array storing the y component of the fluid 3-velocity with respect to |
||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | v_euler_z |
1-D array storing the z component of the fluid 3-velocity with respect to |
Finalizer (Destructor) of a bnslorene object
Allocates memory for the bnslorene member arrays
Allocates allocatable arrays member of a bnslorene object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | d |
Dimension of the arrays |
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 the \(\texttt{LORENE}\) \(\texttt{Bin_NS}\) object
Interface of the subroutine that constructs the \(\texttt{LORENE}\) \(\texttt{Bin_NS}\) object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
character(kind=C_CHAR, len=*), | intent(in), | optional | :: | id_file |
\(\texttt{LORENE}\) binary file containing the spectral \(\mathrm{BNS}\) \(\mathrm{ID}\) |
|
character(kind=C_CHAR, len=*), | intent(in), | optional, | DIMENSION(2) | :: | 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 |
Corrects the \(\mathrm{SPH}\) \(\mathrm{ID}\) so that the linear momentum is zero
Post-process the \(\mathrm{SPH}\) \(\mathrm{ID}\); for example, correct for the residual ADM linear momentum.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | npart |
Particle number |
||
double precision, | intent(inout), | DIMENSION(3,npart) | :: | pos |
Particle positions |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | nlrf |
Baryon density in the local rest frame on the particles |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | u |
Specific internal energy on the particles |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | pr |
Pressure on the particles |
|
double precision, | intent(inout), | DIMENSION(3,npart) | :: | vel_u |
Spatial velocity in the computing frame on the particles |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | theta |
Generalized Lorentz factor on the particles |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | nstar |
Proper baryon density in the local rest frame on the particles |
|
double precision, | intent(inout), | DIMENSION(npart) | :: | nu |
Baryon number per particle |
|
double precision, | intent(in), | DIMENSION(npart) | :: | g_xx | ||
double precision, | intent(in), | DIMENSION(npart) | :: | g_xy | ||
double precision, | intent(in), | DIMENSION(npart) | :: | g_xz | ||
double precision, | intent(in), | DIMENSION(npart) | :: | g_yy | ||
double precision, | intent(in), | DIMENSION(npart) | :: | g_yz | ||
double precision, | intent(in), | DIMENSION(npart) | :: | g_zz | ||
double precision, | intent(in), | DIMENSION(npart) | :: | lapse |
Lapse function on the particles |
|
double precision, | intent(in), | DIMENSION(npart) | :: | shift_x | ||
double precision, | intent(in), | DIMENSION(npart) | :: | shift_y | ||
double precision, | intent(in), | DIMENSION(npart) | :: | shift_z | ||
double precision, | intent(in), | DIMENSION(3) | :: | adm_mom_error | ||
double precision, | intent(in) | :: | adm_mass |
Deallocates memory for the bnslorene member arrays
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(bnslorene), | intent(out) | :: | derived_type |
Constructed bnslorene object |
||
character(len=*), | intent(in), | optional | :: | filename |
\(\texttt{LORENE}\) binary file containing the spectral \(\mathrm{BNS}\) \(\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 |
Destructs the \(\texttt{LORENE}\) \(\texttt{Bin_NS}\) object
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
Finds the center of a matter object, as the point where the density is maximal.
Finds the center of a star, as the point where the density is maximal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
double precision, | intent(in) | :: | separation |
Separation between the stars |
||
double precision, | intent(in) | :: | x_sign |
Sign of the x coordinates of the point inside the star |
||
procedure(get_density_at_pos), | optional | :: | get_density |
Center of a star, as the point where the density is maximal.
Finds the surfaces of the stars, and prints them to a formatted file.
Finds the radius of a star, relative to a center and along a direction. The radius is determined as the first point where the density is zero.
Finds the radius of a matter object, relative to a center and along a direction. The radius is determined as the first point where the density is zero.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
double precision, | intent(in), | DIMENSION(3) | :: | center |
Center point relative to which the radius is measured |
|
double precision, | intent(in), | DIMENSION(3) | :: | vector |
Vector that defines the direction along which to measure the radius. If not normalized, it will be normalized. |
|
procedure(get_density_at_pos), | optional | :: | get_density |
Radius of the star relative to center
, along the direction
specified by vector
Finds the surface of a star, using [[bnsbase::find_radius]] along many directions.
Finds the surface of a star, using [[bnsbase::find_radius]] along many directions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
double precision, | intent(in), | DIMENSION(3) | :: | center |
Center point relative to which the radius is measured |
|
integer, | intent(in) | :: | n_theta |
Number of points in for the colatitude |
||
integer, | intent(in) | :: | n_phi |
Number of points in for the azimuth |
||
double precision, | intent(out), | DIMENSION(:,:,:), ALLOCATABLE | :: | surface |
Array storing the coordinates of the points on the surface |
Returns adm_mass
Returns the angular momentum vector angular_momentum_x, angular_momentum_y, angular_momentum_z
Returns angular_vel
Returns barycenter1_x
Returns barycenter2_x
Returns bns_identifier
Returns center1_x
Returns center2_x
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 distance
Returns distance_com
Returns energy_density_center1
Returns energy_density_center2
Returns ent_center1
Returns ent_center2
Returns eos1
Returns the \(\texttt{LORENE}\) identifier for the EOS of star 1
Returns eos1_loreneid
Returns eos2
Returns the \(\texttt{LORENE}\) identifier for the EOS of star 2
Returns eos2_loreneid
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 |
Access the bnslorene-member arrays
Returns the bnslorene member arrays named field
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
character(len=:), | intent(in), | ALLOCATABLE | :: | field |
Name of the desired bnslorene member array |
Desired bnslorene member array
GENERIC PROCEDURE, overloded to access the bnslorene-member variables as arrays and as values
Access the components of the bnslorene-member arrays
Returns the component n of the bnslorene member arrays named field
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
character(len=:), | intent(in), | ALLOCATABLE | :: | field |
Name of the desired bnslorene member array |
|
integer, | intent(in) | :: | n |
Component of the desired bnslorene member array |
Component n of the desired bnslorene member array
Returns gamma0_1
Returns gamma0_2
Returns gamma1_1
Returns gamma1_2
Returns gamma2_1
Returns gamma2_2
Returns gamma3_1
Returns gamma3_2
Returns gamma_1
Returns gamma_2
Returns mass_grav1
Returns mass_grav2
Returns kappa0_1
Returns kappa0_2
Returns kappa1_1
Returns kappa1_2
Returns kappa2_1
Returns kappa2_2
Returns kappa3_1
Returns kappa3_2
Returns kappa_1
Returns kappa_2
Returns the linear momentum vector linear_momentum_x, linear_momentum_y, linear_momentum_z
Returns logP1_1
Returns logP1_2
Returns logRho0_1
Returns logRho0_2
Returns logRho1_1
Returns logRho1_2
Returns logRho2_1
Returns logRho2_2
Returns mass1
Returns mass2
Returns n_matter, the number of matter objects in the physical system
Returns nbar_center1
Returns nbar_center2
Returns npeos_1
Returns npeos_2
Returns one_lapse, the LOGICAL
variable that determines if
the lapse function , i.e., if the geodesic gauge is to be used
Returns pressure_center1
Returns pressure_center2
Returns radius1_x_comp
Returns radius1_x_opp
Returns radius1_y
Returns radius1_z
Returns radius2_x_comp
Returns radius2_x_opp
Returns radius2_y
Returns radius2_y
Returns rho_center1
Returns rho_center2
Returns specific_energy_center1
Returns specific_energy_center2
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 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 |
Procedure that does nothing. It is used to instantiate a deferred idbase procedure which is not needed in TYPE bnslorene. It also serves as a placeholder in case the idbase procedure will be needed in the future.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | 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 |
Procedure that does nothing. It is used to instantiate a deferred idbase procedure which is not needed in TYPE bnslorene. It also serves as a placeholder in case the idbase procedure will be needed in the future.
Procedure that does nothing. It is used to instantiate a deferred idbase procedure which is not needed in TYPE bnslorene. It also serves as a placeholder in case the idbase procedure will be needed in the future.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | flag |
Identifies what kind of initialization has to be done |
||
logical, | intent(in), | optional | :: | switch |
If |
Prints the parameters of the \(\mathrm{BNS}\) to the standard output
Prints a summary of the physical properties the \(\mathrm{BNS}\) 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(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
character(len=*), | intent(inout), | optional | :: | filename |
Name of the formatted file to print the summary to |
Prints a summary of the physical properties of the \(\mathrm{BNS}\) produced by
\(\texttt{LORENE}\) 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(bnslorene), | intent(in) | :: | this | |||
character(len=*), | intent(inout), | optional | :: | filename |
Name of the formatted file to print the summary to |
Imports the parameters of the \(\mathrm{BNS}\) from \(\texttt{LORENE}\)
Integrates the \(\texttt{LORENE}\) baryon mass density and computes the radial mass profile
Stores the \(\mathrm{ID}\) in non bnslorene-member arrays with the same shape as the bnslorene member arrays
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene 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 |
Stores the hydro \(\mathrm{ID}\) in the arrays needed to compute the constraints on the refined mesh
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene 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 |
Stores the \(\mathrm{ID}\) in the bnslorene member arrays
Stores the \(\mathrm{ID}\) in the bnslorene member arrays
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene 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 |
Stores the components of the extrinsic curvature in arrays
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene 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 |
Stores the hydro \(\mathrm{ID}\) in the arrays needed to compute the baryon mass
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene object 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 |
Stores the hydro \(\mathrm{ID}\) in the arrays needed to compute the \(\mathrm{SPH}\) \(\mathrm{ID}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
integer, | intent(in) | :: | n | |||
real(kind=C_DOUBLE), | intent(in), | DIMENSION(:) | :: | x | ||
real(kind=C_DOUBLE), | intent(in), | DIMENSION(:) | :: | y | ||
real(kind=C_DOUBLE), | 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 |
Stores the spacetime \(\mathrm{ID}\) in multi-dimensional arrays needed to compute the BSSN variables and constraints
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(inout) | :: | this |
bnslorene 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 \(\texttt{LORENE}\)'s mass density at the desired point
Returns the \(\texttt{LORENE}\) baryon mass density at a point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object 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 |
Baryon mass density at
Returns the \(\texttt{LORENE}\)'s pressure at the desired point
Returns the \(\texttt{LORENE}\) pressure at a point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object 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 |
Pressure at
Returns the \(\texttt{LORENE}\)'s conformally flat spatial ADM metric
Returns the \(\texttt{LORENE}\) conformally flat spatial metric component at a point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
real(kind=C_DOUBLE), | intent(in), | VALUE | :: | x |
coordinate of the desired point |
|
real(kind=C_DOUBLE), | intent(in), | VALUE | :: | y |
coordinate of the desired point |
|
real(kind=C_DOUBLE), | intent(in), | VALUE | :: | z |
coordinate of the desired point |
at
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose parameter is to return |
Result
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose parameter is to return |
Result
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose string is to return |
Result
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object which this PROCEDURE is a member of |
||
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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnsbase), | intent(in) | :: | this |
bnsbase object owning this PROCEDURE |
||
integer, | intent(in) | :: | i_matter |
Index of the matter object whose string is to return |
Result
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 1 if the energy density or the specific energy or the pressure are negative
Returns 1 if the energy density or the specific energy or the pressure are negative, 0 otherwise
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(bnslorene), | intent(in) | :: | this |
bnslorene object 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 |
.TRUE.
if the energy density or the specific energy or the pressure
are negative, .FALSE.
otherwise
TYPE, EXTENDS(bnsbase):: bnslorene
!# TYPE representing a binary system of neutron stars (|bns|) produced with
! |lorene|
PRIVATE
INTEGER:: bns_identifier= 0
!! Identifier of the bnslorene object
INTEGER:: eos1_loreneid
!! |lorene| identifier for the |eos| of star 1
INTEGER:: eos2_loreneid
!! |lorene| identifier for the |eos| of star 2
!
!-- 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
!& C pointer to the |lorene|'s |binns| object
! N.B. This variable is global. The pointer to the second |lorene| |binns|
! object will overwrite the first one, and so on.
! This variable stores the pointer to the last defined |lorene| |binns|
! object. That's why it is not freed in the destructor of a bns object.
! Presently, it has to be freed by the user at the end of the PROGRAM.
! See the last part of the PROGRAM in setup_lorene_id.f90, for example.
TYPE(C_PTR):: bns_ptr
CONTAINS
!-------------------!
!-- SUBROUTINES --!
!-------------------!
PROCEDURE:: derived_type_constructor => construct_bnslorene
PROCEDURE:: construct_binary
!! Constructs the |lorene| |binns| object
PROCEDURE:: destruct_binary
!! Destructs the |lorene| |binns| object
PROCEDURE:: allocate_bnslorene_memory
!! Allocates memory for the [[bnslorene]] member arrays
PROCEDURE:: deallocate_bnslorene_memory
!! Deallocates memory for the [[bnslorene]] member arrays
PROCEDURE:: read_bns_properties
!! Imports the parameters of the |bns| from |lorene|
!PROCEDURE:: integrate_field_on_star => integrate_baryon_mass_density
!# Integrates the |lorene| baryon mass density and computes the
! radial mass profile
PROCEDURE, PUBLIC:: print_bns_properties
!! Prints the parameters of the |bns| to the standard output
PROCEDURE:: read_id_int
!! Stores the |id| in the [[bnslorene]] member arrays
PROCEDURE:: read_id_full => read_id_full
PROCEDURE:: read_id_spacetime => read_id_spacetime
PROCEDURE:: read_id_particles => read_id_particles
PROCEDURE:: read_id_hydro => read_id_hydro
PROCEDURE:: read_id_mass_b => read_id_mass_b
PROCEDURE:: read_id_k => read_id_k
PROCEDURE:: print_summary_derived => print_summary_bnslorene
PROCEDURE:: nothing
!# Procedure that does nothing. It is used to instantiate a deferred
! idbase procedure which is not needed in TYPE [[bnslorene]].
! It also serves as a placeholder in case the idbase procedure
! will be needed in the future.
PROCEDURE:: initialize_id => nothing
PROCEDURE, NOPASS:: correct_adm_linear_momentum
!# Corrects the |sph| |id| so that the linear \(\mathrm{ADM}\) momentum
! is zero
!-----------------!
!-- FUNCTIONS --!
!-----------------!
!> Returns the |lorene|'s mass density at the desired point
PROCEDURE:: read_mass_density => read_bnslorene_mass_density
!> Returns the |lorene|'s pressure at the desired point
PROCEDURE:: read_pressure => read_bnslorene_pressure
!> Returns the |lorene|'s conformally flat spatial ADM metric
PROCEDURE:: read_spatial_metric
!& Returns 1 if the energy density or the specific energy or the pressure
! are negative
PROCEDURE:: test_position => is_hydro_positive
!
!-- Overloaded FUNCTION to access the fields as arrays and as values
!
GENERIC, PUBLIC:: get_field => get_fa, get_fv
!# GENERIC PROCEDURE, overloded to access the [[bnslorene]]-member variables
! as arrays and as values
PROCEDURE:: get_fa => get_field_array
!! Access the [[bnslorene]]-member arrays
PROCEDURE:: get_fv => get_field_value
!! Access the components of the [[bnslorene]]-member arrays
!
!-- FUNCTIONS that access member variables
!
PROCEDURE:: get_eos1_id => get_eos1_loreneid
!! Returns the |lorene| identifier for the EOS of star 1
PROCEDURE:: get_eos2_id => get_eos2_loreneid
!! Returns the |lorene| identifier for the EOS of star 2
PROCEDURE:: return_eos_parameters => get_eos_parameters
PROCEDURE, PUBLIC:: get_eos1_loreneid
!! Returns [[bnslorene:eos1_loreneid]]
PROCEDURE, PUBLIC:: get_eos2_loreneid
!! Returns [[bnslorene:eos2_loreneid]]
PROCEDURE, PUBLIC:: get_bns_identifier
!! Returns [[bnslorene:bns_identifier]]
!PROCEDURE, PUBLIC:: get_bns_ptr
FINAL:: destruct_bnslorene
!! Finalizer (Destructor) of a [[bnslorene]] object
END TYPE bnslorene