Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

absorbinglayer_refineplasma_initlevel0 #143

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
628a368
add pml parameters for ref patch : abcinpml, cubicsigma, dampingstrength
RevathiJambunathan Mar 2, 2024
c6675cd
smooth tanh weighting for fp and cp interpolation in buffer region
RevathiJambunathan Mar 18, 2024
a25641c
merge smoothen buffer
RevathiJambunathan Mar 18, 2024
3feb26a
add diagnostic for processor number
hklion Feb 29, 2024
350b959
use MakeSimilarDM and also attempt to average dowm the costs
hklion Feb 29, 2024
2dd4822
Add Andrews SFC using vectorized levels
RevathiJambunathan Mar 1, 2024
24f1904
merge dm vector level
RevathiJambunathan Mar 20, 2024
e38355e
hack to force LB at first LB time
RevathiJambunathan Mar 20, 2024
6e8995e
fix startstep to force LB
RevathiJambunathan Mar 20, 2024
769f409
assigngrid with locator to refine plasma in regions overlapping with …
RevathiJambunathan Mar 29, 2024
bad7b50
enforce load balance at start step
RevathiJambunathan Mar 29, 2024
2674acc
Merge branch 'refineparticlesAddPlasma' of https://github.com/Revathi…
RevathiJambunathan Mar 29, 2024
1bb6369
flexible ref ratio for add plasma
RevathiJambunathan Apr 9, 2024
59e9012
refineplasma not a static var
RevathiJambunathan Apr 9, 2024
641fdca
comment in buffer mask for x-direction
RevathiJambunathan Apr 22, 2024
7956b1e
Merge branch 'HarrisSheetInXPMLParameters_SmoothenBufferFields' of ht…
RevathiJambunathan Apr 22, 2024
505546e
fix RefRation call
RevathiJambunathan Apr 22, 2024
8c137ca
parallel for outside for cuda
RevathiJambunathan Apr 22, 2024
5788d74
start level for LB
RevathiJambunathan May 3, 2024
19566fa
remote makeSimilarDM
RevathiJambunathan May 9, 2024
0f33db5
remove implementation for smoothing
RevathiJambunathan May 24, 2024
1ba9dc1
remove implementation for smoothening
RevathiJambunathan May 24, 2024
ee8d9bd
option for fgb cdb in each dir
RevathiJambunathan Jul 9, 2024
74cbd90
remove interpolation of fields in fgb region
RevathiJambunathan Aug 10, 2024
cf92850
merge with HS 08/11
RevathiJambunathan Aug 11, 2024
97271d0
fix tab
RevathiJambunathan Aug 12, 2024
0418eb1
EOL
RevathiJambunathan Aug 12, 2024
eea5eb8
backward compatibility for buffergathereachdir
RevathiJambunathan Aug 12, 2024
0c42c38
remove buffer each dir and initializeexternal field on Bfield_fp
RevathiJambunathan Aug 13, 2024
95cfda2
fix Refineplasma for level0 and particle locator default for level0 a…
RevathiJambunathan Aug 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 15 additions & 7 deletions Source/BoundaryConditions/PML.H
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,18 @@ struct SigmaBox
{
SigmaBox (const amrex::Box& box, const amrex::BoxArray& grids,
const amrex::Real* dx, const amrex::IntVect& ncell, const amrex::IntVect& delta,
const amrex::Box& regdomain, amrex::Real v_sigma);
const amrex::Box& regdomain, amrex::Real v_sigma,
const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength);

void define_single (const amrex::Box& regdomain, const amrex::IntVect& ncell,
const amrex::Array<amrex::Real,AMREX_SPACEDIM>& fac,
amrex::Real v_sigma);
amrex::Real v_sigma,
const int do_cubic_sigma_pml);
void define_multiple (const amrex::Box& box, const amrex::BoxArray& grids,
const amrex::IntVect& ncell,
const amrex::Array<amrex::Real,AMREX_SPACEDIM>& fac,
amrex::Real v_sigma);
amrex::Real v_sigma,
const int do_cubic_sigma_pml);

void ComputePMLFactorsB (const amrex::Real* dx, amrex::Real dt);
void ComputePMLFactorsE (const amrex::Real* dx, amrex::Real dt);
Expand All @@ -81,8 +84,9 @@ class SigmaBoxFactory
public:
SigmaBoxFactory (const amrex::BoxArray& grid_ba, const amrex::Real* dx,
const amrex::IntVect& ncell, const amrex::IntVect& delta,
const amrex::Box& regular_domain, const amrex::Real v_sigma_sb)
: m_grids(grid_ba), m_dx(dx), m_ncell(ncell), m_delta(delta), m_regdomain(regular_domain), m_v_sigma_sb(v_sigma_sb) {}
const amrex::Box& regular_domain, const amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength)
: m_grids(grid_ba), m_dx(dx), m_ncell(ncell), m_delta(delta), m_regdomain(regular_domain), m_v_sigma_sb(v_sigma_sb), m_do_cubic_sigma_pml(do_cubic_sigma_pml), m_pml_damping_strength(pml_damping_strength) {}
~SigmaBoxFactory () override = default;

SigmaBoxFactory (const SigmaBoxFactory&) = default;
Expand All @@ -95,7 +99,7 @@ public:
[[nodiscard]] SigmaBox* create (const amrex::Box& box, int /*ncomps*/,
const amrex::FabInfo& /*info*/, int /*box_index*/) const final
{
return new SigmaBox(box, m_grids, m_dx, m_ncell, m_delta, m_regdomain, m_v_sigma_sb);
return new SigmaBox(box, m_grids, m_dx, m_ncell, m_delta, m_regdomain, m_v_sigma_sb, m_do_cubic_sigma_pml, m_pml_damping_strength);
}

void destroy (SigmaBox* fab) const final
Expand All @@ -116,6 +120,8 @@ private:
amrex::IntVect m_delta;
amrex::Box m_regdomain;
amrex::Real m_v_sigma_sb;
int m_do_cubic_sigma_pml;
amrex::Real m_pml_damping_strength;
};

class MultiSigmaBox
Expand All @@ -125,7 +131,8 @@ public:
MultiSigmaBox(const amrex::BoxArray& ba, const amrex::DistributionMapping& dm,
const amrex::BoxArray& grid_ba, const amrex::Real* dx,
const amrex::IntVect& ncell, const amrex::IntVect& delta,
const amrex::Box& regular_domain, amrex::Real v_sigma_sb);
const amrex::Box& regular_domain, amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength);
void ComputePMLFactorsB (const amrex::Real* dx, amrex::Real dt);
void ComputePMLFactorsE (const amrex::Real* dx, amrex::Real dt);
private:
Expand All @@ -148,6 +155,7 @@ public:
const amrex::IntVect& fill_guards_fields,
const amrex::IntVect& fill_guards_current,
int max_guard_EB, amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength,
amrex::IntVect do_pml_Lo = amrex::IntVect::TheUnitVector(),
amrex::IntVect do_pml_Hi = amrex::IntVect::TheUnitVector());

Expand Down
86 changes: 56 additions & 30 deletions Source/BoundaryConditions/PML.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ namespace
void FillLo (Sigma& sigma, Sigma& sigma_cumsum,
Sigma& sigma_star, Sigma& sigma_star_cumsum,
const int olo, const int ohi, const int glo, Real fac,
const amrex::Real v_sigma)
const amrex::Real v_sigma, const int do_cubic_sigma_pml)
{
const int slo = sigma.m_lo;
const int sslo = sigma_star.m_lo;

int sigma_exp = (do_cubic_sigma_pml==1) ? 3 : 2;
const int N = ohi+1-olo+1;
Real* p_sigma = sigma.data();
Real* p_sigma_cumsum = sigma_cumsum.data();
Expand All @@ -78,25 +78,34 @@ namespace
{
i += olo;
Real offset = static_cast<Real>(glo-i);
p_sigma[i-slo] = fac*(offset*offset);
amrex::Real offset_exp = 1._rt;
for (int iexp = 0; iexp < sigma_exp; ++iexp){
offset_exp *= offset;
}
p_sigma[i-slo] = fac*(offset_exp);
// sigma_cumsum is the analytical integral of sigma function at same points than sigma
p_sigma_cumsum[i-slo] = (fac*(offset*offset*offset)/3._rt)/v_sigma;
p_sigma_cumsum[i-slo] = (fac*(offset*offset_exp)/(sigma_exp+1._rt))/v_sigma;
if (i <= ohi+1) {
offset = static_cast<Real>(glo-i) - 0.5_rt;
p_sigma_star[i-sslo] = fac*(offset*offset);
offset_exp = 1._rt;
for (int iexp = 0; iexp < sigma_exp; ++iexp){
offset_exp *= offset;
}
p_sigma_star[i-sslo] = fac*(offset_exp);
// sigma_star_cumsum is the analytical integral of sigma function at same points than sigma_star
p_sigma_star_cumsum[i-sslo] = (fac*(offset*offset*offset)/3._rt)/v_sigma;
p_sigma_star_cumsum[i-sslo] = (fac*(offset*offset_exp)/(sigma_exp + 1._rt))/v_sigma;
}
});
}

void FillHi (Sigma& sigma, Sigma& sigma_cumsum,
Sigma& sigma_star, Sigma& sigma_star_cumsum,
const int olo, const int ohi, const int ghi, Real fac,
const amrex::Real v_sigma)
const amrex::Real v_sigma, const int do_cubic_sigma_pml)
{
const int slo = sigma.m_lo;
const int sslo = sigma_star.m_lo;
int sigma_exp = (do_cubic_sigma_pml==1) ? 3 : 2;

const int N = ohi+1-olo+1;
Real* p_sigma = sigma.data();
Expand All @@ -107,12 +116,20 @@ namespace
{
i += olo;
Real offset = static_cast<Real>(i-ghi-1);
p_sigma[i-slo] = fac*(offset*offset);
p_sigma_cumsum[i-slo] = (fac*(offset*offset*offset)/3._rt)/v_sigma;
amrex::Real offset_exp = 1._rt;
for (int iexp = 0; iexp < sigma_exp; ++iexp){
offset_exp *= offset;
}
p_sigma[i-slo] = fac*(offset_exp);
p_sigma_cumsum[i-slo] = (fac*(offset*offset_exp)/(sigma_exp+1._rt))/v_sigma;
if (i <= ohi+1) {
offset = static_cast<Real>(i-ghi) - 0.5_rt;
p_sigma_star[i-sslo] = fac*(offset*offset);
p_sigma_star_cumsum[i-sslo] = (fac*(offset*offset*offset)/3._rt)/v_sigma;
offset_exp = 1._rt;
for (int iexp = 0; iexp < sigma_exp; ++iexp){
offset_exp *= offset;
}
p_sigma_star[i-sslo] = fac*(offset_exp);
p_sigma_star_cumsum[i-sslo] = (fac*(offset*offset_exp)/(sigma_exp + 1._rt))/v_sigma;
}
});
}
Expand Down Expand Up @@ -146,7 +163,8 @@ namespace


SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, const IntVect& ncell,
const IntVect& delta, const amrex::Box& regdomain, const amrex::Real v_sigma_sb)
const IntVect& delta, const amrex::Box& regdomain, const amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength)
{
BL_ASSERT(box.cellCentered());

Expand Down Expand Up @@ -182,22 +200,27 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, const
sigma_star_cumsum_fac[idim].m_lo = lo[idim];
sigma_star_cumsum_fac[idim].m_hi = hi[idim]+1;
}

int sigma_exp = (do_cubic_sigma_pml==1) ? 3 : 2;
Array<Real,AMREX_SPACEDIM> fac;
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
fac[idim] = 4.0_rt*PhysConst::c/(dx[idim]*static_cast<Real>(delta[idim]*delta[idim]));
amrex::Real delta_exp = 1._rt;
for (int iexp = 0; iexp < sigma_exp; ++iexp) {
delta_exp *= static_cast<amrex::Real>(delta[idim]);
}
fac[idim] = pml_damping_strength*PhysConst::c/(dx[idim]*delta_exp);
}

if (regdomain.ok()) { // The union of the regular grids is a single box
define_single(regdomain, ncell, fac, v_sigma_sb);
define_single(regdomain, ncell, fac, v_sigma_sb, do_cubic_sigma_pml);
} else {
define_multiple(box, grids, ncell, fac, v_sigma_sb);
define_multiple(box, grids, ncell, fac, v_sigma_sb, do_cubic_sigma_pml);
}
}

void SigmaBox::define_single (const Box& regdomain, const IntVect& ncell,
const Array<Real,AMREX_SPACEDIM>& fac,
const amrex::Real v_sigma_sb)
const amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml)
{
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
const int slo = sigma[idim].lo();
Expand All @@ -211,7 +234,8 @@ void SigmaBox::define_single (const Box& regdomain, const IntVect& ncell,
if (ohi >= olo) {
FillLo(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
olo, ohi, dlo, fac[idim], v_sigma_sb);
olo, ohi, dlo, fac[idim], v_sigma_sb,
do_cubic_sigma_pml);
}

#if (AMREX_SPACEDIM != 1)
Expand All @@ -231,15 +255,16 @@ void SigmaBox::define_single (const Box& regdomain, const IntVect& ncell,
if (ohi >= olo) {
FillHi(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
olo, ohi, dhi, fac[idim], v_sigma_sb);
olo, ohi, dhi, fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}
}

amrex::Gpu::streamSynchronize();
}

void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const IntVect& ncell,
const Array<Real,AMREX_SPACEDIM>& fac, const amrex::Real v_sigma_sb)
const Array<Real,AMREX_SPACEDIM>& fac, const amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml)
{
const std::vector<std::pair<int,Box> >& isects = grids.intersections(box, false, ncell);

Expand Down Expand Up @@ -309,7 +334,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillLo(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
looverlap.smallEnd(idim), looverlap.bigEnd(idim),
grid_box.smallEnd(idim), fac[idim], v_sigma_sb);
grid_box.smallEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

Box hibox = amrex::adjCellHi(grid_box, idim, ncell[idim]);
Expand All @@ -322,7 +347,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillHi(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
hioverlap.smallEnd(idim), hioverlap.bigEnd(idim),
grid_box.bigEnd(idim), fac[idim], v_sigma_sb);
grid_box.bigEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
Expand Down Expand Up @@ -358,7 +383,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillLo(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
looverlap.smallEnd(idim), looverlap.bigEnd(idim),
grid_box.smallEnd(idim), fac[idim], v_sigma_sb);
grid_box.smallEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

Box hibox = amrex::adjCellHi(grid_box, idim, ncell[idim]);
Expand All @@ -367,7 +392,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillHi(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
hioverlap.smallEnd(idim), hioverlap.bigEnd(idim),
grid_box.bigEnd(idim), fac[idim], v_sigma_sb);
grid_box.bigEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
Expand Down Expand Up @@ -408,7 +433,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillLo(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
looverlap.smallEnd(idim), looverlap.bigEnd(idim),
grid_box.smallEnd(idim), fac[idim], v_sigma_sb);
grid_box.smallEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

const Box& hibox = amrex::adjCellHi(grid_box, idim, ncell[idim]);
Expand All @@ -417,7 +442,7 @@ void SigmaBox::define_multiple (const Box& box, const BoxArray& grids, const Int
FillHi(sigma[idim], sigma_cumsum[idim],
sigma_star[idim], sigma_star_cumsum[idim],
hioverlap.smallEnd(idim), hioverlap.bigEnd(idim),
grid_box.bigEnd(idim), fac[idim], v_sigma_sb);
grid_box.bigEnd(idim), fac[idim], v_sigma_sb, do_cubic_sigma_pml);
}

WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
Expand Down Expand Up @@ -508,9 +533,9 @@ SigmaBox::ComputePMLFactorsE (const Real* a_dx, Real dt)
MultiSigmaBox::MultiSigmaBox (const BoxArray& ba, const DistributionMapping& dm,
const BoxArray& grid_ba, const Real* dx,
const IntVect& ncell, const IntVect& delta,
const amrex::Box& regular_domain, const amrex::Real v_sigma_sb)
const amrex::Box& regular_domain, const amrex::Real v_sigma_sb, const int do_cubic_sigma_pml, const amrex::Real pml_damping_strength)
: FabArray<SigmaBox>(ba,dm,1,0,MFInfo(),
SigmaBoxFactory(grid_ba,dx,ncell,delta, regular_domain, v_sigma_sb))
SigmaBoxFactory(grid_ba,dx,ncell,delta, regular_domain, v_sigma_sb,do_cubic_sigma_pml,pml_damping_strength))
{}

void
Expand Down Expand Up @@ -557,6 +582,7 @@ PML::PML (const int lev, const BoxArray& grid_ba,
const amrex::IntVect& fill_guards_fields,
const amrex::IntVect& fill_guards_current,
int max_guard_EB, const amrex::Real v_sigma_sb,
const int do_cubic_sigma_pml, amrex::Real pml_damping_strength,
const amrex::IntVect do_pml_Lo, const amrex::IntVect do_pml_Hi)
: m_dive_cleaning(do_pml_dive_cleaning),
m_divb_cleaning(do_pml_divb_cleaning),
Expand Down Expand Up @@ -744,7 +770,7 @@ PML::PML (const int lev, const BoxArray& grid_ba,
Box single_domain_box = is_single_box_domain ? domain0 : Box();
// Empty box (i.e., Box()) means it's not a single box domain.
sigba_fp = std::make_unique<MultiSigmaBox>(ba, dm, grid_ba_reduced, geom->CellSize(),
IntVect(ncell), IntVect(delta), single_domain_box, v_sigma_sb);
IntVect(ncell), IntVect(delta), single_domain_box, v_sigma_sb, do_cubic_sigma_pml, pml_damping_strength);

if (WarpX::electromagnetic_solver_id == ElectromagneticSolverAlgo::PSATD) {
#ifndef WARPX_USE_FFT
Expand Down Expand Up @@ -859,7 +885,7 @@ PML::PML (const int lev, const BoxArray& grid_ba,

single_domain_box = is_single_box_domain ? cdomain : Box();
sigba_cp = std::make_unique<MultiSigmaBox>(cba, cdm, grid_cba_reduced, cgeom->CellSize(),
cncells, cdelta, single_domain_box, v_sigma_sb);
cncells, cdelta, single_domain_box, v_sigma_sb, do_cubic_sigma_pml, pml_damping_strength);

if (WarpX::electromagnetic_solver_id == ElectromagneticSolverAlgo::PSATD) {
#ifndef WARPX_USE_FFT
Expand Down
14 changes: 7 additions & 7 deletions Source/BoundaryConditions/WarpXEvolvePML.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ WarpX::DampPML_Cartesian (const int lev, PatchType patch_type)
{
const bool dive_cleaning = WarpX::do_pml_dive_cleaning;
const bool divb_cleaning = WarpX::do_pml_divb_cleaning;

const bool abc_in_pml = WarpX::do_abc_in_pml;
if (pml[lev]->ok())
{
const auto& pml_E = (patch_type == PatchType::fine) ? pml[lev]->GetE_fp() : pml[lev]->GetE_cp();
Expand Down Expand Up @@ -154,39 +154,39 @@ WarpX::DampPML_Cartesian (const int lev, PatchType patch_type)

warpx_damp_pml_ex(i, j, k, pml_Exfab, Ex_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
dive_cleaning, abc_in_pml);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {

warpx_damp_pml_ey(i, j, k, pml_Eyfab, Ey_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
dive_cleaning, abc_in_pml);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {

warpx_damp_pml_ez(i, j, k, pml_Ezfab, Ez_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
dive_cleaning, abc_in_pml);
});

amrex::ParallelFor(tbx, tby, tbz,
[=] AMREX_GPU_DEVICE (int i, int j, int k) {

warpx_damp_pml_bx(i, j, k, pml_Bxfab, Bx_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);
divb_cleaning, abc_in_pml);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {

warpx_damp_pml_by(i, j, k, pml_Byfab, By_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);
divb_cleaning, abc_in_pml);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {

warpx_damp_pml_bz(i, j, k, pml_Bzfab, Bz_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);
divb_cleaning, abc_in_pml);
});

// For warpx_damp_pml_F(), mfi.nodaltilebox is used in the ParallelFor loop and here we
Expand Down
Loading
Loading