|
| procedure, pass(this) | init (this, lag_len, strategy) |
| | Initialise particle migration settings.
|
| |
| procedure, pass(this) | free (this) |
| | Reset migration settings to defaults.
|
| |
| procedure, pass(this) | initialize_particle_distribution (this, inertia, particles) |
| | Apply the initial particle distribution required by the strategy.
|
| |
| procedure, pass(this) | migrate_particles (this, global_interp, periodic_bc, inertia, particles) |
| | Update particle ownership according to the selected migration strategy.
|
| |
|
| procedure, pass(this), private | distribute_particles_evenly (this, inertia, particles) |
| | Distribute particles from rank 0 evenly across all ranks.
|
| |
| procedure, pass(this), private | distribute_particle_ids (this, ids_old, counts, offsets, n_local, ids_local) |
| | Scatter particle ids from rank 0 to the current rank.
|
| |
| procedure, pass(this), private | distribute_particle_scalar (this, scalar_old, counts, offsets, n_local, scalar_local) |
| | Scatter one particle scalar field from rank 0 to the current rank.
|
| |
| procedure, pass(this), private | localize_global_interpolation (this, global_interp, n_local) |
| | Mark interpolation data as local after migration has completed.
|
| |
| procedure, pass(this), private | migrate_particle_ids (this, migrate_comm, ids_old, n_particles_old, n_local, particle_ids_local) |
| | Exchange particle ids according to global-interpolation ownership data.
|
| |
| procedure, pass(this), private | migrate_particle_scalar (this, migrate_comm, scalar_old, n_particles_old, n_local, scalar_local) |
| | Exchange one particle scalar according to interpolation ownership data.
|
| |
Definition at line 52 of file lpt_migration.f90.
◆ distribute_particle_ids()
| procedure, pass(this), private lpt_migrate::lpt_migrate_t::distribute_particle_ids |
( |
class(lpt_migrate_t), intent(inout) |
this, |
|
|
integer, dimension(:), intent(in), allocatable |
ids_old, |
|
|
integer, dimension(0:), intent(in) |
counts, |
|
|
integer, dimension(0:), intent(in) |
offsets, |
|
|
integer, intent(in) |
n_local, |
|
|
integer, dimension(:), intent(inout), allocatable |
ids_local |
|
) |
| |
|
private |
- Parameters
-
| ids_old | Root-rank particle ids. |
| counts | Number of ids assigned to each rank. |
| offsets | Offsets into ids_old. |
| n_local | Number of ids received by this rank. |
| ids_local | Local particle ids. |
Definition at line 61 of file lpt_migration.f90.
◆ distribute_particle_scalar()
| procedure, pass(this), private lpt_migrate::lpt_migrate_t::distribute_particle_scalar |
( |
class(lpt_migrate_t), intent(inout) |
this, |
|
|
type(vector_t), intent(inout) |
scalar_old, |
|
|
integer, dimension(0:), intent(in) |
counts, |
|
|
integer, dimension(0:), intent(in) |
offsets, |
|
|
integer, intent(in) |
n_local, |
|
|
type(vector_t), intent(inout) |
scalar_local |
|
) |
| |
|
private |
- Parameters
-
| scalar_old | Root-rank scalar values. |
| counts | Number of values assigned to each rank. |
| offsets | Offsets into scalar_old. |
| n_local | Number of values received by this rank. |
| scalar_local | Local scalar values. |
Definition at line 62 of file lpt_migration.f90.
◆ distribute_particles_evenly()
- Parameters
-
| inertia | Whether particles carry inertial state. |
| particles | Particle storage to redistribute. |
Definition at line 60 of file lpt_migration.f90.
◆ free()
◆ init()
- Parameters
-
| lag_len | Number of lagged RHS levels carried by particles. |
| strategy | Optional migration strategy identifier. |
Definition at line 56 of file lpt_migration.f90.
◆ initialize_particle_distribution()
- Parameters
-
| inertia | Whether particles carry inertial state. |
| particles | Particle storage to distribute. |
Definition at line 58 of file lpt_migration.f90.
◆ localize_global_interpolation()
- Parameters
-
| global_interp | Interpolation object to update. |
| n_local | Number of local particles. |
Definition at line 63 of file lpt_migration.f90.
◆ migrate_particle_ids()
| procedure, pass(this), private lpt_migrate::lpt_migrate_t::migrate_particle_ids |
( |
class(lpt_migrate_t), intent(inout) |
this, |
|
|
type(glb_intrp_comm_t), intent(inout) |
migrate_comm, |
|
|
integer, dimension(:), intent(in), allocatable |
ids_old, |
|
|
integer, intent(in) |
n_particles_old, |
|
|
integer, intent(in) |
n_local, |
|
|
integer, dimension(:), intent(inout), allocatable |
particle_ids_local |
|
) |
| |
|
private |
- Parameters
-
| migrate_comm | Redistribution communicator from interpolation. |
| ids_old | Particle ids before migration. |
| n_particles_old | Number of particles before migration. |
| n_local | Number of particles after migration. |
| particle_ids_local | Particle ids after migration. |
Definition at line 64 of file lpt_migration.f90.
◆ migrate_particle_scalar()
| procedure, pass(this), private lpt_migrate::lpt_migrate_t::migrate_particle_scalar |
( |
class(lpt_migrate_t), intent(inout) |
this, |
|
|
type(glb_intrp_comm_t), intent(inout) |
migrate_comm, |
|
|
type(vector_t), intent(inout) |
scalar_old, |
|
|
integer, intent(in) |
n_particles_old, |
|
|
integer, intent(in) |
n_local, |
|
|
type(vector_t), intent(inout) |
scalar_local |
|
) |
| |
|
private |
- Parameters
-
| migrate_comm | Redistribution communicator from interpolation. |
| scalar_old | Scalar values before migration. |
| n_particles_old | Number of particles before migration. |
| n_local | Number of particles after migration. |
| scalar_local | Scalar values after migration. |
Definition at line 65 of file lpt_migration.f90.
◆ migrate_particles()
| procedure, pass(this) lpt_migrate::lpt_migrate_t::migrate_particles |
( |
class(lpt_migrate_t), intent(inout) |
this, |
|
|
type(global_interpolation_t), intent(inout) |
global_interp, |
|
|
type(lpt_periodic_bc_t), intent(inout) |
periodic_bc, |
|
|
logical, intent(in) |
inertia, |
|
|
type(particles_t), intent(inout) |
particles |
|
) |
| |
- Parameters
-
| global_interp | Interpolation object used to locate particle owners. |
| periodic_bc | Periodic wrapper applied before ownership lookup. |
| inertia | Whether particles carry inertial state. |
| particles | Particle storage to migrate. |
Definition at line 59 of file lpt_migration.f90.
◆ lag_len
| integer lpt_migrate::lpt_migrate_t::lag_len = 0 |
◆ strategy
The documentation for this type was generated from the following file: