aboutsummaryrefslogtreecommitdiff
path: root/Source/Python/WarpXWrappers.cpp
diff options
context:
space:
mode:
authorGravatar Dave Grote <grote1@llnl.gov> 2019-09-06 14:06:08 -0700
committerGravatar Dave Grote <grote1@llnl.gov> 2019-09-06 14:06:08 -0700
commit0e0f6b2f11968357ee9890a507d939e63f68bb45 (patch)
tree04bdb115d0a95ba91728778a9279db652da510b1 /Source/Python/WarpXWrappers.cpp
parent62496147d69527a138cd1f195e462c4afa89b7f4 (diff)
downloadWarpX-0e0f6b2f11968357ee9890a507d939e63f68bb45.tar.gz
WarpX-0e0f6b2f11968357ee9890a507d939e63f68bb45.tar.zst
WarpX-0e0f6b2f11968357ee9890a507d939e63f68bb45.zip
Updated Python particles interface to allow refined levels
Diffstat (limited to 'Source/Python/WarpXWrappers.cpp')
-rw-r--r--Source/Python/WarpXWrappers.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/Source/Python/WarpXWrappers.cpp b/Source/Python/WarpXWrappers.cpp
index a60efd498..2fb7200bb 100644
--- a/Source/Python/WarpXWrappers.cpp
+++ b/Source/Python/WarpXWrappers.cpp
@@ -308,23 +308,21 @@ extern "C"
return getMultiFabLoVects(mf, return_size, ngrow);
}
- double** warpx_getParticleStructs(int speciesnumber,
+ double** warpx_getParticleStructs(int speciesnumber, int lev,
int* num_tiles, int** particles_per_tile) {
auto & mypc = WarpX::GetInstance().GetPartContainer();
auto & myspc = mypc.GetParticleContainer(speciesnumber);
- const int level = 0;
-
int i = 0;
- for (WarpXParIter pti(myspc, level); pti.isValid(); ++pti, ++i) {}
+ for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {}
- // *num_tiles = myspc.numLocalTilesAtLevel(level);
+ // *num_tiles = myspc.numLocalTilesAtLevel(lev);
*num_tiles = i;
*particles_per_tile = (int*) malloc(*num_tiles*sizeof(int));
double** data = (double**) malloc(*num_tiles*sizeof(typename WarpXParticleContainer::ParticleType*));
i = 0;
- for (WarpXParIter pti(myspc, level); pti.isValid(); ++pti, ++i) {
+ for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {
auto& aos = pti.GetArrayOfStructs();
data[i] = (double*) aos.data();
(*particles_per_tile)[i] = pti.numParticles();
@@ -332,23 +330,21 @@ extern "C"
return data;
}
- double** warpx_getParticleArrays(int speciesnumber, int comp,
+ double** warpx_getParticleArrays(int speciesnumber, int comp, int lev,
int* num_tiles, int** particles_per_tile) {
auto & mypc = WarpX::GetInstance().GetPartContainer();
auto & myspc = mypc.GetParticleContainer(speciesnumber);
- const int level = 0;
-
int i = 0;
- for (WarpXParIter pti(myspc, level); pti.isValid(); ++pti, ++i) {}
+ for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {}
- // *num_tiles = myspc.numLocalTilesAtLevel(level);
+ // *num_tiles = myspc.numLocalTilesAtLevel(lev);
*num_tiles = i;
*particles_per_tile = (int*) malloc(*num_tiles*sizeof(int));
double** data = (double**) malloc(*num_tiles*sizeof(double*));
i = 0;
- for (WarpXParIter pti(myspc, level); pti.isValid(); ++pti, ++i) {
+ for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {
auto& soa = pti.GetStructOfArrays();
data[i] = (double*) soa.GetRealData(comp).dataPtr();
(*particles_per_tile)[i] = pti.numParticles();