read Submodule

Implementation of the methods of TYPE bns that import BNS data using \(\texttt{LORENE}\)

FT 25.10.2021



Uses

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

Contents


Module Procedures

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

Return .FALSE. if the energy density is nonpositive or if the specific energy is nonpositive, or if the pressure is nonpositive at the specified point; .TRUE. otherwise

Read more…

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

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

Returns the \(\texttt{LORENE}\) mass density at the point given as argument, in units of .

Read more…

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

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

Returns the \(\texttt{LORENE}\) pressure at the point given as argument, in units of .

Read more…

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

module procedure read_id_full 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

Read more…

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

module procedure read_id_hydro 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

Read more…

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

module procedure read_id_int module subroutine read_id_int(this, n, x, y, z)

Stores the ID in the diffstarlorene member arrays

Read more…

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

module procedure read_id_k 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

Read more…

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

module procedure read_id_mass_b 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, storing it to variables (not arrays as the others SUBROUTINES in this SUBMODULE).

Read more…

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

module procedure read_id_particles 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

Read more…

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

module procedure read_id_spacetime 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

Read more…

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

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

Returns the \(\texttt{LORENE}\) conformal factor to the 4th power, equal to the diagonal components of the conformally flat spatial ADM metric.

Read more…

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