一つの粒子stepについてmesh/boxの最早eventを順序付ける。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_type), | intent(in) | :: | mesh | |||
| type(sim_config), | intent(in) | :: | sim | |||
| type(electrostatic_snapshot_type), | intent(inout) | :: | snapshot | |||
| real(kind=dp), | intent(in) | :: | bfield(3) | |||
| real(kind=dp), | intent(in) | :: | x0(3) | |||
| real(kind=dp), | intent(in) | :: | v0(3) | |||
| real(kind=dp), | intent(in) | :: | q | |||
| real(kind=dp), | intent(in) | :: | m | |||
| real(kind=dp), | intent(in) | :: | dt | |||
| type(particle_step_result), | intent(out) | :: | result | |||
| type(external_boundary_contract_type), | intent(in), | optional | :: | boundary_contract | ||
| integer(kind=i64), | intent(in), | optional | :: | boundary_rng_counter(4) |
subroutine advance_particle_step( & mesh, sim, snapshot, bfield, x0, v0, q, m, dt, result, boundary_contract, boundary_rng_counter & ) type(mesh_type), intent(in) :: mesh type(sim_config), intent(in) :: sim type(electrostatic_snapshot_type), intent(inout) :: snapshot real(dp), intent(in) :: bfield(3), x0(3), v0(3), q, m, dt type(particle_step_result), intent(out) :: result type(external_boundary_contract_type), intent(in), optional :: boundary_contract integer(i64), intent(in), optional :: boundary_rng_counter(4) logical :: field_available field_available = .true. call advance_particle_step_impl( & mesh, sim, snapshot, bfield, x0, v0, q, m, dt, result, boundary_contract, boundary_rng_counter, 0_i32, & .false., field_available & ) end subroutine advance_particle_step