compute_adm_momentum_fluid_m2p Module Procedure

module procedure compute_adm_momentum_fluid_m2p module subroutine compute_adm_momentum_fluid_m2p(this, parts, adm_mom)

Uses

    • mesh_refinement
    • gradient
    • units
    • utility
    • input_output
    • sph_variables
    • metric_on_particles
    • constants
    • alive_flag
    • McLachlan_refine
    • BSSN_refine
    • tensor
    • ADM_refine
  • proc~~compute_adm_momentum_fluid_m2p~~UsesGraph proc~compute_adm_momentum_fluid_m2p compute_adm_momentum_fluid_m2p ADM_refine ADM_refine proc~compute_adm_momentum_fluid_m2p->ADM_refine BSSN_refine BSSN_refine proc~compute_adm_momentum_fluid_m2p->BSSN_refine McLachlan_refine McLachlan_refine proc~compute_adm_momentum_fluid_m2p->McLachlan_refine alive_flag alive_flag proc~compute_adm_momentum_fluid_m2p->alive_flag constants constants proc~compute_adm_momentum_fluid_m2p->constants gradient gradient proc~compute_adm_momentum_fluid_m2p->gradient input_output input_output proc~compute_adm_momentum_fluid_m2p->input_output mesh_refinement mesh_refinement proc~compute_adm_momentum_fluid_m2p->mesh_refinement metric_on_particles metric_on_particles proc~compute_adm_momentum_fluid_m2p->metric_on_particles module~utility utility proc~compute_adm_momentum_fluid_m2p->module~utility sph_variables sph_variables proc~compute_adm_momentum_fluid_m2p->sph_variables tensor tensor proc~compute_adm_momentum_fluid_m2p->tensor units units proc~compute_adm_momentum_fluid_m2p->units module~utility->constants matrix matrix module~utility->matrix

Computes an estimate of the linear momentum using the \(\mathrm{SPH}\) fields on the particles

FT 12.04.2022


Arguments

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

tpo object which this PROCEDURE is a member of

class(particles), intent(in) :: parts

particles object used to map the metric from the mesh to the particles, and to call the recovery procedures

double precision, intent(out), DIMENSION(3) :: adm_mom

ADM linear momentum of the fluid computed using the metric mapped with the mesh-to-particle mapping


Calls

proc~~compute_adm_momentum_fluid_m2p~~CallsGraph proc~compute_adm_momentum_fluid_m2p compute_adm_momentum_fluid_m2p alive alive proc~compute_adm_momentum_fluid_m2p->alive allocate_adm allocate_adm proc~compute_adm_momentum_fluid_m2p->allocate_adm allocate_bssn allocate_bssn proc~compute_adm_momentum_fluid_m2p->allocate_bssn allocate_gradient allocate_gradient proc~compute_adm_momentum_fluid_m2p->allocate_gradient allocate_grid_function allocate_grid_function proc~compute_adm_momentum_fluid_m2p->allocate_grid_function allocate_metric_on_particles allocate_metric_on_particles proc~compute_adm_momentum_fluid_m2p->allocate_metric_on_particles allocate_sph_memory allocate_sph_memory proc~compute_adm_momentum_fluid_m2p->allocate_sph_memory allocate_ztmp allocate_ztmp proc~compute_adm_momentum_fluid_m2p->allocate_ztmp deallocate_adm deallocate_adm proc~compute_adm_momentum_fluid_m2p->deallocate_adm deallocate_bssn deallocate_bssn proc~compute_adm_momentum_fluid_m2p->deallocate_bssn deallocate_gradient deallocate_gradient proc~compute_adm_momentum_fluid_m2p->deallocate_gradient deallocate_grid_function deallocate_grid_function proc~compute_adm_momentum_fluid_m2p->deallocate_grid_function deallocate_metric_on_particles deallocate_metric_on_particles proc~compute_adm_momentum_fluid_m2p->deallocate_metric_on_particles deallocate_sph_memory deallocate_sph_memory proc~compute_adm_momentum_fluid_m2p->deallocate_sph_memory deallocate_ztmp deallocate_ztmp proc~compute_adm_momentum_fluid_m2p->deallocate_ztmp g4_ll g4_ll proc~compute_adm_momentum_fluid_m2p->g4_ll get_metric_on_particles get_metric_on_particles proc~compute_adm_momentum_fluid_m2p->get_metric_on_particles levels levels proc~compute_adm_momentum_fluid_m2p->levels lower_index_4vector lower_index_4vector proc~compute_adm_momentum_fluid_m2p->lower_index_4vector proc~compute_tpo_metric compute_tpo_metric proc~compute_adm_momentum_fluid_m2p->proc~compute_tpo_metric proc~is_finite_number is_finite_number proc~compute_adm_momentum_fluid_m2p->proc~is_finite_number proc~spatial_vector_norm_sym3x3 spatial_vector_norm_sym3x3 proc~compute_adm_momentum_fluid_m2p->proc~spatial_vector_norm_sym3x3 read_options read_options proc~compute_adm_momentum_fluid_m2p->read_options set_units set_units proc~compute_adm_momentum_fluid_m2p->set_units invert_3x3_matrix invert_3x3_matrix proc~compute_tpo_metric->invert_3x3_matrix

Called by

proc~~compute_adm_momentum_fluid_m2p~~CalledByGraph proc~compute_adm_momentum_fluid_m2p compute_adm_momentum_fluid_m2p interface~compute_adm_momentum_fluid_m2p compute_adm_momentum_fluid_m2p interface~compute_adm_momentum_fluid_m2p->proc~compute_adm_momentum_fluid_m2p

Contents


Variables

Type Visibility Attributes Name Initial
integer, private :: a
double precision, private :: adm_mom_element
double precision, private, DIMENSION(parts% get_n_matter(),3) :: adm_mom_i
logical, private, parameter :: debug = .FALSE.
double precision, private :: det
double precision, private, DIMENSION(6) :: g3
integer, private :: i_matter
integer, private :: j
integer, private :: l
double precision, private :: lapse_loc
double precision, private, DIMENSION(:), ALLOCATABLE :: nlrf_loc
double precision, private, DIMENSION(:), ALLOCATABLE :: nu_loc
double precision, private, DIMENSION(:,:), ALLOCATABLE :: pos
double precision, private, DIMENSION(:), ALLOCATABLE :: pr_loc
double precision, private, DIMENSION(3) :: shift
double precision, private :: shift_norm2
double precision, private, DIMENSION(:), ALLOCATABLE :: theta_loc
double precision, private, DIMENSION(:), ALLOCATABLE :: u_loc
integer, private, parameter :: unit_recovery = 34956
double precision, private, DIMENSION(0:3,parts% get_npart()) :: v_l
double precision, private, DIMENSION(0:3) :: v_u
double precision, private, DIMENSION(:,:), ALLOCATABLE :: vel_loc