looping

moment_kinetics.looping.LoopRangesType

LoopRanges structs contain information on which points should be included on this process in loops over shared-memory arrays.

Members

paralleldims::Tuple{Vararg{Symbol}} Indicates which dimensions are (or might be) parallelized when using this LoopRanges. Provided for information for developers, to make it easier to tell (when using a Debugger, or printing debug informatino) which LoopRanges instance is active in looping.loopranges at any point in the code. rank0::Bool Is this process the one with rank 0 in the 'block' which work in parallel on shared memory arrays. <d>::UnitRange{mkint} Loop ranges for each dimension <d> in looping.alldimensions.

source
moment_kinetics.looping.begin_anyv_regionMethod

Begin 'anyv' sub-region in which () velocity space dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the beginanyv*region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _anyv_subblock_synchronize() to synchronize the processes operating on an 'anyv' shared-memory sub-block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_anyv_vpa_regionMethod

Begin 'anyv' sub-region in which (:vpa,) velocity space dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the beginanyv*region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _anyv_subblock_synchronize() to synchronize the processes operating on an 'anyv' shared-memory sub-block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_anyv_vperp_regionMethod

Begin 'anyv' sub-region in which (:vperp,) velocity space dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the beginanyv*region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _anyv_subblock_synchronize() to synchronize the processes operating on an 'anyv' shared-memory sub-block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_anyv_vperp_vpa_regionMethod

Begin 'anyv' sub-region in which (:vperp, :vpa) velocity space dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the beginanyv*region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _anyv_subblock_synchronize() to synchronize the processes operating on an 'anyv' shared-memory sub-block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_regionMethod

Begin region in which (:r,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vpa_regionMethod

Begin region in which (:r, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vperp_regionMethod

Begin region in which (:r, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vperp_vpa_regionMethod

Begin region in which (:r, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vr_regionMethod

Begin region in which (:r, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vr_vz_regionMethod

Begin region in which (:r, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vz_regionMethod

Begin region in which (:r, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vzeta_regionMethod

Begin region in which (:r, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vzeta_vr_regionMethod

Begin region in which (:r, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vzeta_vr_vz_regionMethod

Begin region in which (:r, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_vzeta_vz_regionMethod

Begin region in which (:r, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_regionMethod

Begin region in which (:r, :z) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vpa_regionMethod

Begin region in which (:r, :z, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vperp_regionMethod

Begin region in which (:r, :z, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vperp_vpa_regionMethod

Begin region in which (:r, :z, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vr_regionMethod

Begin region in which (:r, :z, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vr_vz_regionMethod

Begin region in which (:r, :z, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vz_regionMethod

Begin region in which (:r, :z, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vzeta_regionMethod

Begin region in which (:r, :z, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vzeta_vr_regionMethod

Begin region in which (:r, :z, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vzeta_vr_vz_regionMethod

Begin region in which (:r, :z, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_r_z_vzeta_vz_regionMethod

Begin region in which (:r, :z, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_regionMethod

Begin region in which (:s, :r) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_vpa_regionMethod

Begin region in which (:s, :r, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_vperp_regionMethod

Begin region in which (:s, :r, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_vperp_vpa_regionMethod

Begin region in which (:s, :r, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_z_anyv_regionMethod

Begin region in which (:s,:r,:z) dimensions and velocity dimensions are parallelized by being split between processes, and which velocity dimensions are parallelized can be switched within the outer loop over (:s,:r,:z). This parallelization scheme is intended for use in the collision operator.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_z_regionMethod

Begin region in which (:s, :r, :z) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_z_vpa_regionMethod

Begin region in which (:s, :r, :z, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_z_vperp_regionMethod

Begin region in which (:s, :r, :z, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_r_z_vperp_vpa_regionMethod

Begin region in which (:s, :r, :z, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_regionMethod

Begin region in which (:s,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_vpa_regionMethod

Begin region in which (:s, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_vperp_regionMethod

Begin region in which (:s, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_vperp_vpa_regionMethod

Begin region in which (:s, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_z_regionMethod

Begin region in which (:s, :z) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_z_vpa_regionMethod

Begin region in which (:s, :z, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_z_vperp_regionMethod

Begin region in which (:s, :z, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_s_z_vperp_vpa_regionMethod

Begin region in which (:s, :z, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_serial_regionMethod

Begin region in which only rank-0 in each group of processes operating on a shared-memory block operates on shared-memory arrays.

Returns immediately if loopranges[] is already set for a serial region. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_regionMethod

Begin region in which (:sn, :r) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vr_regionMethod

Begin region in which (:sn, :r, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vr_vz_regionMethod

Begin region in which (:sn, :r, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vz_regionMethod

Begin region in which (:sn, :r, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vzeta_regionMethod

Begin region in which (:sn, :r, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vzeta_vr_regionMethod

Begin region in which (:sn, :r, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vzeta_vr_vz_regionMethod

Begin region in which (:sn, :r, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_vzeta_vz_regionMethod

Begin region in which (:sn, :r, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_regionMethod

Begin region in which (:sn, :r, :z) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vr_regionMethod

Begin region in which (:sn, :r, :z, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vr_vz_regionMethod

Begin region in which (:sn, :r, :z, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vz_regionMethod

Begin region in which (:sn, :r, :z, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vzeta_regionMethod

Begin region in which (:sn, :r, :z, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vzeta_vr_regionMethod

Begin region in which (:sn, :r, :z, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vzeta_vr_vz_regionMethod

Begin region in which (:sn, :r, :z, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_r_z_vzeta_vz_regionMethod

Begin region in which (:sn, :r, :z, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_regionMethod

Begin region in which (:sn,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vr_regionMethod

Begin region in which (:sn, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vr_vz_regionMethod

Begin region in which (:sn, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vz_regionMethod

Begin region in which (:sn, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vzeta_regionMethod

Begin region in which (:sn, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vzeta_vr_regionMethod

Begin region in which (:sn, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vzeta_vr_vz_regionMethod

Begin region in which (:sn, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_vzeta_vz_regionMethod

Begin region in which (:sn, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_regionMethod

Begin region in which (:sn, :z) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vr_regionMethod

Begin region in which (:sn, :z, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vr_vz_regionMethod

Begin region in which (:sn, :z, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vz_regionMethod

Begin region in which (:sn, :z, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vzeta_regionMethod

Begin region in which (:sn, :z, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vzeta_vr_regionMethod

Begin region in which (:sn, :z, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vzeta_vr_vz_regionMethod

Begin region in which (:sn, :z, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_sn_z_vzeta_vz_regionMethod

Begin region in which (:sn, :z, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vpa_regionMethod

Begin region in which (:vpa,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vperp_regionMethod

Begin region in which (:vperp,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vperp_vpa_regionMethod

Begin region in which (:vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vr_regionMethod

Begin region in which (:vr,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vr_vz_regionMethod

Begin region in which (:vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vz_regionMethod

Begin region in which (:vz,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vzeta_regionMethod

Begin region in which (:vzeta,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vzeta_vr_regionMethod

Begin region in which (:vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vzeta_vr_vz_regionMethod

Begin region in which (:vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_vzeta_vz_regionMethod

Begin region in which (:vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_regionMethod

Begin region in which (:z,) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vpa_regionMethod

Begin region in which (:z, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vperp_regionMethod

Begin region in which (:z, :vperp) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vperp_vpa_regionMethod

Begin region in which (:z, :vperp, :vpa) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vr_regionMethod

Begin region in which (:z, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vr_vz_regionMethod

Begin region in which (:z, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vz_regionMethod

Begin region in which (:z, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vzeta_regionMethod

Begin region in which (:z, :vzeta) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vzeta_vr_regionMethod

Begin region in which (:z, :vzeta, :vr) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vzeta_vr_vz_regionMethod

Begin region in which (:z, :vzeta, :vr, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.begin_z_vzeta_vz_regionMethod

Begin region in which (:z, :vzeta, :vz) dimensions are parallelized by being split between processes.

Returns immediately if loopranges[] is already set to the parallel dimensions being requested. This allows the begin*_region() calls to be placed where they make logical sense, with no cost if a call happens to be repeated (e.g. in different functions).

Calls _block_synchronize() to synchronize the processes operating on a shared-memory block, unless no_synchronize=true is passed as an argument.

source
moment_kinetics.looping.debug_setup_loop_ranges_split_one_combination!Method

For debugging the shared-memory parallelism, create ranges where only the loops for a single combinations of variables (given by combination_to_split) are parallelised, and which dimensions are parallelised can be set with the dims_to_split... arguments.

Arguments

Keyword arguments dim=n are required for each dim in all_dimensions where n is an integer giving the size of the dimension.

source
moment_kinetics.looping.get_best_anyv_splitMethod

Find the numbers of processes for each dimension that optimize load balance for 'anyv' type loops for a certain block_size.

The 'anyv' parallelisation patterns are designed for use in the collision operator. They all share the same parallelisation in species and spatial dimensions so that the region type can be switched between 'anyv' types within a loop over species and spatial dimensions (@loopsr_z). It is only defined for ions, not for neutrals.

Parts of the collision operator cannot conveniently be parallelised over velocity dimensions, so this function aims to assign as much parallelism as possible to the species and spatial dimensions.

source
moment_kinetics.looping.get_max_workMethod

Calculate the maximum number of grid points on any process

This is a measure of the maximum amount of work to do on a single process. Minimising this will make the parallelisation as efficient as possible.

Arguments

nprocslist : Vector{mkint} Number of processes for each dimension sizes : Vector{mk_int} Size of each dimension

source
moment_kinetics.looping.setup_loop_ranges!Method

Create ranges for loops with different combinations of variables

Arguments

Keyword arguments dim=n are required for each dim in [:s, :r, :z, :vperp, :vpa, :sn, :vzeta, :vr, :vz] where n is an integer giving the size of the dimension.

source