diffstar_lorene Module

This module contains the definition of TYPE diffstarlorene, and the SUBROUTINES that bind to the methods of \(\texttt{LORENE}\)'s class \(\texttt{Et_rot_diff}\), defined in Lorene/Export/C++/Source/Etoile

\(\texttt{LORENE}\) official repository


! Interface of TYPE diffstarlorene


Uses

  • module~~diffstar_lorene~~UsesGraph module~diffstar_lorene diffstar_lorene iso_c_binding iso_c_binding module~diffstar_lorene->iso_c_binding module~diffstar_base diffstar_base module~diffstar_lorene->module~diffstar_base module~id_base id_base module~diffstar_lorene->module~id_base module~utility utility module~diffstar_lorene->module~utility timing timing module~diffstar_lorene->timing module~diffstar_base->module~id_base module~diffstar_base->module~utility module~id_base->module~utility module~id_base->timing constants constants module~utility->constants matrix matrix module~utility->matrix

Used by

  • module~~diffstar_lorene~~UsedByGraph module~diffstar_lorene diffstar_lorene module~access~7 access module~access~7->module~diffstar_lorene module~constructor~4 constructor module~constructor~4->module~diffstar_lorene module~io~8 io module~io~8->module~diffstar_lorene module~memory~5 memory module~memory~5->module~diffstar_lorene module~properties~3 properties module~properties~3->module~diffstar_lorene module~read~3 read module~read~3->module~diffstar_lorene module~sphincs_id_full sphincs_id_full module~sphincs_id_full->module~diffstar_lorene module~sphincs_id_lorene sphincs_id_lorene module~sphincs_id_lorene->module~diffstar_lorene program~convergence_test convergence_test 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_full program~sphincs_id->module~sphincs_id_lorene

Contents


Interfaces

interface

  • public module subroutine allocate_diffstar_memory(this, d)

    Allocates allocatable arrays member of a diffstarlorene object

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

    integer, intent(in) :: d

    Dimension of the arrays

interface

  • public module subroutine construct_diffstarlorene(derived_type, filename, eos_filenames)

    Constructs a diffstarlorene object Prints a summary of the physical properties the system to the standard output and, optionally, to a formatted file whose name is given as the optional argument filename

    Arguments

    Type IntentOptional Attributes Name
    class(diffstarlorene), intent(out) :: derived_type

    Constructed diffstarlorene object

    character(len=*), intent(in), optional :: filename

    \(\texttt{LORENE}\) binary file containing the spectral \(\mathrm{DRS}\) \(\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 filename is used

interface

  • public module subroutine construct_drs(this, id_file, eos_filename)

    Interface of the subroutine that constructs the \(\texttt{LORENE}\) Etdiffrot object

    Arguments

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

    diffstarlorene 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{DRS}\) \(\mathrm{ID}\)

    character(kind=C_CHAR, len=*), intent(in), optional :: eos_filename

    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 filename is used

interface

  • private function construct_etdiffrot(c_id_file, c_eos_file) result(optr) bind(C, NAME= "construct_et_diffrot")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that constructs the \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    character(kind=C_CHAR, len=1), intent(in), optional, DIMENSION(*) :: c_id_file

    C string of the name of the \(\texttt{LORENE}\) binary file storing the spectral DRS ID

    character(kind=C_CHAR, len=1), intent(in), optional, DIMENSION(*) :: c_eos_file

    Return Value type(C_PTR)

    C pointer pointing to the constructed \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

interface

interface

interface

  • public module subroutine destruct_drs(this)

    Destructs a \(\texttt{LORENE}\) Etdiffrot object

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

interface

  • private subroutine destruct_etdiffrot(optr) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that destructs the \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to the \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object to destruct

interface

  • public module subroutine finalize(npart, pos, nlrf, u, pr, vel_u, theta, nstar, nu)

    Post-process the \(\mathrm{SPH}\) \(\mathrm{ID}\); for example, correct for the residual ADM linear momentum.

    Arguments

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

interface

  • private subroutine get_diffstar_full(optr, x, y, z, lapse, shift_x, shift_y, shift_z, g_rr, g_tt, g_pp, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz, baryon_density, energy_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that reads the full \(\texttt{LORENE}\) ID at the specified point. That is, imports the metric fields, the components of the extrinsic curvature [c/km], and the hydro fields.

    • shift vector [c]
    • baryon mass density [kg m^{-3}]
    • energy density [kg c^2 m^{-3}]
    • pressure [kg c^2 m^{-3}]
    • specific internal energy [c^2]
    • fluid 3-velocity with respect to the Eulerian observer [c]

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    real(kind=C_DOUBLE), intent(out) :: lapse
    real(kind=C_DOUBLE), intent(out) :: shift_x
    real(kind=C_DOUBLE), intent(out) :: shift_y
    real(kind=C_DOUBLE), intent(out) :: shift_z
    real(kind=C_DOUBLE), intent(out) :: g_rr
    real(kind=C_DOUBLE), intent(out) :: g_tt
    real(kind=C_DOUBLE), intent(out) :: g_pp
    real(kind=C_DOUBLE), intent(out) :: k_xx
    real(kind=C_DOUBLE), intent(out) :: k_xy
    real(kind=C_DOUBLE), intent(out) :: k_xz
    real(kind=C_DOUBLE), intent(out) :: k_yy
    real(kind=C_DOUBLE), intent(out) :: k_yz
    real(kind=C_DOUBLE), intent(out) :: k_zz
    real(kind=C_DOUBLE), intent(out) :: baryon_density
    real(kind=C_DOUBLE), intent(out) :: energy_density
    real(kind=C_DOUBLE), intent(out) :: specific_energy
    real(kind=C_DOUBLE), intent(out) :: pressure
    real(kind=C_DOUBLE), intent(out) :: v_euler_x
    real(kind=C_DOUBLE), intent(out) :: v_euler_y
    real(kind=C_DOUBLE), intent(out) :: v_euler_z

interface

  • private subroutine get_diffstar_hydro(optr, x, y, z, baryon_density, energy_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that reads the hydro fields from \(\texttt{LORENE}\), at the specified point

    • baryon mass density [kg m^{-3}]
    • energy density [kg c^2 m^{-3}]
    • pressure [kg c^2 m^{-3}]
    • specific internal energy [c^2]
    • fluid 3-velocity with respect to the Eulerian observer [c]

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    real(kind=C_DOUBLE), intent(out) :: baryon_density
    real(kind=C_DOUBLE), intent(out) :: energy_density
    real(kind=C_DOUBLE), intent(out) :: specific_energy
    real(kind=C_DOUBLE), intent(out) :: pressure
    real(kind=C_DOUBLE), intent(out) :: v_euler_x
    real(kind=C_DOUBLE), intent(out) :: v_euler_y
    real(kind=C_DOUBLE), intent(out) :: v_euler_z

interface

  • public module function get_diffstar_identifier(this)

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

    Return Value double precision

interface

  • private subroutine get_diffstar_mass_b(optr, x, y, z, g_rr, g_tt, g_pp, baryon_density, gamma_euler) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that reads the hydro fields and the metric fields from \(\texttt{LORENE}\), at the specified point, needed to compute the baryon mass.

    • shift vector [c]
    • baryon mass density [kg m^{-3}]
    • fluid 3-velocity with respect to the Eulerian observer [c]

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    real(kind=C_DOUBLE), intent(out) :: g_rr

    at

    real(kind=C_DOUBLE), intent(out) :: g_tt

    at

    real(kind=C_DOUBLE), intent(out) :: g_pp

    at

    real(kind=C_DOUBLE), intent(out) :: baryon_density

    Baryon mass density at

    real(kind=C_DOUBLE), intent(out) :: gamma_euler

    Relative Lorentz factor between the 4-velocity of the fluid wrt the Eulerian observer and the 4-velocity of the Eulerian observer at

interface

  • private function get_diffstar_mass_density(optr, x, y, z) result(res) bind(C, NAME= "get_rotdiff_mass_density")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that returns the baryon mass density from \(\texttt{LORENE}\), at the specified point

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    Return Value real(kind=C_DOUBLE)

    Baryon mass density at the desired point

interface

  • private subroutine get_diffstar_params(optr, omega_c, mass, mass_grav, angular_momentum, tsw, grv2, grv3, r_circ, surface_area, r_mean, r_eq, r_eq_pi2, r_eq_pi, r_eq_3pi2, r_eq_pole, r_ratio, r_isco, f_isco, specific_energy_isco, specific_angular_momentum_isco, area_radius, ent_center, nbar_center, rho_center, energy_density_center, specific_energy_center, pressure_center, redshift_eqf, redshift_eqb, redshift_pole, eos, eos_id, gamma, kappa, npeos, gamma0, gamma1, gamma2, gamma3, kappa0, kappa1, kappa2, kappa3, logP1, logRho0, logRho1, logRho2, eos_table) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that stores the physical parameters of the binary system from \(\texttt{LORENE}\) in the desired variables

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    real(kind=C_DOUBLE), intent(out) :: omega_c
    real(kind=C_DOUBLE), intent(out) :: mass
    real(kind=C_DOUBLE), intent(out) :: mass_grav
    real(kind=C_DOUBLE), intent(out) :: angular_momentum
    real(kind=C_DOUBLE), intent(out) :: tsw
    real(kind=C_DOUBLE), intent(out) :: grv2
    real(kind=C_DOUBLE), intent(out) :: grv3
    real(kind=C_DOUBLE), intent(out) :: r_circ
    real(kind=C_DOUBLE), intent(out) :: surface_area
    real(kind=C_DOUBLE), intent(out) :: r_mean
    real(kind=C_DOUBLE), intent(out) :: r_eq
    real(kind=C_DOUBLE), intent(out) :: r_eq_pi2
    real(kind=C_DOUBLE), intent(out) :: r_eq_pi
    real(kind=C_DOUBLE), intent(out) :: r_eq_3pi2
    real(kind=C_DOUBLE), intent(out) :: r_eq_pole
    real(kind=C_DOUBLE), intent(out) :: r_ratio
    real(kind=C_DOUBLE), intent(out) :: r_isco
    real(kind=C_DOUBLE), intent(out) :: f_isco
    real(kind=C_DOUBLE), intent(out) :: specific_energy_isco
    real(kind=C_DOUBLE), intent(out) :: specific_angular_momentum_isco
    real(kind=C_DOUBLE), intent(out) :: area_radius
    real(kind=C_DOUBLE), intent(out) :: ent_center
    real(kind=C_DOUBLE), intent(out) :: nbar_center
    real(kind=C_DOUBLE), intent(out) :: rho_center
    real(kind=C_DOUBLE), intent(out) :: energy_density_center
    real(kind=C_DOUBLE), intent(out) :: specific_energy_center
    real(kind=C_DOUBLE), intent(out) :: pressure_center
    real(kind=C_DOUBLE), intent(out) :: redshift_eqf
    real(kind=C_DOUBLE), intent(out) :: redshift_eqb
    real(kind=C_DOUBLE), intent(out) :: redshift_pole
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(100) :: eos
    integer(kind=C_INT) :: eos_id
    real(kind=C_DOUBLE), intent(out) :: gamma
    real(kind=C_DOUBLE), intent(out) :: kappa
    integer(kind=C_INT) :: npeos
    real(kind=C_DOUBLE), intent(out) :: gamma0
    real(kind=C_DOUBLE), intent(out) :: gamma1
    real(kind=C_DOUBLE), intent(out) :: gamma2
    real(kind=C_DOUBLE), intent(out) :: gamma3
    real(kind=C_DOUBLE), intent(out) :: kappa0
    real(kind=C_DOUBLE), intent(out) :: kappa1
    real(kind=C_DOUBLE), intent(out) :: kappa2
    real(kind=C_DOUBLE), intent(out) :: kappa3
    real(kind=C_DOUBLE), intent(out) :: logP1
    real(kind=C_DOUBLE), intent(out) :: logRho0
    real(kind=C_DOUBLE), intent(out) :: logRho1
    real(kind=C_DOUBLE), intent(out) :: logRho2
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(500) :: eos_table

interface

  • private subroutine get_diffstar_particles(optr, x, y, z, lapse, shift_x, shift_y, shift_z, g_rr, g_tt, g_pp, baryon_density, energy_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that reads the hydro fields and the metric fields * from \(\texttt{LORENE}\), at the specified point

    • shift vector [c]
    • baryon mass density [kg m^{-3}]
    • energy density [kg c^2 m^{-3}]
    • pressure [kg c^2 m^{-3}]
    • specific internal energy [c^2]
    • fluid 3-velocity with respect to the Eulerian observer [c]

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    real(kind=C_DOUBLE), intent(out) :: lapse
    real(kind=C_DOUBLE), intent(out) :: shift_x
    real(kind=C_DOUBLE), intent(out) :: shift_y
    real(kind=C_DOUBLE), intent(out) :: shift_z
    real(kind=C_DOUBLE), intent(out) :: g_rr
    real(kind=C_DOUBLE), intent(out) :: g_tt
    real(kind=C_DOUBLE), intent(out) :: g_pp
    real(kind=C_DOUBLE), intent(out) :: baryon_density
    real(kind=C_DOUBLE), intent(out) :: energy_density
    real(kind=C_DOUBLE), intent(out) :: specific_energy
    real(kind=C_DOUBLE), intent(out) :: pressure
    real(kind=C_DOUBLE), intent(out) :: v_euler_x
    real(kind=C_DOUBLE), intent(out) :: v_euler_y
    real(kind=C_DOUBLE), intent(out) :: v_euler_z

interface

  • private function get_diffstar_pressure(optr, x, y, z) result(res) bind(C, NAME= "get_rotdiff_pressure")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that returns the baryon mass density from \(\texttt{LORENE}\), at the specified point

    FT 06.12.2022


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    Return Value real(kind=C_DOUBLE)

    Pressure at the desired point

interface

  • private subroutine get_diffstar_spacetime(optr, x, y, z, lapse, shift_x, shift_y, shift_z, g_rr, g_tt, g_pp, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz) bind(C, NAME= "0")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that reads the metric fields and the components of the extrinsic curvature [c/km] from \(\texttt{LORENE}\), at the specified point

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    real(kind=C_DOUBLE), intent(out) :: lapse
    real(kind=C_DOUBLE), intent(out) :: shift_x
    real(kind=C_DOUBLE), intent(out) :: shift_y
    real(kind=C_DOUBLE), intent(out) :: shift_z
    real(kind=C_DOUBLE), intent(out) :: g_rr
    real(kind=C_DOUBLE), intent(out) :: g_tt
    real(kind=C_DOUBLE), intent(out) :: g_pp
    real(kind=C_DOUBLE), intent(out) :: k_xx
    real(kind=C_DOUBLE), intent(out) :: k_xy
    real(kind=C_DOUBLE), intent(out) :: k_xz
    real(kind=C_DOUBLE), intent(out) :: k_yy
    real(kind=C_DOUBLE), intent(out) :: k_yz
    real(kind=C_DOUBLE), intent(out) :: k_zz

interface

  • private function get_diffstar_spatial_metric(optr, x, y, z) result(res) bind(C, NAME= "get_g_rr")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that returns the diagonal components of the metric, all equal to the \(\texttt{LORENE}\) conformal factor to the 4th power.

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    Return Value real(kind=C_DOUBLE)

    Spatial metric component at the point

interface

  • public module function get_eos_loreneid(this)

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

    Return Value integer

interface

  • public module subroutine get_eos_parameters(this, i_matter, eos_params)

    Arguments

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

    diffstarlorene 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 DRS

interface

  • public module function get_field_array(this, field) result(field_array)

    Returns the diffstarlorene member arrays named field

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

    character(len=:), intent(in), ALLOCATABLE :: field

    Name of the desired diffstarlorene member array

    Return Value double precision, DIMENSION(:), ALLOCATABLE

    Desired diffstarlorene member array

interface

  • public module function get_field_value(this, field, n) result(field_value)

    Returns the component n of the diffstarlorene member arrays named field

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

    character(len=:), intent(in), ALLOCATABLE :: field

    Name of the desired diffstarlorene member array

    integer, intent(in) :: n

    Component of the desired diffstarlorene member array

    Return Value double precision

    Component n of the desired diffstarlorene member array

interface

  • public module function is_hydro_positive(this, x, y, z) result(res)

    Returns .TRUE. if the energy density or the specific energy or the pressure are positive, .FALSE. otherwise

    Arguments

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

    diffstarlorene 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

    Return Value logical

    1 if the energy density or the specific energy or the pressure are negative, 0 otherwise

interface

  • public module subroutine nothing(this, flag, switch)

    Procedure that does nothing. It is used to instantiate a deferred idbase procedure which is not needed in TYPE diffstarlorene. It also serves as a placeholder in case the idbase procedure will be needed in the future.

    Arguments

    Type IntentOptional Attributes Name
    class(diffstarlorene), intent(inout) :: this
    integer, intent(in) :: flag

    Identifies what kind of initialization has to be done

    logical, intent(in), optional :: switch

    If .TRUE., switch to a different initialization

interface

  • private function positive_hydro(optr, x, y, z) result(res) bind(C, NAME= "is_hydro_positive_diffrot")

    Interface to the \(\texttt{LORENE}\) method of class \(\texttt{Et_diffrot}\) with the same name, that returns 1 if the energy density is positive, and if the specific energy is positive, and if the pressure is nonpositive, at the specified point; it returns 0 otherwise

    FT 24.10.2021


    Arguments

    Type IntentOptional Attributes Name
    type(C_PTR), intent(in), VALUE :: optr

    C pointer pointing to a \(\texttt{LORENE}\) \(\texttt{Et_diffrot}\) object

    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

    Return Value integer(kind=C_INT)

    1 if the energy density or the specific energy or the pressure are positive, 0 otherwise

interface

  • public module subroutine print_diffstar_properties(this)

    Prints the DRS parameters to the standard output

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

interface

  • public module subroutine read_diffstar_properties(this)

    Imports the DRS parameters from \(\texttt{LORENE}\)

    Arguments

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

    diffstarlorene object which this PROCEDURE is a member of

interface

  • public module function read_drslorene_mass_density(this, x, y, z) result(res)

    Returns the \(\texttt{LORENE}\) baryon mass density at a point

    Arguments

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

    diffstarlorene 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

    Return Value double precision

    Baryon mass density at

interface

  • public module function read_drslorene_pressure(this, x, y, z) result(res)

    Returns the \(\texttt{LORENE}\) pressure at a point

    Arguments

    Type IntentOptional Attributes Name
    class(diffstarlorene), 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

    Return Value double precision

    Pressure at

interface

  • public module subroutine read_id_full(this, n, x, y, z, lapse, shift_x, shift_y, shift_z, g_xx, g_xy, g_xz, g_yy, g_yz, g_zz, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz, baryon_density, energy_density, specific_energy, pressure, u_euler_x, u_euler_y, u_euler_z)

    Stores the ID in non diffstarlorene-member arrays with the same shape as the diffstarlorene member arrays

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_hydro(this, nx, ny, nz, pos, baryon_density, energy_density, specific_energy, pressure, u_euler)

    Stores the hydro ID in the arrays needed to compute the constraints on the refined mesh

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_int(this, n, x, y, z)

    Stores the ID in the diffstarlorene member arrays

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_k(this, n, x, y, z, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz)

    Stores the components of the extrinsic curvature in arrays

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_mass_b(this, x, y, z, g, baryon_density, gamma_euler)

    Stores the hydro ID in the arrays needed to compute the baryon mass

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_particles(this, n, x, y, z, lapse, shift_x, shift_y, shift_z, g_xx, g_xy, g_xz, g_yy, g_yz, g_zz, baryon_density, energy_density, specific_energy, pressure, u_euler_x, u_euler_y, u_euler_z)

    Stores the hydro ID in the arrays needed to compute the SPH ID

    Arguments

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

    diffstarlorene 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

interface

  • public module subroutine read_id_spacetime(this, nx, ny, nz, pos, lapse, shift, g, ek)

    Stores the spacetime ID in multi-dimensional arrays needed to compute the BSSN variables and constraints

    Arguments

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

    diffstarlorene 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

interface

  • public module function read_spatial_metric(this, x, y, z) result(res)

    Returns the \(\texttt{LORENE}\) conformally flat spatial metric component at a point

    Arguments

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

    diffstarlorene 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

    Return Value real(kind=C_DOUBLE)

    at


Derived Types

type, public, extends(diffstarbase) ::  diffstarlorene

TYPE representing a differentially rotating star (DRS)

Components

Type Visibility Attributes Name Initial
double precision, public :: adm_mass

ADM mass of the \(\mathrm{DRS}\)

double precision, public :: angular_momentum = 0.0D0

Angular momentum of the \(\mathrm{DRS}\)

double precision, public :: area_radius

Areal (or circumferential) radius of \(\mathrm{DRS}\) [Msun_geo] Note that these is the areal radius of the star in the binary system, which is different than that of an isolated star. The latter is used in the mass-radius diagrams, together with the gravitatonal mass

double precision, public, DIMENSION(3) :: barycenter

Array containing the barycenters of the stars

Read more…
double precision, public, DIMENSION(:), ALLOCATABLE :: baryon_density

1-D array storing the baryon mass density in the fluid frame [kg m^{-3}]

double precision, public, DIMENSION(3) :: center

Array containing the centers of the stars

Read more…
type(timer), public :: construction_timer

Timer that times the construction of the appropriate object

integer, private :: diffstar_identifier = 0

Identifier of the diffstarlorene object

type(C_PTR), private :: diffstar_ptr

C pointer to the \(\texttt{LORENE}\)'s Etdiffrot object N.B. This variable is global. The pointer to the second \(\texttt{LORENE}\) Etdiffrot object will overwrite the first one, and so on. This variable stores the pointer to the last defined \(\texttt{LORENE}\) Etdiffrot 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_diffstar.f90, for example.

double precision, public, DIMENSION(:), ALLOCATABLE :: energy_density

1-D array storing the energy density [kg c^2 m^{-3}]

double precision, public :: energy_density_center

Central energy density

double precision, public :: ent_center

Central enthalpy

character(len=:), public, ALLOCATABLE :: eos

Name of the equation of state (EoS) of star 1

character(len=max_length), public, DIMENSION(1) :: eos_filename

Array of string containing the names of the files containing the \(\mathrm{EOS}\) to be used for each matter object.

integer, public :: eos_id

\(\texttt{SPHINCS_ID}\) identifier for the \(\mathrm{EOS}\) of star 1

integer, private :: eos_loreneid

\(\texttt{LORENE}\) identifier for the EoS

character(len=:), public, ALLOCATABLE :: eos_table

String containing the path to the files containing the table of the \(\mathrm{EOS}\)

double precision, public :: f_isco

Orbital frequency of the Innermost Stable Circular Orbit (ISCO)

procedure, public, POINTER, NOPASS :: finalize_sph_id_ptr

Pointer to a procedure that finalize the \(\mathrm{SPH}\) \(\mathrm{ID}\); for example, correct for the residual ADM linear momentum.

double precision, public, DIMENSION(:), ALLOCATABLE :: g_xx

1-D array storing the xx component of the spatial metric [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: g_xy

1-D array storing the xy component of the spatial metric [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: g_xz

1-D array storing the xz component of the spatial metric [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: g_yy

1-D array storing the yy component of the spatial metric [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: g_yz

1-D array storing the yz component of the spatial metric [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: g_zz

1-D array storing the zz component of the spatial metric [pure number]

double precision, public :: gamma

Single polytrope: polytropic index

double precision, public :: gamma0

Piecewise polytrope: polytropic index

double precision, public :: gamma1

Piecewise polytrope: polytropic index

double precision, public :: gamma2

Piecewise polytrope: polytropic index

double precision, public :: gamma3

Piecewise polytrope: polytropic index

double precision, public :: grv2

Error on the virial identity .

Read more…
double precision, public :: grv3

Error on the virial identity .

Read more…
double precision, public, DIMENSION(:), ALLOCATABLE :: k_xx

1-D array storing the xx component of the extrinsic curvature [c/MSun_geo]

double precision, public, DIMENSION(:), ALLOCATABLE :: k_xy

1-D array storing the xy component of the extrinsic curvature [c/MSun_geo]

double precision, public, DIMENSION(:), ALLOCATABLE :: k_xz

1-D array storing the xz component of the extrinsic curvature [c/MSun_geo]

double precision, public, DIMENSION(:), ALLOCATABLE :: k_yy

1-D array storing the yy component of the extrinsic curvature [c/MSun_geo]

double precision, public, DIMENSION(:), ALLOCATABLE :: k_yz

1-D array storing the yz component of the extrinsic curvature [c/MSun_geo]

double precision, public, DIMENSION(:), ALLOCATABLE :: k_zz

1-D array storing the zz component of the extrinsic curvature [c/MSun_geo]

double precision, public :: kappa

Single polytrope: polytropic constant [pure number]

double precision, public :: kappa0

Piecewise polytrope: polytropic constant [pure number]

double precision, public :: kappa1

Piecewise polytrope: polytropic constant [pure number]

double precision, public :: kappa2

Piecewise polytrope: polytropic constant [pure number]

double precision, public :: kappa3

Piecewise polytrope: polytropic constant [pure number]

double precision, public, DIMENSION(:), ALLOCATABLE :: lapse

1-D array storing the lapse function

double precision, public :: logP1

Piecewise polytrope: Base 10 exponent of the pressure at the first fiducial density (between and )

double precision, public :: logRho0

Piecewise polytrope: Base 10 exponent of the first fiducial density (between and )

double precision, public :: logRho1

Piecewise polytrope: Base 10 exponent of the second fiducial density (between and )

double precision, public :: logRho2

Piecewise polytrope: Base 10 exponent of the third fiducial density (between and )

double precision, public :: mass

Baryonic mass of \(\mathrm{DRS}\)

double precision, public :: mass_grav

Gravitational mass of \(\mathrm{DRS}\)

double precision, public :: nbar_center

Central baryon number density

integer, public :: npeos

Piecewise polytrope: Number of polytropic pieces

double precision, public :: omega_c

Central angular velocity

double precision, public, DIMENSION(:), ALLOCATABLE :: pressure

1-D array storing the pressure

double precision, public :: pressure_center

Central pressure

double precision, public :: r_circ

Circumferential radius

double precision, public :: r_eq

Equatorial radius at

double precision, public :: r_eq_3pi2

Equatorial radius at

double precision, public :: r_eq_pi

Equatorial radius at

double precision, public :: r_eq_pi2

Equatorial radius at

double precision, public :: r_isco

Radius of the Innermost Stable Circular Orbit (ISCO)

double precision, public :: r_mean

Mean radius

double precision, public :: r_pole

Polar radius

double precision, public :: r_ratio

Ratio r_pole/r_eq

double precision, public, DIMENSION(6) :: radii
double precision, public :: redshift_eqb

Backward redshift factor at equator

double precision, public :: redshift_eqf

Forward redshift factor at equator

double precision, public :: redshift_pole

Redshift factor at North pole

double precision, public :: rho_center

Central baryon mass density

double precision, public, DIMENSION(:), ALLOCATABLE :: shift_x

1-D array storing the x component of the shift vector [c]

double precision, public, DIMENSION(:), ALLOCATABLE :: shift_y

1-D array storing the y component of the shift vector [c]

double precision, public, DIMENSION(:), ALLOCATABLE :: shift_z

1-D array storing the z component of the shift vector [c]

double precision, public :: specific_angular_momentum_isco

Specific angular momentum of a test particle at the Innermost Stable Circular Orbit (ISCO)

double precision, public, DIMENSION(:), ALLOCATABLE :: specific_energy

1-D array storing the specific internal energy [c^2]

double precision, public :: specific_energy_center

Central specific energy

double precision, public :: specific_energy_isco

Specific energy of a test particle at the Innermost Stable Circular Orbit (ISCO)

double precision, public :: surface_area

Surface area

type(surface), public, DIMENSION(:), ALLOCATABLE :: surfaces

Array containing, for each matter object, a set of coordinates of some points modelling the surfaces.

Read more…
type(tabu_eos), public, DIMENSION(:), ALLOCATABLE :: tab_eos

Array containing a tabulated \(\mathrm{EOS}\) for each matter object, when used.

Read more…
double precision, public :: tsw

Ratio between the rotational kinetic and gravitatial potential energy .

Read more…
double precision, public, DIMENSION(:), ALLOCATABLE :: v_euler_x

1-D array storing the x component of the fluid 3-velocity with respect to

double precision, public, DIMENSION(:), ALLOCATABLE :: v_euler_y

1-D array storing the y component of the fluid 3-velocity with respect to

double precision, public, DIMENSION(:), ALLOCATABLE :: v_euler_z

1-D array storing the z component of the fluid 3-velocity with respect to

Finalizations Procedures

final :: destruct_diffstarlorene

Finalizer (Destructor) of a diffstarlorene object

Type-Bound Procedures

procedure , public :: allocate_diffstar_memory Interface

Allocates memory for the diffstarlorene member arrays

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 , public :: construct_drs Interface

Constructs the \(\texttt{LORENE}\) Etdiffrot object

procedure , public :: deallocate_diffstar_memory Interface

Deallocates memory for the diffstarlorene member arrays

procedure , public :: derived_type_constructor => construct_diffstarlorene Interface
procedure , public :: destruct_drs Interface

Destructs the \(\texttt{LORENE}\) Etdiffrot object

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 , NOPASS :: finalize Interface

Corrects the \(\mathrm{SPH}\) \(\mathrm{ID}\) so that the linear momentum is zero

procedure , public :: get_angular_momentum Interface

Returns angular_momentum

procedure , public :: get_area_radius Interface

Returns area_radius

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_diffstar_identifier Interface

Returns diffstar_identifier]

procedure , public :: get_energy_density_center Interface

Returns energy_density_center

procedure , public :: get_ent_center Interface

Returns ent_center

procedure , public :: get_eos_id => get_eos_loreneid Interface

Returns the \(\texttt{LORENE}\) identifier for the EOS

procedure , public :: get_eos_loreneid Interface

Returns eos_loreneid

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_f_isco Interface

Returns f_isco

procedure , public :: get_fa => get_field_array Interface

Access the diffstarlorene-member arrays

generic, public :: get_field => get_fa, get_fv

GENERIC PROCEDURE, overloded to access the diffstarlorene-member variables as arrays and as values

procedure , public :: get_fv => get_field_value Interface

Access the components of the diffstarlorene-member arrays

procedure , public :: get_gamma Interface

Returns gamma

procedure , public :: get_gamma0 Interface

Returns gamma0

procedure , public :: get_gamma1 Interface

Returns gamma1

procedure , public :: get_gamma2 Interface

Returns gamma2

procedure , public :: get_gamma3 Interface

Returns gamma3

procedure , public :: get_grv2 Interface

Returns grv2

procedure , public :: get_grv3 Interface

Returns grv3

procedure , public :: get_kappa Interface

Returns kappa

procedure , public :: get_kappa0 Interface

Returns kappa0

procedure , public :: get_kappa1 Interface

Returns kappa1

procedure , public :: get_kappa2 Interface

Returns kappa2

procedure , public :: get_kappa3 Interface

Returns kappa3

procedure , public :: get_logP1 Interface

Returns logP1

procedure , public :: get_logRho0 Interface

Returns logRho0

procedure , public :: get_logRho1 Interface

Returns logRho1

procedure , public :: get_logRho2 Interface

Returns logRho2

procedure , public :: get_mass_grav Interface

Returns mass_grav

procedure , public , NON_OVERRIDABLE :: get_n_matter Interface

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

procedure , public :: get_nbar_center Interface

Returns nbar_center

procedure , public :: get_npeos Interface

Returns npeos

procedure , public :: get_omega_c Interface

Returns omega_c

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

Returns pressure_center

Read more…
procedure , public :: get_r_circ Interface

Returns r_circ

procedure , public :: get_r_eq Interface

Returns r_eq

procedure , public :: get_r_eq_3pi2 Interface

Returns r_eq_3pi2

procedure , public :: get_r_eq_pi Interface

Returns r_eq_pi

procedure , public :: get_r_eq_pi2 Interface

Returns r_eq_pi2

procedure , public :: get_r_isco Interface

Returns r_isco

procedure , public :: get_r_mean Interface

Returns r_mean

procedure , public :: get_r_pole Interface

Returns r_pole

procedure , public :: get_r_ratio Interface

Returns r_ratio

procedure , public :: get_rho_center Interface

Returns rho_center

procedure , public :: get_specific_angular_momentum_isco Interface

Returns specific_angular_momentum_isco

procedure , public :: get_specific_energy_center Interface

Returns specific_energy_center

procedure , public :: get_specific_energy_isco Interface

Returns specific_energy_isco

procedure , public :: get_surface_area Interface

Returns surface_area

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 :: get_tsw Interface

Returns tsw

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 , public :: initialize_id => nothing Interface
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 :: nothing Interface

Procedure that does nothing. It is used to instantiate a deferred idbase procedure which is not needed in TYPE diffstarlorene. It also serves as a placeholder in case the idbase procedure will be needed in the future.

procedure , public :: print_diffstar_properties Interface

Prints the parameters of the DRS to the standard output

procedure , public :: print_summary => print_summary_drs Interface
procedure , public :: read_diffstar_properties Interface

Imports the parameters of the DRS from \(\texttt{LORENE}\)

procedure , public :: read_id_full Interface
procedure , public :: read_id_hydro Interface
procedure , public :: read_id_int Interface

Stores the ID in the diffstarlorene member arrays

procedure , public :: read_id_k Interface
procedure , public :: read_id_mass_b Interface
procedure , public :: read_id_particles Interface
procedure , public :: read_id_spacetime Interface
procedure , public :: read_mass_density => read_drslorene_mass_density Interface

Returns the \(\texttt{LORENE}\)'s mass density at the given point

procedure , public :: read_pressure => read_drslorene_pressure Interface

Returns the \(\texttt{LORENE}\)'s pressure at the desired point

procedure , public :: read_spatial_metric Interface

Returns the \(\texttt{LORENE}\)'s conformally flat spatial ADM metric

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 , public :: return_eos_parameters => get_eos_parameters Interface
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 , public :: test_position => is_hydro_positive Interface

Returns .TRUE. if the energy density or the specific energy or the pressure are positive