1#ifndef AMREX_MF_PARALLEL_FOR_H_
2#define AMREX_MF_PARALLEL_FOR_H_
3#include <AMReX_Config.H>
26namespace experimental {
43template <
typename MF,
typename F>
44std::enable_if_t<IsFabArray<MF>::value>
66template <
int MT,
typename MF,
typename F>
67std::enable_if_t<IsFabArray<MF>::value>
93template <
typename MF,
typename F>
94std::enable_if_t<IsFabArray<MF>::value>
117template <
int MT,
typename MF,
typename F>
118std::enable_if_t<IsFabArray<MF>::value>
145template <
typename MF,
typename F>
146std::enable_if_t<IsFabArray<MF>::value>
170template <
int MT,
typename MF,
typename F>
171std::enable_if_t<IsFabArray<MF>::value>
198template <
typename MF,
typename F>
199std::enable_if_t<IsFabArray<MF>::value>
223template <
int MT,
typename MF,
typename F>
224std::enable_if_t<IsFabArray<MF>::value>
228 detail::ParallelFor<MT>(mf,
IntVect(0), ts.
tile_size,
false, std::forward<F>(f));
252template <
typename MF,
typename F>
253std::enable_if_t<IsFabArray<MF>::value>
278template <
int MT,
typename MF,
typename F>
279std::enable_if_t<IsFabArray<MF>::value>
283 detail::ParallelFor<MT>(mf, ng, ts.
tile_size,
false, std::forward<F>(f));
308template <
typename MF,
typename F>
309std::enable_if_t<IsFabArray<MF>::value>
335template <
int MT,
typename MF,
typename F>
336std::enable_if_t<IsFabArray<MF>::value>
340 detail::ParallelFor<MT>(mf, ng, ncomp, ts.
tile_size,
false, std::forward<F>(f));
365template <
typename MF,
typename F>
366std::enable_if_t<IsFabArray<MF>::value>
392template <
typename MF,
typename F>
393std::enable_if_t<IsFabArray<MF>::value>
420template <
int MT,
typename MF,
typename F>
421std::enable_if_t<IsFabArray<MF>::value>
426 detail::ParallelFor<MT>(mf, ng, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
453template <
int MT,
typename MF,
typename F>
454std::enable_if_t<IsFabArray<MF>::value>
459 detail::ParallelFor<MT>(mf, ng, ncomp, ts.
tile_size, dt.
dynamic, std::forward<F>(f));
static AMREX_EXPORT IntVect mfiter_tile_size
Default tilesize in MFIter.
Definition AMReX_FabArrayBase.H:288
std::enable_if_t< IsFabArray< MF >::value > ParallelFor(MF const &mf, IntVect const &nghost, int ncomp, IntVect const &, bool, F const &f)
Definition AMReX_MFParallelForG.H:75
std::enable_if_t< IsFabArray< MF >::value > ParallelFor(MF const &mf, F &&f)
ParallelFor for MultiFab/FabArray.
Definition AMReX_MFParallelFor.H:45
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:191
IntVectND< AMREX_SPACEDIM > IntVect
Definition AMReX_BaseFwd.H:30
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