1#ifndef AMREX_MF_PARALLEL_FOR_H_
2#define AMREX_MF_PARALLEL_FOR_H_
3#include <AMReX_Config.H>
41template <
typename MF,
typename F>
42std::enable_if_t<IsFabArray<MF>::value>
64template <
int MT,
typename MF,
typename F>
65std::enable_if_t<IsFabArray<MF>::value>
91template <
typename MF,
typename F>
92std::enable_if_t<IsFabArray<MF>::value>
115template <
int MT,
typename MF,
typename F>
116std::enable_if_t<IsFabArray<MF>::value>
143template <
typename MF,
typename F>
144std::enable_if_t<IsFabArray<MF>::value>
168template <
int MT,
typename MF,
typename F>
169std::enable_if_t<IsFabArray<MF>::value>
196template <
typename MF,
typename F>
197std::enable_if_t<IsFabArray<MF>::value>
200 detail::ParallelFor_doit(mf,
IntVect(0), ts.
tile_size,
false, std::forward<F>(f));
221template <
int MT,
typename MF,
typename F>
222std::enable_if_t<IsFabArray<MF>::value>
226 detail::ParallelFor_doit<MT>(mf,
IntVect(0), 1, ts.
tile_size,
false, std::forward<F>(f));
228 detail::ParallelFor_doit(mf,
IntVect(0), ts.
tile_size,
false, std::forward<F>(f));
250template <
typename MF,
typename F>
251std::enable_if_t<IsFabArray<MF>::value>
254 detail::ParallelFor_doit(mf, ng, ts.
tile_size,
false, std::forward<F>(f));
276template <
int MT,
typename MF,
typename F>
277std::enable_if_t<IsFabArray<MF>::value>
281 detail::ParallelFor_doit<MT>(mf, ng, 1, ts.
tile_size,
false, std::forward<F>(f));
283 detail::ParallelFor_doit(mf, ng, ts.
tile_size,
false, std::forward<F>(f));
306template <
typename MF,
typename F>
307std::enable_if_t<IsFabArray<MF>::value>
310 detail::ParallelFor_doit(mf, ng, ncomp, ts.
tile_size,
false, std::forward<F>(f));
333template <
int MT,
typename MF,
typename F>
334std::enable_if_t<IsFabArray<MF>::value>
338 detail::ParallelFor_doit<MT>(mf, ng, ncomp, ts.
tile_size,
false, std::forward<F>(f));
340 detail::ParallelFor_doit(mf, ng, ncomp, ts.
tile_size,
false, std::forward<F>(f));
363template <
typename MF,
typename F>
364std::enable_if_t<IsFabArray<MF>::value>
367 detail::ParallelFor_doit(mf, ng, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
390template <
typename MF,
typename F>
391std::enable_if_t<IsFabArray<MF>::value>
395 detail::ParallelFor_doit(mf, ng, ncomp, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
418template <
int MT,
typename MF,
typename F>
419std::enable_if_t<IsFabArray<MF>::value>
424 detail::ParallelFor_doit<MT>(mf, ng, 1, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
426 detail::ParallelFor_doit(mf, ng, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
451template <
int MT,
typename MF,
typename F>
452std::enable_if_t<IsFabArray<MF>::value>
457 detail::ParallelFor_doit<MT>(mf, ng, ncomp, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
459 detail::ParallelFor_doit(mf, ng, ncomp, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
static IntVect mfiter_tile_size
Default tilesize in MFIter.
Definition AMReX_FabArrayBase.H:289
Definition AMReX_Amr.cpp:49
std::enable_if_t< std::is_integral_v< T > > ParallelFor(TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, T N, F &&f)
Definition AMReX_CTOParallelForImpl.H:193
IntVectND< 3 > IntVect
IntVect is an alias for amrex::IntVectND instantiated with AMREX_SPACEDIM.
Definition AMReX_BaseFwd.H:33
Definition AMReX_MFParallelFor.H:21
DynamicTiling(bool f) noexcept
Definition AMReX_MFParallelFor.H:23
bool dynamic
Definition AMReX_MFParallelFor.H:22
Definition AMReX_MFParallelFor.H:16
TileSize(IntVect const &ts) noexcept
Definition AMReX_MFParallelFor.H:18
IntVect tile_size
Definition AMReX_MFParallelFor.H:17