diff options
author | 2020-05-01 16:44:35 -0700 | |
---|---|---|
committer | 2020-05-01 16:44:35 -0700 | |
commit | 26d6358d3c7aff7b4310af34fc771d5c8f2628fe (patch) | |
tree | a152e03b2224c5b420ab99e8f8bb6cb40aa40ef7 /Source/Python/WarpXWrappers.cpp | |
parent | ed8fdc9ca97aa51c522549c565dda4123c679eba (diff) | |
download | WarpX-26d6358d3c7aff7b4310af34fc771d5c8f2628fe.tar.gz WarpX-26d6358d3c7aff7b4310af34fc771d5c8f2628fe.tar.zst WarpX-26d6358d3c7aff7b4310af34fc771d5c8f2628fe.zip |
Do not rely on nodal flags (#931)
* Start removing nodal flags where possible
* Remove additional nodal flags
* Clean up getFieldNodalFlagData in Python wrappers
* Remove nodal flags from PML files
* Revert "Remove nodal flags from PML files"
This reverts commit 1d58519f9cee2e64df811f76f3d8a0aead1aa4ef.
* Fix issue when removing nodal flags from PML files
* Remove nodal flags from (OLD) slice diagnostics
* Nodal flags are now local variables in WarpX::AllocLevelMFs
* Trigger Travis CI build after AMReX bug fix
* Void commit: trigger Travis CI build
Diffstat (limited to 'Source/Python/WarpXWrappers.cpp')
-rw-r--r-- | Source/Python/WarpXWrappers.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/Source/Python/WarpXWrappers.cpp b/Source/Python/WarpXWrappers.cpp index 58a2067bc..e87a20a7a 100644 --- a/Source/Python/WarpXWrappers.cpp +++ b/Source/Python/WarpXWrappers.cpp @@ -57,18 +57,19 @@ namespace } return loVects; } - int* getFieldNodalFlagData(const amrex::IntVect nodal_flag) + // Copy the nodal flag data and return the copy: + // the nodal flag data should not be modifiable from Python. + int* getFieldNodalFlagData ( const amrex::MultiFab& mf ) { - /* 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)); + const amrex::IntVect nodal_flag( mf.ixType().toIntVect() ); + int *nodal_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); + nodal_flag_data[i] = (nodal_flag[i] == NODE ? 1 : 0); } - return nodel_flag_data; + return nodal_flag_data; } } @@ -275,16 +276,16 @@ 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);} + int* warpx_getEx_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getEfield(0,0) );} + int* warpx_getEy_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getEfield(0,1) );} + int* warpx_getEz_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getEfield(0,2) );} + int* warpx_getBx_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getBfield(0,0) );} + int* warpx_getBy_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getBfield(0,1) );} + int* warpx_getBz_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getBfield(0,2) );} + int* warpx_getJx_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getcurrent(0,0) );} + int* warpx_getJy_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getcurrent(0,1) );} + int* warpx_getJz_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getcurrent(0,2) );} + int* warpx_getRho_nodal_flag() {return getFieldNodalFlagData( WarpX::GetInstance().getrho_fp(0) );} #define WARPX_GET_SCALAR(SCALAR, GETTER) \ amrex::Real** SCALAR(int lev, \ |