bns_base Module

This MODULE contains the definition of TYPE bnsbase, which is an ABSTRACT TYPE representing any possible type of binary neutron star (\(\mathrm{BNS}\)) initial data (\(\mathrm{ID}\)) to be set up for \(\texttt{SPHINCS_BSSN}\). That is, \(\mathrm{BNS}\) \(\mathrm{ID}\) produced with \(\texttt{LORENE}\), with \(\texttt{FUKA}\), etc.

PROCEDURES and variables shared by all the types of \(\mathrm{BNS}\) \(\mathrm{ID}\) should belong to TYPE bnsbase, as they are inherited by its EXTENDED TYPES that represent more specific types of \(\mathrm{BNS}\) \(\mathrm{ID}\).

FT 24.09.2021



Uses

  • module~~bns_base~~UsesGraph module~bns_base bns_base module~id_base id_base module~bns_base->module~id_base module~utility utility module~bns_base->module~utility module~id_base->module~utility timing timing module~id_base->timing constants constants module~utility->constants matrix matrix module~utility->matrix

Used by

  • module~~bns_base~~UsedByGraph module~bns_base bns_base module~access~3 access module~access~3->module~bns_base module~bns_fuka bns_fuka module~bns_fuka->module~bns_base module~bns_lorene bns_lorene module~bns_lorene->module~bns_base module~geometry geometry module~geometry->module~bns_base module~io~4 io module~io~4->module~bns_base module~access~4 access module~access~4->module~bns_lorene module~access~5 access module~access~5->module~bns_fuka module~constructor~2 constructor module~constructor~2->module~bns_lorene module~constructor~3 constructor module~constructor~3->module~bns_fuka module~finalize_id finalize_id module~finalize_id->module~bns_lorene module~interpolate interpolate module~interpolate->module~bns_fuka module~io~5 io module~io~5->module~bns_lorene module~io~6 io module~io~6->module~bns_fuka module~memory~3 memory module~memory~3->module~bns_lorene module~memory~4 memory module~memory~4->module~bns_fuka module~properties properties module~properties->module~bns_lorene module~properties~2 properties module~properties~2->module~bns_fuka module~read read module~read->module~bns_lorene module~read~2 read module~read~2->module~bns_fuka module~sphincs_id_fuka sphincs_id_fuka module~sphincs_id_fuka->module~bns_fuka module~sphincs_id_full sphincs_id_full module~sphincs_id_full->module~bns_fuka module~sphincs_id_full->module~bns_lorene module~sphincs_id_lorene sphincs_id_lorene module~sphincs_id_lorene->module~bns_lorene program~convergence_test convergence_test program~convergence_test->module~sphincs_id_fuka program~convergence_test->module~sphincs_id_full program~convergence_test->module~sphincs_id_lorene program~sphincs_id sphincs_id program~sphincs_id->module~sphincs_id_fuka program~sphincs_id->module~sphincs_id_full program~sphincs_id->module~sphincs_id_lorene

Contents


Interfaces

interface

  • public module function find_center(this, separation, x_sign, get_density) result(center)

    Finds the center of a star, as the point where the density is maximal.

    Arguments

    Type IntentOptional 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

    Return Value double precision

    Center of a star, as the point where the density is maximal.

interface

  • public module subroutine find_print_surfaces(this)

    Finds the surfaces of the stars, and prints them to a formatted file.

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(inout) :: this

    bnsbase object owning this PROCEDURE

interface

  • public module function find_radius(this, center, vector, get_density) result(radius)

    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.

    Arguments

    Type IntentOptional 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

    Return Value double precision

    Radius of the star relative to center, along the direction specified by vector

interface

  • public module subroutine find_surface(this, center, n_theta, n_phi, surface)

    Finds the surface of a star, using [[bnsbase::find_radius]] along many directions.

    Arguments

    Type IntentOptional 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

interface

  • public pure module function get_adm_mass(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_angular_momentum(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision, (3)

    Result

interface

  • public pure module function get_angular_vel(this)

    Returns angular_vel

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module function get_barycenter(this, i_matter)

    Arguments

    Type IntentOptional 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

    Return Value double precision, DIMENSION(3)

    Result

interface

  • public pure module function get_barycenter1_x(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_barycenter2_x(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module function get_center(this, i_matter)

    Arguments

    Type IntentOptional 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

    Return Value double precision, DIMENSION(3)

    Result

interface

  • public pure module function get_center1_x(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_center2_x(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_distance(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_distance_com(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_energy_density_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_energy_density_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_ent_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_ent_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module function get_eos(this, i_matter)

    Arguments

    Type IntentOptional 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

    Return Value character(len=:), ALLOCATABLE

    Result

interface

  • public pure module function get_eos1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value character(len=:), ALLOCATABLE

    Result

interface

  • public pure module function get_eos2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value character(len=:), ALLOCATABLE

    Result

interface

  • public module function get_eos_id(this, i_matter)

    Arguments

    Type IntentOptional 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

    Return Value integer

    Result

interface

  • public pure module function get_gamma0_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma0_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma1_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma1_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma2_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma2_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma3_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma3_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_gamma_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_grav_mass1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_grav_mass2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa0_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa0_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa1_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa1_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa2_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa2_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa3_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa3_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_kappa_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_linear_momentum(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision, (3)

    Result

interface

  • public pure module function get_logP1_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logP1_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho0_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho0_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho1_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho1_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho2_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_logRho2_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module function get_mass(this, i_matter)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object owning this PROCEDURE

    integer, intent(in) :: i_matter

    Index identifying the matter object

    Return Value double precision

    Result

interface

  • public pure module function get_mass1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_mass2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_nbar_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_nbar_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_npeos_1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value integer

    Result

interface

  • public pure module function get_npeos_2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value integer

    Result

interface

  • public pure module function get_pressure_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_pressure_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module function get_radii(this, i_matter)

    Arguments

    Type IntentOptional 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

    Return Value double precision, DIMENSION(6)

    Result

interface

  • public pure module function get_radius1_x_comp(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius1_x_opp(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius1_y(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius1_z(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius2_x_comp(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius2_x_opp(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius2_y(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_radius2_z(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_rho_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_rho_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_specific_energy_center1(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public pure module function get_specific_energy_center2(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object which this PROCEDURE is a member of

    Return Value double precision

    Result

interface

  • public module subroutine print_summary_bnsbase(this, filename)

    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

    Arguments

    Type IntentOptional 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


Abstract Interfaces

abstract interface

  • public function get_eos_id_int(this)

    Arguments

    Type IntentOptional Attributes Name
    class(bnsbase), intent(in) :: this

    bnsbase object owning this PROCEDURE

    Return Value integer

    Result

abstract interface

  • public subroutine print_summary_derived_int(this, filename)

    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

    Arguments

    Type IntentOptional 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


Derived Types

type, public, extends(idbase) ::  bnsbase

ABSTRACT TYPE for \(\mathrm{BNS}\) \(\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.)

Components

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

Read more…
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

Read more…
double precision, public, DIMENSION(2,3) :: center

Array containing the centers of the stars

Read more…
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, 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

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

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]

Read more…
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, 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

Read more…
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, 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.

Read more…
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.

Read more…

Type-Bound Procedures

procedure , public , NON_OVERRIDABLE :: check_i_matter Interface

Checks that the given index is between 1 and n_matter, included. If not, it stops the execution of the program.

procedure (derived_type_constructor_int) , public :: derived_type_constructor

Constructs a TYPE that extends idbase

procedure , public :: estimate_lengthscale_field Interface

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.

procedure , public , NON_OVERRIDABLE :: find_center Interface

Finds the center of a matter object, as the point where the density is maximal.

procedure , public , NON_OVERRIDABLE :: find_print_surfaces Interface

Finds the surfaces of the stars, and prints them to a formatted file.

procedure , public , NON_OVERRIDABLE :: find_radius Interface

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.

procedure , public , NON_OVERRIDABLE :: find_surface Interface

Finds the surface of a star, using [[bnsbase::find_radius]] along many directions.

procedure , public :: get_adm_mass Interface

Returns adm_mass

procedure , public :: get_angular_momentum Interface

Returns the angular momentum vector angular_momentum_x, angular_momentum_y, angular_momentum_z

procedure , public :: get_angular_vel Interface

Returns angular_vel

procedure , public :: get_barycenter1_x Interface

Returns barycenter1_x

procedure , public :: get_barycenter2_x Interface

Returns barycenter2_x

procedure , public :: get_center1_x Interface

Returns center1_x

procedure , public :: get_center2_x Interface

Returns center2_x

procedure , public , NON_OVERRIDABLE :: get_cold_system Interface

Returns cold_system, the LOGICAL variable that specifies if the system is cold (no thermal component)

procedure , public :: get_distance Interface

Returns distance

procedure , public :: get_distance_com Interface

Returns distance_com

procedure , public :: get_energy_density_center1 Interface

Returns energy_density_center1

procedure , public :: get_energy_density_center2 Interface

Returns energy_density_center2

procedure , public :: get_ent_center1 Interface

Returns ent_center1

procedure , public :: get_ent_center2 Interface

Returns ent_center2

procedure , public :: get_eos1 Interface

Returns eos1

procedure (get_eos_id_int) , public :: get_eos1_id

Returns an integer that identifies the equation of state of star 1

procedure , public :: get_eos2 Interface

Returns eos2

procedure (get_eos_id_int) , public :: get_eos2_id

Returns an integer that identifies the equation of state of star 2

procedure , public :: get_eos_id Interface

Returns eos1_id or eos2_id

procedure , public , NON_OVERRIDABLE :: get_estimate_length_scale Interface

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

procedure , public :: get_gamma0_1 Interface

Returns gamma0_1

procedure , public :: get_gamma0_2 Interface

Returns gamma0_2

procedure , public :: get_gamma1_1 Interface

Returns gamma1_1

procedure , public :: get_gamma1_2 Interface

Returns gamma1_2

procedure , public :: get_gamma2_1 Interface

Returns gamma2_1

procedure , public :: get_gamma2_2 Interface

Returns gamma2_2

procedure , public :: get_gamma3_1 Interface

Returns gamma3_1

procedure , public :: get_gamma3_2 Interface

Returns gamma3_2

procedure , public :: get_gamma_1 Interface

Returns gamma_1

procedure , public :: get_gamma_2 Interface

Returns gamma_2

procedure , public :: get_grav_mass1 Interface

Returns mass_grav1

procedure , public :: get_grav_mass2 Interface

Returns mass_grav2

procedure , public :: get_kappa0_1 Interface

Returns kappa0_1

procedure , public :: get_kappa0_2 Interface

Returns kappa0_2

procedure , public :: get_kappa1_1 Interface

Returns kappa1_1

procedure , public :: get_kappa1_2 Interface

Returns kappa1_2

procedure , public :: get_kappa2_1 Interface

Returns kappa2_1

procedure , public :: get_kappa2_2 Interface

Returns kappa2_2

procedure , public :: get_kappa3_1 Interface

Returns kappa3_1

procedure , public :: get_kappa3_2 Interface

Returns kappa3_2

procedure , public :: get_kappa_1 Interface

Returns kappa_1

procedure , public :: get_kappa_2 Interface

Returns kappa_2

procedure , public :: get_linear_momentum Interface

Returns the linear momentum vector linear_momentum_x, linear_momentum_y, linear_momentum_z

procedure , public :: get_logP1_1 Interface

Returns logP1_1

procedure , public :: get_logP1_2 Interface

Returns logP1_2

procedure , public :: get_logRho0_1 Interface

Returns logRho0_1

procedure , public :: get_logRho0_2 Interface

Returns logRho0_2

procedure , public :: get_logRho1_1 Interface

Returns logRho1_1

procedure , public :: get_logRho1_2 Interface

Returns logRho1_2

procedure , public :: get_logRho2_1 Interface

Returns logRho2_1

procedure , public :: get_logRho2_2 Interface

Returns logRho2_2

procedure , public :: get_mass1 Interface

Returns mass1

procedure , public :: get_mass2 Interface

Returns mass2

procedure , public , NON_OVERRIDABLE :: get_n_matter Interface

Returns n_matter, the number of matter objects in the physical system

procedure , public :: get_nbar_center1 Interface

Returns nbar_center1

procedure , public :: get_nbar_center2 Interface

Returns nbar_center2

procedure , public :: get_npeos_1 Interface

Returns npeos_1

procedure , public :: get_npeos_2 Interface

Returns npeos_2

procedure , public , NON_OVERRIDABLE :: get_one_lapse Interface

Returns one_lapse, the LOGICAL variable that determines if the lapse function , i.e., if the geodesic gauge is to be used

procedure , public :: get_pressure_center1 Interface

Returns pressure_center1

procedure , public :: get_pressure_center2 Interface

Returns pressure_center2

procedure , public :: get_radius1_x_comp Interface

Returns radius1_x_comp

procedure , public :: get_radius1_x_opp Interface

Returns radius1_x_opp

procedure , public :: get_radius1_y Interface

Returns radius1_y

procedure , public :: get_radius1_z Interface

Returns radius1_z

procedure , public :: get_radius2_x_comp Interface

Returns radius2_x_comp

procedure , public :: get_radius2_x_opp Interface

Returns radius2_x_opp

procedure , public :: get_radius2_y Interface

Returns radius2_y

procedure , public :: get_radius2_z Interface

Returns radius2_y

procedure , public :: get_rho_center1 Interface

Returns rho_center1

procedure , public :: get_rho_center2 Interface

Returns rho_center2

procedure , public :: get_specific_energy_center1 Interface

Returns specific_energy_center1

procedure , public :: get_specific_energy_center2 Interface

Returns specific_energy_center2

procedure , public , NON_OVERRIDABLE :: get_total_spatial_extent Interface

Returns the spatial extent of the physical system considered, as the array of 6 numbers

procedure , public , NON_OVERRIDABLE :: get_zero_shift Interface

Returns zero_shift, the LOGICAL variable that determines if the shift

procedure , public , NON_OVERRIDABLE :: initialize Interface

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.

procedure (initialize_id_int) , public :: initialize_id

Initialize the \(\mathrm{ID}\); for example, set up the lattices around the stars for the \(\mathrm{BNS}\) produced with \(\texttt{FUKA}\).

procedure , public :: integrate_baryon_mass_density Interface

Integrates the baryon mass density over a matter object, using spherical coordinates, and computes its radial profile inside the star

procedure , public :: print_summary => print_summary_bnsbase Interface
procedure (print_summary_derived_int) , public :: print_summary_derived

Prints a summary of the physical properties the system to the standard output and, optionally, to a formatted file whose name is given as optional argument. Printse information relative to the derived type oly

procedure (read_id_full_int) , public :: read_id_full

Reads the full \(\mathrm{ID}\)

procedure (read_id_hydro_int) , public :: read_id_hydro

Reads the hydro \(\mathrm{ID}\) needed to compute the constraints on the refined mesh

procedure (read_id_k_int) , public :: read_id_k

Reads the components of the extrinsic curvature

procedure (read_id_mass_b_int) , public :: read_id_mass_b

Reads the hydro \(\mathrm{ID}\) needed to compute the baryon mass

procedure (read_id_particles_int) , public :: read_id_particles

Reads the hydro \(\mathrm{ID}\) needed to compute the SPH \(\mathrm{ID}\)

procedure (read_id_spacetime_int) , public :: read_id_spacetime

Reads the spacetime \(\mathrm{ID}\) needed to compute the BSSN variables and constraints

procedure (read_double_at_pos) , public :: read_mass_density

Returns the baryon mass density from the \(\mathrm{ID}\) at the given point

procedure (read_double_at_pos) , public :: read_pressure

Returns the pressure from te \(\mathrm{ID}\) at the given point

procedure , public :: return_adm_mass => get_adm_mass Interface
procedure , public :: return_barycenter => get_barycenter Interface
procedure , public :: return_center => get_center Interface
procedure , public :: return_eos_name => get_eos Interface
procedure (return_eos_parameters_int) , public :: return_eos_parameters

Returns the identification number of the \(\mathrm{EOS}\) of the matter objects.

Read more…
procedure , public :: return_mass => get_mass Interface
procedure , public :: return_spatial_extent => get_radii Interface
procedure , public , NON_OVERRIDABLE :: sanity_check Interface

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.

procedure , public , NON_OVERRIDABLE :: set_cold_system Interface

Sets cold_system, the LOGICAL variable that specifies if the system is cold (no thermal component)

procedure , public , NON_OVERRIDABLE :: set_estimate_length_scale Interface

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

procedure , public , NON_OVERRIDABLE :: set_n_matter Interface

Sets n_matter, the number of matter objects in the physical system, to a value

procedure , public , NON_OVERRIDABLE :: set_one_lapse Interface

Sets one_lapse, the LOGICAL variable that determines if the lapse , i.e., if the geodesic gauge is to be used

procedure , public , NON_OVERRIDABLE :: set_zero_shift Interface

Sets zero_shift, the LOGICAL variable that determines if the shift

procedure (read_logical_at_pos) , public :: test_position

Returns .TRUE. if the position has physically acceptable properties, .FALSE. otherwise