Loading [MathJax]/jax/output/HTML-CSS/jax.js

bns_fuka Module

This module contains the definition of TYPE bnsfuka, and the SUBROUTINES that bind to the methods of FUKA's procedures

FUKA official site



Uses

  • module~~bns_fuka~~UsesGraph module~bns_fuka bns_fuka iso_c_binding iso_c_binding module~bns_fuka->iso_c_binding mesh_refinement mesh_refinement module~bns_fuka->mesh_refinement module~bns_base bns_base module~bns_fuka->module~bns_base module~id_base id_base module~bns_fuka->module~id_base module~utility utility module~bns_fuka->module~utility timing timing module~bns_fuka->timing module~bns_base->module~id_base module~bns_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~~bns_fuka~~UsedByGraph module~bns_fuka bns_fuka module~access~5 access module~access~5->module~bns_fuka module~constructor~3 constructor module~constructor~3->module~bns_fuka module~interpolate interpolate module~interpolate->module~bns_fuka module~io~6 io module~io~6->module~bns_fuka module~memory~4 memory module~memory~4->module~bns_fuka module~properties~2 properties module~properties~2->module~bns_fuka 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 program~convergence_test convergence_test program~convergence_test->module~sphincs_id_fuka program~convergence_test->module~sphincs_id_full program~sphincs_id sphincs_id program~sphincs_id->module~sphincs_id_fuka program~sphincs_id->module~sphincs_id_full

Contents


Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: id$eulvelx = 23
integer, public, parameter :: id$eulvely = 24
integer, public, parameter :: id$eulvelz = 25
integer, public, parameter :: id$gxx = 8
integer, public, parameter :: id$gxy = 9
integer, public, parameter :: id$gxz = 10
integer, public, parameter :: id$gyy = 11
integer, public, parameter :: id$gyz = 12
integer, public, parameter :: id$gzz = 13
integer, public, parameter :: id$kxx = 14
integer, public, parameter :: id$kxy = 15
integer, public, parameter :: id$kxz = 16
integer, public, parameter :: id$kyy = 17
integer, public, parameter :: id$kyz = 18
integer, public, parameter :: id$kzz = 19
integer, public, parameter :: id$lapse = 4
integer, public, parameter :: id$massdensity = 20
integer, public, parameter :: id$pressure = 22
integer, public, parameter :: id$shiftx = 5
integer, public, parameter :: id$shifty = 6
integer, public, parameter :: id$shiftz = 7
integer, public, parameter :: id$specificenergy = 21
integer, public, parameter :: id$x = 1
integer, public, parameter :: id$y = 2
integer, public, parameter :: id$z = 3
integer, public, parameter :: max$tpo = 20

Maximum number of tpo objects that can be constructed using a bnsfuka object

integer, public, parameter :: n_fields_fuka = 25

Interfaces

interface

  • public module subroutine allocate_bnsfuka_memory(this, d)

    Allocates allocatable arrays member of a bnsfuka object

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    integer, intent(in) :: d

    Dimension of the arrays

interface

  • public module subroutine construct_binary(this, fukafile)

    Interface of the subroutine that constructs the FUKA Bin_NS object

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

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

    FUKA binary file containing the spectral BNS ID

interface

  • private function construct_bns_fuka(fuka_file) result(optr) bind(C, NAME= "construct_bns_fuka")

    Interface to the FUKA method of class Bin_NS with the same name, that constructs the FUKA Bin_NS object

    FT


    Arguments

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

    C string of the name of the FUKA binary file storing the spectral BNS ID

    Return Value type(C_PTR)

    C pointer pointing to the constructed FUKA BNS_export object

interface

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

    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(bnsfuka), intent(out) :: derived_type

    Constructed bnsfuka object

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

    FUKA binary file containing the spectral BNS ID

    character(len=*), intent(in), optional, DIMENSION(:) :: eos_filenames

    Array of strings containing the names of the files containing the EOS to be used for each matter object. If not PRESENT, information from the file filename is used

interface

  • public module subroutine deallocate_bnsfuka_memory(this)

    Deallocates allocatable arrays member of a bnsfuka object

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

interface

  • public module subroutine destruct_binary(this)

    Destructs a FUKA Bin_NS object

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

interface

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

    Interface to the FUKA method of class Bin_NS with the same name, that destructs the FUKA Bin_NS object

    FT


    Arguments

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

    C pointer pointing to the FUKA Bin_NS object to destruct

interface

  • public module subroutine destruct_bnsfuka(this)

    Destruct a bnsfuka object

    Arguments

    Type IntentOptional Attributes Name
    type(bnsfuka), intent(inout) :: this

    bnsfuka object to be destructed

interface

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

    Post-process the SPH 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

  • public module function get_bns_identifier(this)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    Return Value double precision

interface

  • public module function get_eos1_fukaid(this)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    Return Value integer

interface

  • public module function get_eos2_fukaid(this)

    Arguments

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

    bnsfuka 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(bnsfuka), intent(in) :: this

    bnsfuka 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 EOS for the i_matter-th matter object

interface

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

    Returns the bnsfuka member arrays named field

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

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

    Name of the desired bnsfuka member array

    Return Value double precision, DIMENSION(:), ALLOCATABLE

    Desired bnsfuka member array

interface

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

    Returns the component n of the bnsfuka member arrays named field

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

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

    Name of the desired bnsfuka member array

    integer, intent(in) :: n

    Component of the desired bnsfuka member array

    Return Value double precision

    Component n of the desired bnsfuka member array

interface

  • private subroutine get_fuka_id(optr, x, y, z, lapse, shift_x, shift_y, shift_z, psi4, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz, mass_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the full FUKA ID at the specified point. That is, read_fukas 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


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    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) :: psi4
    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) :: mass_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_fuka_id_hydro(optr, x, y, z, mass_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the hydro fields from FUKA, 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


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    real(kind=C_DOUBLE), intent(out) :: mass_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_fuka_id_k(optr, x, y, z, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the components of the extrinsic curvature [c/km] from FUKA, at the specified point

    FT


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    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 subroutine get_fuka_id_mass_b(optr, x, y, z, psi4, mass_density, gamma_euler) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the hydro fields and the metric fields from FUKA, 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


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

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

    gxx=gyy=gzz at x,y,z

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

    Baryon mass density at x,y,z

    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 x,y,z

interface

  • private subroutine get_fuka_id_params(optr, angular_vel, distance, mass1, mass2, massg1, massg2, radius1_min, radius1_max, radius2_min, radius2_max, adm_mass, komar_mass, adm_linear_momentum_x, adm_linear_momentum_y, adm_linear_momentum_z, adm_angular_momentum_z, COMx, COMy, COMz, area_radius1, center1_x, area_radius2, center2_x, ent_center1, rho_center1, energy_density_center1, ent_center2, rho_center2, energy_density_center2, eos_type_1, eos_file_1, eos_type_2, eos_file_2, gamma, kappa, n_poly, gamma0, gamma1, gamma2, gamma3, kappa0, kappa1, kappa2, kappa3, logP1, logRho0, logRho1, logRho2) bind(C, NAME= "0")

    FT


    Arguments

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

    C pointer pointing to a FUKA bns_export object

    real(kind=C_DOUBLE), intent(out) :: angular_vel
    real(kind=C_DOUBLE), intent(out) :: distance
    real(kind=C_DOUBLE), intent(out) :: mass1
    real(kind=C_DOUBLE), intent(out) :: mass2
    real(kind=C_DOUBLE), intent(out) :: massg1
    real(kind=C_DOUBLE), intent(out) :: massg2
    real(kind=C_DOUBLE), intent(out) :: radius1_min
    real(kind=C_DOUBLE), intent(out) :: radius1_max
    real(kind=C_DOUBLE), intent(out) :: radius2_min
    real(kind=C_DOUBLE), intent(out) :: radius2_max
    real(kind=C_DOUBLE), intent(out) :: adm_mass
    real(kind=C_DOUBLE), intent(out) :: komar_mass
    real(kind=C_DOUBLE), intent(out) :: adm_linear_momentum_x
    real(kind=C_DOUBLE), intent(out) :: adm_linear_momentum_y
    real(kind=C_DOUBLE), intent(out) :: adm_linear_momentum_z
    real(kind=C_DOUBLE), intent(out) :: adm_angular_momentum_z
    real(kind=C_DOUBLE), intent(out) :: COMx
    real(kind=C_DOUBLE), intent(out) :: COMy
    real(kind=C_DOUBLE), intent(out) :: COMz
    real(kind=C_DOUBLE), intent(out) :: area_radius1
    real(kind=C_DOUBLE), intent(out) :: center1_x
    real(kind=C_DOUBLE), intent(out) :: area_radius2
    real(kind=C_DOUBLE), intent(out) :: center2_x
    real(kind=C_DOUBLE), intent(out) :: ent_center1
    real(kind=C_DOUBLE), intent(out) :: rho_center1
    real(kind=C_DOUBLE), intent(out) :: energy_density_center1
    real(kind=C_DOUBLE), intent(out) :: ent_center2
    real(kind=C_DOUBLE), intent(out) :: rho_center2
    real(kind=C_DOUBLE), intent(out) :: energy_density_center2
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(100) :: eos_type_1
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(100) :: eos_file_1
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(100) :: eos_type_2
    character(kind=C_CHAR, len=1), intent(out), DIMENSION(100) :: eos_file_2
    real(kind=C_DOUBLE), intent(out) :: gamma
    real(kind=C_DOUBLE), intent(out) :: kappa
    integer(kind=C_INT), intent(out) :: n_poly
    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

interface

  • private subroutine get_fuka_id_particles(optr, x, y, z, lapse, shift_x, shift_y, shift_z, psi4, mass_density, specific_energy, pressure, v_euler_x, v_euler_y, v_euler_z) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the hydro fields and the metric fields * from FUKA, 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


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    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) :: psi4
    real(kind=C_DOUBLE), intent(out) :: mass_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_fuka_id_spacetime(optr, x, y, z, lapse, shift_x, shift_y, shift_z, psi4, k_xx, k_xy, k_xz, k_yy, k_yz, k_zz) bind(C, NAME= "0")

    Interface to the FUKA method of class Bin_NS with the same name, that reads the metric fields and the components of the extrinsic curvature [c/km] from FUKA, at the specified point

    FT


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    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) :: psi4
    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_fuka_mass_density(optr, x, y, z) result(res) bind(C, NAME= "get_fuka_mass_density")

    FT


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value real(kind=C_DOUBLE)

    Baryon mass density [kgm3] at the desired point (x,y,z)

interface

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

    Interface to the FUKA method of class bns_export with the same name, that returns the pressure [kgc2m3] from LORENE, at the specified point

    FT 27.05.2022


    Arguments

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

    C pointer pointing to a LORENE Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value real(kind=C_DOUBLE)

    Pressure [kgc2m3] at the desired point (x,y,z)

interface

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

    FT


    Arguments

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

    C pointer pointing to a FUKA Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value real(kind=C_DOUBLE)

    Spatial metric component gxx=gyy=gzz at the point (x,y,z)

interface

  • public recursive module subroutine initialize_id_bnsfuka(this, flag, switch)

    Initialize the FUKA BNS ID.

    • If flag= [[utility:flag$sph]], set up the lattices around the stars for the BNS produced with FUKA.
    • If flag= [[utility:flag$tpo]], allocate memory for the hydro grid functions.
    • If flag > 0, assign its value to l_curr.
    • If [[utility:flag$tpo]] < flag < 0, assign its value to tpo_curr.

    Arguments

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

  • public module subroutine interpolate_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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 interpolate_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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 function interpolate_fuka_mass_density(this, x, y, z) result(res)

    Returns the FUKA baryon mass density at a point (x,y,z)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value double precision

    Baryon mass density at (x,y,z)

interface

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

    Returns the FUKA pressure at a point (x,y,z)

    Arguments

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

    bnslorene object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value double precision

    Pressure at (x,y,z)

interface

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

    Returns the FUKA conformally flat spatial metric component gxx=gyy=gzz at a point (x,y,z)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value real(kind=C_DOUBLE)

    gxx=gyy=gzz at (x,y,z)

interface

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

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

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value logical

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

interface

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

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

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value logical

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

interface

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

    FT


    Arguments

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

    C pointer pointing to a LORENE Bin_NS object

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    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 positve, 0 otherwise

interface

  • public module subroutine print_bns_properties(this)

    Prints the BNS parameters to the standard output

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

interface

  • public module subroutine print_summary_bnsfuka(this, filename)

    Prints a summary of the physical properties of the BNS produced by FUKA 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(bnsfuka), intent(in) :: this
    character(len=*), intent(inout), optional :: filename

    Name of the formatted file to print the summary to

interface

  • public module subroutine read_bns_properties(this)

    Imports the BNS parameters from FUKA

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

interface

  • public module subroutine read_fuka_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 bnsfuka-member arrays with the same shape as the bnsfuka member arrays

    Arguments

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

    bnsfuka 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_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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_fuka_id_member(this, n, x, y, z)

    Stores the ID in the bnsfuka member arrays

    Arguments

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

    bnsfuka 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_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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_fuka_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(bnsfuka), intent(inout) :: this

    bnsfuka 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_fuka_mass_density(this, x, y, z) result(res)

    Returns the FUKA baryon mass density at a point (x,y,z)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value double precision

    Baryon mass density at (x,y,z)

interface

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

    Returns the FUKA pressure at a point (x,y,z)

    Arguments

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

    bnslorene object which this PROCEDURE is a member of

    double precision, intent(in), VALUE :: x

    x coordinate of the desired point

    double precision, intent(in), VALUE :: y

    y coordinate of the desired point

    double precision, intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value double precision

    Pressure at (x,y,z)

interface

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

    Returns the FUKA conformally flat spatial metric component gxx=gyy=gzz at a point (x,y,z)

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    real(kind=C_DOUBLE), intent(in), VALUE :: x

    x coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: y

    y coordinate of the desired point

    real(kind=C_DOUBLE), intent(in), VALUE :: z

    z coordinate of the desired point

    Return Value real(kind=C_DOUBLE)

    gxx=gyy=gzz at (x,y,z)

interface

  • public module subroutine run_kadath_reader(this, mpi_ranks, nx, ny, nz, xmin, xmax, ymin, ymax, zmin, zmax, coords, 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, mass_density, specific_energy, pressure, v_eul_x, v_eul_y, v_eul_z, filename)

    Calls the MPI-parallelized vsion of the function KadathExportBNS from Kadath

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of

    integer, intent(in) :: mpi_ranks

    Number of MPI ranks

    integer, intent(in) :: nx

    Number of lattice points in the x direction

    integer, intent(in) :: ny

    Number of lattice points in the y direction

    integer, intent(in) :: nz

    Number of lattice points in the z direction

    double precision, intent(in) :: xmin

    Minimum value for x over the lattice

    double precision, intent(in) :: xmax

    Maximum value for x over the lattice

    double precision, intent(in) :: ymin

    Minimum value for x over the lattice

    double precision, intent(in) :: ymax

    Maximum value for x over the lattice

    double precision, intent(in) :: zmin

    Minimum value for x over the lattice

    double precision, intent(in) :: zmax

    Maximum value for x over the lattice

    double precision, intent(inout), DIMENSION(nx,ny,nz,3) :: coords

    Array containing the ID on a lattice. First three indices run over the lattice's dimensions, the fourth one runs ovr the fields

    double precision, intent(inout), DIMENSION(nx,ny,nz) :: lapse
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: shift_x
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: shift_y
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: shift_z
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_xx
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_xy
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_xz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_yy
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_yz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: g_zz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_xx
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_xy
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_xz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_yy
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_yz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: k_zz
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: mass_density
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: specific_energy
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: pressure
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: v_eul_x
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: v_eul_y
    double precision, intent(inout), DIMENSION(nx,ny,nz) :: v_eul_z
    character(len=*), intent(in) :: filename

    Path to the ID file output by FUKA, as given in the parameter fe sphincs_id_parameters.dat

interface

  • public module subroutine set_up_lattices_around_stars(this)

    Sets up two fine lattice, one around each star, to be able to interpolate the ID at the particle positions. It calls run_kadath_reader

    Arguments

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

    bnsfuka object which this PROCEDURE is a member of


Derived Types

type, public, extends(bnsbase) ::  bnsfuka

TYPE representing a binary system of neutron stars (BNS) produced with FUKA

Components

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

ADM mass of the system [M]

double precision, public :: angular_momentum_x = 0.0D0

x component of the angular momentum of the BNS system

double precision, public :: angular_momentum_y = 0.0D0

y component of the angular momentum of the BNS system

double precision, public :: angular_momentum_z = 0.0D0

z component of the angular momentum of the BNS system

double precision, public :: angular_vel

Angular velocity [rad/s]

double precision, public :: area_radius1

Areal (or circumferential) radius of star 1 [L] 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 [L] 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 [L]

double precision, public :: barycenter2_x

Barycenter of star 2 [L]

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

Array containing the barycenters of the stars

Read more…
integer, private :: bns_identifier = 0

Identifier of the bnsfuka object

type(C_PTR), private :: bns_ptr

C pointer to the FUKA's object storing the BNS \id| N.B. This variable is global. The pointer to the second FUKA Bin_NS object will overwrite the first one, and so on. This variable stores the pointer to the last defined FUKA Bin_NS object. That's why it is not freed in the destructor of a bns object. Presently, it has to be freed by the user at the end of the PROGRAM. See the last part of the PROGRAM in sphincs_id.f90, for example.

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) [L]

double precision, public :: center2_x

Stellar center of star 2 (origin of the LORENE chart centered on star 2) [L]

type(timer), public :: construction_timer

Timer that times the construction of the appropriate object

double precision, public :: distance

Distance d between the points of maximum baryon density [km]

double precision, public :: distance_com

Distance between the centers of mass [L(=1.47662503825040km)]

double precision, public :: energy_density_center1

Central energy density for star 1 [Mc2L3]

double precision, public :: energy_density_center2

Central energy density for star 2 [Mc2L3]

double precision, public :: ent_center1

Central enthalpy for star 1 [c2]

double precision, public :: ent_center2

Central enthalpy for star 2 [c2]

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

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

integer, private :: eos1_fukaid

FUKA identifier for the EOS of star 1

integer, public :: eos1_id

SPHINCS_ID identifier for the EOS of star 1

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

Name of the equation of state (EOS) of star 2

integer, private :: eos2_fukaid

FUKA identifier for the EOS of star 2

integer, public :: eos2_id

SPHINCS_ID identifier for the EOS of star 2

character(len=:), private, ALLOCATABLE :: eos_file_1

String containing the name of the EOS file used by FUKA of star 1

character(len=:), private, ALLOCATABLE :: eos_file_2

String containing the name of the EOS file used by FUKA of star 2

character(len=max_length), public, DIMENSION(2) :: eos_filenames

Array of strings containing the names of the files containing the 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 EOS for star 1.

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

String containing the path to the files containing the table of the EOS for star 2.

character(len=:), private, ALLOCATABLE :: eos_type_1

String containing the type of the EOS of star 1

character(len=:), private, ALLOCATABLE :: eos_type_2

String containing the type of the EOS of star 2

character(len=:), private, ALLOCATABLE :: filename

String containing the name of the '.info' ID file output by FUKA

procedure, public, POINTER, NOPASS :: finalize_sph_id_ptr

Pointer to a procedure that finalize the SPH 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 γ0 for star 1

double precision, public :: gamma0_2

Piecewise polytrope: polytropic index γ0 for star 2

double precision, public :: gamma1_1

Piecewise polytrope: polytropic index γ1 for star 1

double precision, public :: gamma1_2

Piecewise polytrope: polytropic index γ1 for star 2

double precision, public :: gamma2_1

Piecewise polytrope: polytropic index γ2 for star 1

double precision, public :: gamma2_2

Piecewise polytrope: polytropic index γ2 for star 2

double precision, public :: gamma3_1

Piecewise polytrope: polytropic index γ3 for star 1

double precision, public :: gamma3_2

Piecewise polytrope: polytropic index γ3 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 κ0 for star 1 [pure number]

double precision, public :: kappa0_2

Piecewise polytrope: polytropic constant κ0 for star 2 [pure number]

double precision, public :: kappa1_1

Piecewise polytrope: polytropic constant κ1 for star 1 [pure number]

double precision, public :: kappa1_2

Piecewise polytrope: polytropic constant κ1 for star 2 [pure number]

double precision, public :: kappa2_1

Piecewise polytrope: polytropic constant κ2 for star 1 [pure number]

double precision, public :: kappa2_2

Piecewise polytrope: polytropic constant κ2 for star 2 [pure number]

double precision, public :: kappa3_1

Piecewise polytrope: polytropic constant κ3 for star 1 [pure number]

double precision, public :: kappa3_2

Piecewise polytrope: polytropic constant κ3 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, private :: komar_mass

Komar mass of the binary system [M]

integer, public :: l_curr

Variable set to the current refinement level to consider, when reading the hydro ID on the refined mesh in computing the constraints

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

1-D array storing the lapse function

double precision, public :: linear_momentum_x = 0.0D0

x component of the ADM linear momentum of the system

double precision, public :: linear_momentum_y = 0.0D0

y component of the ADM linear momentum of the system

double precision, public :: linear_momentum_z = 0.0D0

z 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 γ0 and γ1) [dyne/cm2] for star 1

double precision, public :: logP1_2

Piecewise polytrope: Base 10 exponent of the pressure at the first fiducial density (between γ0 and γ1) [dyne/cm2] for star 2

double precision, public :: logRho0_1

Piecewise polytrope: Base 10 exponent of the first fiducial density (between γ0 and γ1) [g/cm3] for star 1

double precision, public :: logRho0_2

Piecewise polytrope: Base 10 exponent of the second fiducial density (between γ1 and γ2) [g/cm3] for star 2

double precision, public :: logRho1_1

Piecewise polytrope: Base 10 exponent of the second fiducial density (between γ1 and γ2) [g/cm3] for star 1

double precision, public :: logRho1_2

Piecewise polytrope: Base 10 exponent of the second fiducial density (between γ1 and γ2) [g/cm3] for star 2

double precision, public :: logRho2_1

Piecewise polytrope: Base 10 exponent of the third fiducial density (between γ2 and γ3) [g/cm3] for star 1

double precision, public :: logRho2_2

Piecewise polytrope: Base 10 exponent of the third fiducial density (between γ2 and γ3) [g/cm3] for star 2

double precision, public :: mOmega

mOmega= ( angular_vel[km1] ) × ( mass_grav1[km] + mass_grav2[km] ) [pure number]

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

Array containing the baryonic masses [M]

double precision, public :: mass1

Baryonic mass of star 1 [M]

double precision, public :: mass2

Baryonic mass of star 2 [M]

type(grid_function_scalar), public, DIMENSION(max$tpo) :: mass_density

1-D array storing the baryon mass density in the fluid frame

double precision, public, DIMENSION(2) :: mass_grav

Array containing the gravitational masses [M]

double precision, public :: mass_grav1

Gravitational mass of star 1 [M]

double precision, public :: mass_grav2

Gravitational mass of star 2 [M]

double precision, public :: nbar_center1

Central baryon number density for star 1 [L3]

double precision, public :: nbar_center2

Central baryon number density for star 2 [L3]

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

integer, private :: nx_lattice = 400

Number of points for each lattice around the stars, along the x axis

integer, private :: ny_lattice = 400

Number of points for each lattice around the stars, along the y axis

integer, private :: nz_lattice = 400

Number of points for each lattice around the stars, along the z axis

type(grid_function_scalar), public, DIMENSION(max$tpo) :: pressure

1-D array storing the pressure

double precision, public :: pressure_center1

Central pressure for star 1 [Mc2L3]

double precision, public :: pressure_center2

Central pressure for star 2 [Mc2L3]

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 [L]

double precision, public :: radius1_x_opp

Radius of star 1, in the x direction, opposite to companion [L]

double precision, public :: radius1_y

Radius of star 1, in the y direction [L]

double precision, public :: radius1_z

Radius of star 1, in the z direction [L]

double precision, public :: radius2_x_comp

Radius of star 2, in the x direction, towards the companion [L]

double precision, public :: radius2_x_opp

Radius of star 2, in the x direction, opposite to companion [L]

double precision, public :: radius2_y

Radius of star 2, in the y direction [L]

double precision, public :: radius2_z

Radius of star 2, in the z direction [L]

double precision, public :: rho_center1

Central baryon mass density for star 1 [ML3]

double precision, public :: rho_center2

Central baryon mass density for star 2 [ML3]

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]

type(grid_function_scalar), public, DIMENSION(max$tpo) :: specific_energy

1-D array storing the specific internal energy

double precision, public :: specific_energy_center1

Central specific energy for star 1 [c2]

double precision, public :: specific_energy_center2

Central specific energy for star 2 [c2]

type(id_lattice), private, DIMENSION(2) :: star_lattice

Array storing two id_lattice objects, one per star

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 [M] tmerger=5256d4M1gM2g(M1g+M2g) 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 EOS for each matter object, when used.

Read more…
integer, private, DIMENSION(max$tpo) :: tpo$log = 0

Variable that stores the identifiers for the tpo objects constructed using this bnsfuka object

integer, public :: tpo_curr = 0

Variable set to the current tpo object to consider, when reading the hydro ID on the refined mesh in computing the constraints

type(grid_function_scalar), public, DIMENSION(max$tpo) :: v_euler_x

1-D array storing the x component of the fluid 3-velocity with respect to the Eulerian observer [c]

type(grid_function_scalar), public, DIMENSION(max$tpo) :: v_euler_y

1-D array storing the y component of the fluid 3-velocity with respect to the Eulerian observer [c]

type(grid_function_scalar), public, DIMENSION(max$tpo) :: v_euler_z

1-D array storing the z component of the fluid 3-velocity with respect to the Eulerian observer [c]

Finalizations Procedures

final :: destruct_bnsfuka

Finalizer (Destructor) of a bnsfuka object

Type-Bound Procedures

procedure , public :: allocate_bnsfuka_memory Interface

Allocates memory for the bnsfuka member arrays

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

Constructs the FUKA bns_export object

procedure , public :: deallocate_bnsfuka_memory Interface

Deallocates memory for the bnsfuka member arrays

procedure , public :: derived_type_constructor => construct_bnsfuka Interface
procedure , public :: destruct_binary Interface

Destructs the FUKA bns_export object

procedure , public :: estimate_lengthscale_field Interface

Estimate typical length scales, one per each matter object, by computing ff, where f 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 SPH ID so that the linear ADM momentum is zero

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

Returns bns_identifier

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

Returns eos1_fukaid

procedure , public :: get_eos1_id => get_eos1_fukaid Interface

Returns the FUKA identifier for the EOS of star 1

procedure , public :: get_eos2 Interface

Returns eos2

procedure , public :: get_eos2_fukaid Interface

Returns eos2_fukaid

procedure , public :: get_eos2_id => get_eos2_fukaid Interface

Returns the FUKA identifier for the EOS 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_fa => get_field_array Interface

Access the bnsfuka-member arrays

generic, public :: get_field => get_fa, get_fv

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

procedure , public :: get_fv => get_field_value Interface

Access the components of the bnsfuka-member arrays

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 α=1, 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 xmin,xmax,ymin,ymax,zmin,zmax

procedure , public , NON_OVERRIDABLE :: get_zero_shift Interface

Returns zero_shift, the LOGICAL variable that determines if the shift βi=0

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 => initialize_id_bnsfuka 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 :: interpolate_fuka_spatial_metric Interface
procedure , public :: is_hydro_positive Interface

Returns 1 if the energy density or the specific energy or the pressure are negative

procedure , public :: print_bns_properties Interface

Prints the parameters of the BNS to the standard output

procedure , public :: print_summary => print_summary_bnsbase Interface
procedure , public :: print_summary_derived => print_summary_bnsfuka Interface
procedure , public :: read_bns_properties Interface

Imports the parameters of the BNS from FUKA

procedure , public :: read_fuka_id_mass_b Interface
procedure , public :: read_fuka_id_member Interface

Stores the ID in the bnsfuka member arrays

procedure , public :: read_fuka_id_particles Interface
procedure , public :: read_fuka_mass_density Interface

Returns the FUKA's mass density at the given point

procedure , public :: read_fuka_pressure Interface

Returns the FUKA's pressure at the desired point

procedure , public :: read_fuka_spatial_metric Interface

Returns the FUKA's conformally flat spatial ADM metric

procedure , public :: read_id_full => read_fuka_id_full Interface
procedure , public :: read_id_hydro => read_fuka_id_hydro Interface
procedure , public :: read_id_k => read_fuka_id_k Interface
procedure , public :: read_id_mass_b => interpolate_fuka_id_mass_b Interface
procedure , public :: read_id_particles => interpolate_fuka_id_particles Interface
procedure , public :: read_id_spacetime => read_fuka_id_spacetime Interface
procedure , public :: read_mass_density => interpolate_fuka_mass_density Interface
procedure , public :: read_pressure => interpolate_fuka_pressure Interface
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 :: run_kadath_reader Interface

Calls the MPI-parallelized version of the function KadathExportBNS within Kadath

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 α=1, i.e., if the geodesic gauge is to be used

procedure , public :: set_up_lattices_around_stars Interface

Sets up two fine lattice, one around each star, to be able to interpolate the ID at the particle positions. It calls run_kadath_reader

Read more…
procedure , public , NON_OVERRIDABLE :: set_zero_shift Interface

Sets zero_shift, the LOGICAL variable that determines if the shift βi=0

procedure , public :: test_position => is_hydro_positive_interpolation Interface

type, public ::  id_lattice

Type representing the ID on a 3D lattice

Components

Type Visibility Attributes Name Initial
double precision, public, DIMENSION(:,:,:,:), ALLOCATABLE :: coords
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_xx
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_xy
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_xz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_yy
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_yz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: g_zz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_xx
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_xy
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_xz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_yy
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_yz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: k_zz
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: lapse
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: mass_density
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: pressure
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: shift_x
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: shift_y
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: shift_z
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: specific_energy
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: v_eul_x
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: v_eul_y
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: v_eul_z

Type-Bound Procedures

procedure , public :: allocate_lattice_memory Subroutine

Allocates memory for all the member arrays

procedure , public :: deallocate_lattice_memory Subroutine

Deallocates memory for all the member arrays


Subroutines

public subroutine allocate_lattice_memory(this, nx, ny, nz)

Arguments

Type IntentOptional Attributes Name
class(id_lattice), intent(inout) :: this
integer, intent(in) :: nx
integer, intent(in) :: ny
integer, intent(in) :: nz

public subroutine deallocate_lattice_memory(this)

Arguments

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