Block-Structured AMR Software Framework
amrex::experimental Namespace Reference

Namespaces

 detail
 

Functions

template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, TileSize const &ts, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, TileSize const &ts, DynamicTiling dt, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, TileSize const &ts, DynamicTiling dt, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, TileSize const &ts, DynamicTiling dt, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 
template<int MT, typename MF , typename F >
std::enable_if_t< IsFabArray< MF >::value > ParallelFor (MF const &mf, IntVect const &ng, int ncomp, TileSize const &ts, DynamicTiling dt, F &&f)
 ParallelFor for MultiFab/FabArray. More...
 

Function Documentation

◆ ParallelFor() [1/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid region. If built for CPU, tiling will be enabled. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [2/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid region. If built for CPU, tiling will be enabled. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [3/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [4/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [5/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [6/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [7/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
TileSize const &  ts,
DynamicTiling  dt,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
tstile size, ignored by GPU build
dtcontrols dynamic tiling for the cpu build
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [8/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
TileSize const &  ts,
DynamicTiling  dt,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
tstile size, ignored by GPU build
dtcontrols dynamic tiling for the cpu build
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [9/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
tstile size, ignored by GPU build
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [10/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
int  ncomp,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 5D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
ncompthe number of component
tstile size, ignored by GPU build
fa callable object void(int,int,int,int,int), where the first argument is the local box index, the following three are spatial indices for x, y, and z-directions, and the last is for component.

◆ ParallelFor() [11/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
TileSize const &  ts,
DynamicTiling  dt,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
tstile size, ignored by GPU build
dtcontrols dynamic tiling for the cpu build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [12/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
TileSize const &  ts,
DynamicTiling  dt,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For GPU builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
tstile size, ignored by GPU build
dtcontrols dynamic tiling for the cpu build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [13/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
tstile size, ignored by GPU build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [14/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
IntVect const &  ng,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid and ghost regions. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
ngthe number of ghost cells around the valid region
tstile size, ignored by GPU build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [15/16]

template<typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid region. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
tstile size, ignored by GPU build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.

◆ ParallelFor() [16/16]

template<int MT, typename MF , typename F >
std::enable_if_t<IsFabArray<MF>::value> amrex::experimental::ParallelFor ( MF const &  mf,
TileSize const &  ts,
F &&  f 
)

ParallelFor for MultiFab/FabArray.

This version launches a kernel to work on the valid region. If built for CPU, tiling will be enabled. However, one could specify a huge tile size to effectively disable tiling. For gpu builds, this function is NON-BLOCKING on the host. Conceptually, this is a 4D loop.

Template Parameters
MTmax threads in GPU blocks (Only relevant for GPU builds)
MFthe MultiFab/FabArray type
Fa callable type like lambda
Parameters
mfthe MultiFab/FabArray object used to specify the iteration space
tstile size, ignored by GPU build
fa callable object void(int,int,int,int), where the first argument is the local box index, and the following three are spatial indices for x, y, and z-directions.