aboutsummaryrefslogtreecommitdiff
path: root/Source/Python/WarpXWrappers.cpp
diff options
context:
space:
mode:
authorGravatar David Grote <grote1@llnl.gov> 2020-03-23 13:45:33 -0700
committerGravatar GitHub <noreply@github.com> 2020-03-23 13:45:33 -0700
commit984c6f89ead2f761b6f948d19dc8724052a48a6d (patch)
tree702c7cdb89fc9c3f9dd8dac47a334d80c21da316 /Source/Python/WarpXWrappers.cpp
parent24aef3703b91c74c9cf049ee863415bb3ce4fbe1 (diff)
downloadWarpX-984c6f89ead2f761b6f948d19dc8724052a48a6d.tar.gz
WarpX-984c6f89ead2f761b6f948d19dc8724052a48a6d.tar.zst
WarpX-984c6f89ead2f761b6f948d19dc8724052a48a6d.zip
Updated Python interface for Python_Langmuir_rz_multimode test (#810)
* Added nodal and cell size data to the Python interface and updates the Python_Langmuir_rz_multimode regression test * Cleanup of PICMI_inputs_langmuir_rz_multimode_analyze.py
Diffstat (limited to 'Source/Python/WarpXWrappers.cpp')
-rw-r--r--Source/Python/WarpXWrappers.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/Python/WarpXWrappers.cpp b/Source/Python/WarpXWrappers.cpp
index 5c1964b1a..a7e50d502 100644
--- a/Source/Python/WarpXWrappers.cpp
+++ b/Source/Python/WarpXWrappers.cpp
@@ -57,6 +57,19 @@ namespace
}
return loVects;
}
+ int* getFieldNodalFlagData(const amrex::IntVect nodal_flag)
+ {
+ /* Copy the nodal flag data and return the copy.
+ * The nodel flag data should not be modifiable from Python. */
+ int *nodel_flag_data = (int*) malloc(AMREX_SPACEDIM * sizeof(int));
+
+ constexpr int NODE = amrex::IndexType::NODE;
+
+ for (int i=0 ; i < AMREX_SPACEDIM ; i++) {
+ nodel_flag_data[i] = (nodal_flag[i] == NODE ? 1 : 0);
+ }
+ return nodel_flag_data;
+ }
}
extern "C"
@@ -213,6 +226,11 @@ extern "C"
return geom.ProbHi(dir);
}
+ amrex::Real warpx_getCellSize(int dir, int lev) {
+ const std::array<amrex::Real,3>& dx = WarpX::CellSize(lev);
+ return dx[dir];
+ }
+
long warpx_getNumParticles(int speciesnumber) {
auto & mypc = WarpX::GetInstance().GetPartContainer();
auto & myspc = mypc.GetParticleContainer(speciesnumber);
@@ -257,6 +275,17 @@ extern "C"
WARPX_GET_LOVECTS(warpx_getCurrentDensityCPLoVects, WarpX::GetInstance().getcurrent_cp);
WARPX_GET_LOVECTS(warpx_getCurrentDensityFPLoVects, WarpX::GetInstance().getcurrent_fp);
+ int* warpx_getEx_nodal_flag() {return getFieldNodalFlagData(WarpX::Ex_nodal_flag);}
+ int* warpx_getEy_nodal_flag() {return getFieldNodalFlagData(WarpX::Ey_nodal_flag);}
+ int* warpx_getEz_nodal_flag() {return getFieldNodalFlagData(WarpX::Ez_nodal_flag);}
+ int* warpx_getBx_nodal_flag() {return getFieldNodalFlagData(WarpX::Bx_nodal_flag);}
+ int* warpx_getBy_nodal_flag() {return getFieldNodalFlagData(WarpX::By_nodal_flag);}
+ int* warpx_getBz_nodal_flag() {return getFieldNodalFlagData(WarpX::Bz_nodal_flag);}
+ int* warpx_getJx_nodal_flag() {return getFieldNodalFlagData(WarpX::jx_nodal_flag);}
+ int* warpx_getJy_nodal_flag() {return getFieldNodalFlagData(WarpX::jy_nodal_flag);}
+ int* warpx_getJz_nodal_flag() {return getFieldNodalFlagData(WarpX::jz_nodal_flag);}
+ int* warpx_getRho_nodal_flag() {return getFieldNodalFlagData(WarpX::rho_nodal_flag);}
+
#define WARPX_GET_SCALAR(SCALAR, GETTER) \
amrex::Real** SCALAR(int lev, \
int *return_size, int *ncomps, int *ngrow, int **shapes) { \