This SUBMODULE contains the implementation of the methods of TYPE particles that place particles on 1 or 2 lattices around the stars.
FT 12.07.2021
Places paricles on a 3D lattice containing both stars
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 |