diff options
author | 2020-09-30 22:18:46 +0200 | |
---|---|---|
committer | 2020-09-30 13:18:46 -0700 | |
commit | 1c20a09ba6268b2e7d23041c09060bcf1df23628 (patch) | |
tree | dac9d8f2a1724b43c9ce36a4a234a89a93d6068b /Source | |
parent | f2e4811afdc32055e5fa49241c02deae4e5ad318 (diff) | |
download | WarpX-1c20a09ba6268b2e7d23041c09060bcf1df23628.tar.gz WarpX-1c20a09ba6268b2e7d23041c09060bcf1df23628.tar.zst WarpX-1c20a09ba6268b2e7d23041c09060bcf1df23628.zip |
Remove instability on PML with do_nodal (#1379)
* Increase size of sigma_star by 1 in nodal mode
* Add do_nodal to FabFactory<SigmaBox>
* Add ifdef WARPX_USE_PSATD directives
* Increase size of sigma_star arrays by one regardless of nodal state
Diffstat (limited to 'Source')
-rw-r--r-- | Source/BoundaryConditions/PML.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp index 8141f7abf..202867bdb 100644 --- a/Source/BoundaryConditions/PML.cpp +++ b/Source/BoundaryConditions/PML.cpp @@ -125,29 +125,29 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n { sigma [idim].resize(sz[idim]+1); sigma_cumsum [idim].resize(sz[idim]+1); - sigma_star [idim].resize(sz[idim]); - sigma_star_cumsum [idim].resize(sz[idim]); + sigma_star [idim].resize(sz[idim]+1); + sigma_star_cumsum [idim].resize(sz[idim]+1); sigma_fac [idim].resize(sz[idim]+1); sigma_cumsum_fac [idim].resize(sz[idim]+1); - sigma_star_fac [idim].resize(sz[idim]); - sigma_star_cumsum_fac[idim].resize(sz[idim]); + sigma_star_fac [idim].resize(sz[idim]+1); + sigma_star_cumsum_fac[idim].resize(sz[idim]+1); sigma [idim].m_lo = lo[idim]; sigma [idim].m_hi = hi[idim]+1; sigma_cumsum [idim].m_lo = lo[idim]; sigma_cumsum [idim].m_hi = hi[idim]+1; sigma_star [idim].m_lo = lo[idim]; - sigma_star [idim].m_hi = hi[idim]; + sigma_star [idim].m_hi = hi[idim]+1; sigma_star_cumsum [idim].m_lo = lo[idim]; - sigma_star_cumsum [idim].m_hi = hi[idim]; + sigma_star_cumsum [idim].m_hi = hi[idim]+1; sigma_fac [idim].m_lo = lo[idim]; sigma_fac [idim].m_hi = hi[idim]+1; sigma_cumsum_fac [idim].m_lo = lo[idim]; sigma_cumsum_fac [idim].m_hi = hi[idim]+1; sigma_star_fac [idim].m_lo = lo[idim]; - sigma_star_fac [idim].m_hi = hi[idim]; + sigma_star_fac [idim].m_hi = hi[idim]+1; sigma_star_cumsum_fac[idim].m_lo = lo[idim]; - sigma_star_cumsum_fac[idim].m_hi = hi[idim]; + sigma_star_cumsum_fac[idim].m_hi = hi[idim]+1; } Array<Real,AMREX_SPACEDIM> fac; |