MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_particle_cloud Module Reference

Generates particle beds by converting particle_cloud patch specifications into individual immersed boundary patches before domain reduction. Each rank runs the same deterministic placement so no MPI broadcast of particle positions is needed. More...

Functions/Subroutines

impure subroutine, public s_generate_particle_clouds (particle_cloud_ibs)
 Generate all particle beds and fill particle_cloud_ibs. Called on all ranks before s_reduce_ib_patch_array.
subroutine s_particle_cloud_random_box (cloud_idx, ib_idx, particle_cloud_ibs)
 Generates a random distributions of particles in a box with a minimum spacing.
real(wp) function f_xorshift (seed)
 Xorshift PRNG. Advances seed in-place and returns a value in [0, 1).
integer function f_bin_hash (bx, by, bz, hash_size)
 Hash bin coordinates to a 1-indexed slot in [1, hash_size]. Uses large prime multipliers to spread bins across buckets. Hash collisions are benign: the distance check catches false neighbours.

Detailed Description

Generates particle beds by converting particle_cloud patch specifications into individual immersed boundary patches before domain reduction. Each rank runs the same deterministic placement so no MPI broadcast of particle positions is needed.

Function/Subroutine Documentation

◆ f_bin_hash()

integer function m_particle_cloud::f_bin_hash ( integer, intent(in) bx,
integer, intent(in) by,
integer, intent(in) bz,
integer, intent(in) hash_size )
private

Hash bin coordinates to a 1-indexed slot in [1, hash_size]. Uses large prime multipliers to spread bins across buckets. Hash collisions are benign: the distance check catches false neighbours.

Definition at line 220 of file m_particle_cloud.fpp.f90.

Here is the caller graph for this function:

◆ f_xorshift()

real(wp) function m_particle_cloud::f_xorshift ( integer, intent(inout) seed)
private

Xorshift PRNG. Advances seed in-place and returns a value in [0, 1).

Definition at line 205 of file m_particle_cloud.fpp.f90.

Here is the caller graph for this function:

◆ s_generate_particle_clouds()

impure subroutine, public m_particle_cloud::s_generate_particle_clouds ( type(ib_patch_parameters), dimension(:), intent(out), allocatable particle_cloud_ibs)

Generate all particle beds and fill particle_cloud_ibs. Called on all ranks before s_reduce_ib_patch_array.

Definition at line 24 of file m_particle_cloud.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_particle_cloud_random_box()

subroutine m_particle_cloud::s_particle_cloud_random_box ( integer, intent(in) cloud_idx,
integer, intent(inout) ib_idx,
type(ib_patch_parameters), dimension(:), intent(inout) particle_cloud_ibs )
private

Generates a random distributions of particles in a box with a minimum spacing.

Definition at line 59 of file m_particle_cloud.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function: