|
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename TransFunc , typename CopyFunc , amrex::EnableIf_t< std::is_integral< Index >::value, int > foo = 0> |
Index | filterCopyTransformParticles (DstPC &pc, DstTile &dst, SrcTile &src, Index *mask, Index dst_index, CopyFunc &©, TransFunc &&transform) noexcept |
| Apply a filter, copy, and transform operation to the particles in src, in that order, writing the result to dst, starting at dst_index. The dst tile will be extended so all the particles will fit, if needed. More...
|
|
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename PredFunc , typename TransFunc , typename CopyFunc > |
Index | filterCopyTransformParticles (DstPC &pc, DstTile &dst, SrcTile &src, Index dst_index, PredFunc &&filter, CopyFunc &©, TransFunc &&transform) noexcept |
| Apply a filter, copy, and transform operation to the particles in src, in that order, writing the result to dst, starting at dst_index. The dst tile will be extended so all the particles will fit, if needed. More...
|
|
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename TransFunc , typename CopyFunc1 , typename CopyFunc2 , amrex::EnableIf_t< std::is_integral< Index >::value, int > foo = 0> |
Index | filterCopyTransformParticles (DstPC &pc1, DstPC &pc2, DstTile &dst1, DstTile &dst2, SrcTile &src, Index *mask, Index dst1_index, Index dst2_index, CopyFunc1 &©1, CopyFunc2 &©2, TransFunc &&transform) noexcept |
| Apply a filter, copy, and transform operation to the particles in src, in that order, writing the results to dst1 and dst2, starting at dst1_index and dst2_index. The dst tiles will be extended so all the particles will fit, if needed. More...
|
|
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename PredFunc , typename TransFunc , typename CopyFunc1 , typename CopyFunc2 > |
Index | filterCopyTransformParticles (DstPC &pc1, DstPC &pc2, DstTile &dst1, DstTile &dst2, SrcTile &src, Index dst1_index, Index dst2_index, PredFunc &&filter, CopyFunc1 &©1, CopyFunc2 &©2, TransFunc &&transform) noexcept |
| Apply a filter, copy, and transform operation to the particles in src, in that order, writing the results to dst1 and dst2, starting at dst1_index and dst2_index. The dst tiles will be extended so all the particles will fit, if needed. More...
|
|
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename TransFunc , typename CopyFunc , amrex::EnableIf_t< std::is_integral< Index >::value, int > foo = 0>
Index filterCopyTransformParticles |
( |
DstPC & |
pc, |
|
|
DstTile & |
dst, |
|
|
SrcTile & |
src, |
|
|
Index * |
mask, |
|
|
Index |
dst_index, |
|
|
CopyFunc && |
copy, |
|
|
TransFunc && |
transform |
|
) |
| |
|
noexcept |
Apply a filter, copy, and transform operation to the particles in src, in that order, writing the result to dst, starting at dst_index. The dst tile will be extended so all the particles will fit, if needed.
Note that the transform function operates on both the src and the dst, so both can be modified.
This version of the function takes as inputs a mask which can be obtained using another version of filterCopyTransformParticles that takes a filter function as input.
- Template Parameters
-
N | number of particles created in the dst(s) for each filtered src particle |
DstTile | the dst particle tile type |
SrcTile | the src particle tile type |
Index | the index type, e.g. unsigned int |
TransFunc | the transform function type |
CopyFunc | the copy function type |
- Parameters
-
dst | the destination tile |
src | the source tile |
mask | pointer to the mask: 1 means copy, 0 means don't copy |
dst_index | the location at which to starting writing the result to dst |
copy | callable that defines what will be done for the "copy" step. |
transform | callable that defines the transformation to apply on dst and src. The form of the callable should model:
template <typename DstData, typename SrcData>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (DstData& dst, SrcData& src, int i_src, int i_dst);
where dst and src refer to the destination and source tiles and
i_src and i_dst and the particle indices in each tile.
|
- Returns
- num_added the number of particles that were written to dst.
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename PredFunc , typename TransFunc , typename CopyFunc >
Index filterCopyTransformParticles |
( |
DstPC & |
pc, |
|
|
DstTile & |
dst, |
|
|
SrcTile & |
src, |
|
|
Index |
dst_index, |
|
|
PredFunc && |
filter, |
|
|
CopyFunc && |
copy, |
|
|
TransFunc && |
transform |
|
) |
| |
|
noexcept |
Apply a filter, copy, and transform operation to the particles in src, in that order, writing the result to dst, starting at dst_index. The dst tile will be extended so all the particles will fit, if needed.
Note that the transform function operates on both the src and the dst, so both can be modified.
This version of the function takes as input a filter functor, uses it to obtain a mask and then calls another version of filterCopyTransformParticles that takes the mask as input.
- Template Parameters
-
N | number of particles created in the dst(s) for each filtered src particle |
DstTile | the dst particle tile type |
SrcTile | the src particle tile type |
Index | the index type, e.g. unsigned int |
Filter | the filter function type |
TransFunc | the transform function type |
CopyFunc | the copy function type |
- Parameters
-
dst | the destination tile |
src | the source tile |
dst_index | the location at which to starting writing the result to dst |
filter | a callable returning true if that particle is to be copied and transformed |
copy | callable that defines what will be done for the "copy" step. |
transform | callable that defines the transformation to apply on dst and src. The form of the callable should model:
template <typename DstData, typename SrcData>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (DstData& dst, SrcData& src, int i_src, int i_dst);
where dst and src refer to the destination and source tiles and
i_src and i_dst and the particle indices in each tile.
|
- Returns
- num_added the number of particles that were written to dst.
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename TransFunc , typename CopyFunc1 , typename CopyFunc2 , amrex::EnableIf_t< std::is_integral< Index >::value, int > foo = 0>
Index filterCopyTransformParticles |
( |
DstPC & |
pc1, |
|
|
DstPC & |
pc2, |
|
|
DstTile & |
dst1, |
|
|
DstTile & |
dst2, |
|
|
SrcTile & |
src, |
|
|
Index * |
mask, |
|
|
Index |
dst1_index, |
|
|
Index |
dst2_index, |
|
|
CopyFunc1 && |
copy1, |
|
|
CopyFunc2 && |
copy2, |
|
|
TransFunc && |
transform |
|
) |
| |
|
noexcept |
Apply a filter, copy, and transform operation to the particles in src, in that order, writing the results to dst1 and dst2, starting at dst1_index and dst2_index. The dst tiles will be extended so all the particles will fit, if needed.
Note that the transform function operates on all of src, dst1, and dst2, so all of them can be modified.
This version of the function takes as inputs a mask which can be obtained using another version of filterCopyTransformParticles that takes a filter function as input.
- Template Parameters
-
N | number of particles created in the dst(s) for each filtered src particle |
DstTile | the dst particle tile type |
SrcTile | the src particle tile type |
Index | the index type, e.g. unsigned int |
TransFunc | the transform function type |
CopyFunc1 | the copy function type for src-->dst1 |
CopyFunc2 | the copy function type for src-->dst2 |
- Parameters
-
dst1 | the destination tile |
dst2 | the destination tile |
src | the source tile |
mask | pointer to the mask: 1 means copy, 0 means don't copy |
dst1_index | the location at which to start writing the result to dst1 |
dst2_index | the location at which to start writing the result to dst2 |
copy1 | callable that defines what will be done for the "copy" step for src-->dst1. |
copy2 | callable that defines what will be done for the "copy" step for src-->dst2. |
transform | callable that defines the transformation to apply on dst and src. The form of the callable should model:
template <typename DstData, typename SrcData>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (DstData& dst, SrcData& src, int i_src, int i_dst);
where dst and src refer to the destination and source tiles and
i_src and i_dst and the particle indices in each tile.
|
- Returns
- num_added the number of particles that were written to dst.
template<int N, typename DstPC , typename DstTile , typename SrcTile , typename Index , typename PredFunc , typename TransFunc , typename CopyFunc1 , typename CopyFunc2 >
Index filterCopyTransformParticles |
( |
DstPC & |
pc1, |
|
|
DstPC & |
pc2, |
|
|
DstTile & |
dst1, |
|
|
DstTile & |
dst2, |
|
|
SrcTile & |
src, |
|
|
Index |
dst1_index, |
|
|
Index |
dst2_index, |
|
|
PredFunc && |
filter, |
|
|
CopyFunc1 && |
copy1, |
|
|
CopyFunc2 && |
copy2, |
|
|
TransFunc && |
transform |
|
) |
| |
|
noexcept |
Apply a filter, copy, and transform operation to the particles in src, in that order, writing the results to dst1 and dst2, starting at dst1_index and dst2_index. The dst tiles will be extended so all the particles will fit, if needed.
Note that the transform function operates on all of src, dst1, and dst2, so all of them can be modified.
This version of the function takes as input a filter functor, uses it to obtain a mask and then calls another version of filterCopyTransformParticles that takes the mask as input.
- Template Parameters
-
N | number of particles created in the dst(s) for each filtered src particle |
DstTile | the dst particle tile type |
SrcTile | the src particle tile type |
Index | the index type, e.g. unsigned int |
Filter | the filter function type |
TransFunc | the transform function type |
CopyFunc1 | the copy function type for src-->dst1 |
CopyFunc2 | the copy function type for src-->dst2 |
- Parameters
-
dst1 | the destination tile |
dst2 | the destination tile |
src | the source tile |
dst1_index | the location at which to starting writing the result to dst1 |
dst2_index | the location at which to starting writing the result to dst2 |
filter | a callable returning true if that particle is to be copied and transformed |
copy1 | callable that defines what will be done for the "copy" step for src-->dst1. |
copy2 | callable that defines what will be done for the "copy" step for src-->dst2. |
transform | callable that defines the transformation to apply on dst and src. The form of the callable should model:
template <typename DstData, typename SrcData>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
void operator() (DstData& dst, SrcData& src, int i_src, int i_dst);
where dst and src refer to the destination and source tiles and
i_src and i_dst and the particle indices in each tile.
|
- Returns
- num_added the number of particles that were written to dst.