Places paricles on a 3D lattice containing both stars
FT 5.10.2020
Type | Intent | Optional | Attributes | Name | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
class(particles), | intent(inout) | :: | this |
particles object which this PROCEDURE is a member of |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | central_density |
Maximum baryon mass density of the system |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | xmin |
Left boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | xmax |
Right boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | ymin |
Left boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | ymax |
Right boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | zmin |
Left boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | zmax |
Right boundary of the lattice |
|||||||||||||||||||||||||||||||||||||||||||||||||||
integer, | intent(in) | :: | npart_des |
Desired particle number |
|||||||||||||||||||||||||||||||||||||||||||||||||||
integer, | intent(out) | :: | npart_out |
Real, output particle number |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | stretch |
Stretching factor fo the lattice. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(in) | :: | thres |
(~rho_max)/thres is the minimum mass density considered when placing particles. Used only when redistribute_nu is .FALSE. . When redistribute_nu is .TRUE. thres= 100*nu_ratio |
|||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(inout), | DIMENSION(:,:), ALLOCATABLE | :: | pos | |||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(inout), | DIMENSION(:), ALLOCATABLE | :: | pvol |
Array storing the particle positions Array storing the particle volumes |
||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(inout), | DIMENSION(:), ALLOCATABLE | :: | nu |
Array storing the particle baryon masses |
||||||||||||||||||||||||||||||||||||||||||||||||||
double precision, | intent(inout), | DIMENSION(:), ALLOCATABLE | :: | h |
Array storing the initial guess for the particle smoothing lengths |
||||||||||||||||||||||||||||||||||||||||||||||||||
function get_density(x, y, z) result(density)Returns the baryon mass density at the desired point Arguments
Return Value double precisionBaryon mass density at |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
subroutine get_id(x, y, z, sqdetg, baryon_density, gamma_euler)Returns the baryon mass density at the desired point Arguments
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
procedure(validate_position_int), | optional | :: | validate_position |
Returns 1 if the position is not valid, 0 otherwise |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
double precision, | private, | DIMENSION(:,:,:), ALLOCATABLE | :: | bar_density_tmp | |||
double precision, | private | :: | dx | ||||
double precision, | private | :: | dy | ||||
double precision, | private | :: | dz | ||||
double precision, | private, | DIMENSION(:,:,:), ALLOCATABLE | :: | gam_euler_tmp | |||
integer, | private | :: | i | ||||
integer, | private | :: | j | ||||
integer, | private | :: | k | ||||
integer, | private | :: | npart_half | ||||
integer, | private | :: | npart_tmp | ||||
double precision, | private, | DIMENSION(:), ALLOCATABLE | :: | nstar | |||
double precision, | private, | DIMENSION(:,:,:), ALLOCATABLE | :: | nstar_tmp | |||
integer, | private | :: | nx | ||||
integer, | private | :: | ny | ||||
integer, | private | :: | nz | ||||
double precision, | private, | DIMENSION(:,:,:,:), ALLOCATABLE | :: | pos_tmp | |||
integer, | private | :: | sgn | ||||
double precision, | private, | DIMENSION(:,:,:), ALLOCATABLE | :: | sqdetg_tmp | |||
double precision, | private | :: | thres_baryon_density | ||||
double precision, | private | :: | vol | ||||
double precision, | private | :: | vol_a | ||||
double precision, | private | :: | xtemp | ||||
double precision, | private | :: | ytemp | ||||
double precision, | private | :: | zlim | ||||
double precision, | private | :: | ztemp |
Returns validate_position( x, y, z ) if the latter
is present, .TRUE.
otherwise
FT 21.04.2021
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double precision, | intent(in) | :: | x |
coordinate of the desired point |
||
double precision, | intent(in) | :: | y |
coordinate of the desired point |
||
double precision, | intent(in) | :: | z |
coordinate of the desired point |
validate_position( x, y, z ) if the latter is present,
.TRUE.
otherwise