correct_adm_linear_momentum Module Procedure

module procedure correct_adm_linear_momentum module subroutine correct_adm_linear_momentum(npart, pos, nlrf, u, pr, vel_u, theta, nstar, nu, g_xx, g_xy, g_xz, g_yy, g_yz, g_zz, lapse, shift_x, shift_y, shift_z, adm_mom_error, adm_mass)

Uses

  • proc~~correct_adm_linear_momentum~~UsesGraph proc~correct_adm_linear_momentum correct_adm_linear_momentum constants constants proc~correct_adm_linear_momentum->constants matrix matrix proc~correct_adm_linear_momentum->matrix module~utility utility proc~correct_adm_linear_momentum->module~utility tensor tensor proc~correct_adm_linear_momentum->tensor module~utility->constants module~utility->matrix

Correct the velocity and the generalized Lorentz factor, so that the linear momentum of the \(\mathrm{BNS}\) is 0

FT 14.04.2022


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

double precision, intent(in), DIMENSION(npart) :: g_xx
double precision, intent(in), DIMENSION(npart) :: g_xy
double precision, intent(in), DIMENSION(npart) :: g_xz
double precision, intent(in), DIMENSION(npart) :: g_yy
double precision, intent(in), DIMENSION(npart) :: g_yz
double precision, intent(in), DIMENSION(npart) :: g_zz
double precision, intent(in), DIMENSION(npart) :: lapse

Lapse function on the particles

double precision, intent(in), DIMENSION(npart) :: shift_x
double precision, intent(in), DIMENSION(npart) :: shift_y
double precision, intent(in), DIMENSION(npart) :: shift_z
double precision, intent(in), DIMENSION(3) :: adm_mom_error
double precision, intent(in) :: adm_mass

Calls

proc~~correct_adm_linear_momentum~~CallsGraph proc~correct_adm_linear_momentum correct_adm_linear_momentum invert_3x3_matrix invert_3x3_matrix proc~correct_adm_linear_momentum->invert_3x3_matrix invert_4x4_matrix invert_4x4_matrix proc~correct_adm_linear_momentum->invert_4x4_matrix lower_index_4vector lower_index_4vector proc~correct_adm_linear_momentum->lower_index_4vector proc~compute_g4 compute_g4 proc~correct_adm_linear_momentum->proc~compute_g4 proc~determinant_sym4x4 determinant_sym4x4 proc~correct_adm_linear_momentum->proc~determinant_sym4x4 proc~spatial_vector_norm_sym3x3 spatial_vector_norm_sym3x3 proc~correct_adm_linear_momentum->proc~spatial_vector_norm_sym3x3 raise_index_4vector raise_index_4vector proc~correct_adm_linear_momentum->raise_index_4vector

Called by

proc~~correct_adm_linear_momentum~~CalledByGraph proc~correct_adm_linear_momentum correct_adm_linear_momentum interface~correct_adm_linear_momentum correct_adm_linear_momentum interface~correct_adm_linear_momentum->proc~correct_adm_linear_momentum

Contents


Variables

Type Visibility Attributes Name Initial
integer, private :: a
double precision, private, DIMENSION(3) :: delta
double precision, private :: den
double precision, private :: det
double precision, private, DIMENSION(3,3) :: g3mat
double precision, private, DIMENSION(3,3) :: g3mat_inv
double precision, private :: g4(n_sym4x4)
double precision, private, DIMENSION(4,4) :: g4mat
double precision, private, DIMENSION(4,4) :: g4mat_inv
integer, private :: j
double precision, private :: shift_delta
double precision, private :: shift_norm2
double precision, private, DIMENSION(0:3) :: v_l
double precision, private, DIMENSION(0:3) :: v_u
double precision, private, DIMENSION(3,npart) :: vel_l_corr