interpolate Submodule

Implementation of the methods of TYPE bnsfuka that interpolate the data on a lattice, at a particle position

FT 28.06.2022



Uses

  • module~~interpolate~~UsesGraph module~interpolate interpolate module~bns_fuka bns_fuka module~interpolate->module~bns_fuka module~utility utility module~interpolate->module~utility module~bns_fuka->module~utility 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 timing timing module~bns_fuka->timing constants constants module~utility->constants matrix matrix module~utility->matrix module~bns_base->module~utility module~bns_base->module~id_base module~id_base->module~utility module~id_base->timing

Contents


Module Procedures

module procedure interpolate_fuka_id_mass_b module subroutine interpolate_fuka_id_mass_b(this, x, y, z, g, baryon_density, gamma_euler)

Stores the hydro \(\mathrm{ID}\) in the arrays needed to compute the baryon mass, storing it to variables (not arrays as the others SUBROUTINES in the [[bnsfuka@interpolate]] SUBMODULE).

Read more…

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

module procedure interpolate_fuka_id_particles 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 \(\mathrm{ID}\) in the arrays needed to compute the \(\mathrm{SPH}\) \(\mathrm{ID}\)

Read more…

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

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

Returns the mass density at the point given as argument, in units of .

Read more…

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

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

Returns the spatial metric.

Read more…

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

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

Returns the spatial metric.

Read more…

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

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

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

Return 1 if the energy density is nonpositive or if the specific energy is nonpositive, or if the pressure is nonpositive at the specified point; return 0 otherwise

Read more…

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

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

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