Skip to content

Commit 879caec

Browse files
authored
WarpX class : em_solver_medium no longer a static variable (#5642)
This PR turns the static variable `em_solver_medium` of the WarpX class into a private non-static member variable : `m_em_solver_medium` . This is done with the aim of reducing the usage of static variables in WarpX.
1 parent 5f32399 commit 879caec

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

Source/Evolve/WarpXEvolve.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -438,10 +438,10 @@ WarpX::OneStep_nosub (Real cur_time)
438438
EvolveB(0.5_rt * dt[0], DtType::FirstHalf, cur_time); // We now have B^{n+1/2}
439439
FillBoundaryB(guard_cells.ng_FieldSolver, WarpX::sync_nodal_points);
440440

441-
if (WarpX::em_solver_medium == MediumForEM::Vacuum) {
441+
if (m_em_solver_medium == MediumForEM::Vacuum) {
442442
// vacuum medium
443443
EvolveE(dt[0], cur_time); // We now have E^{n+1}
444-
} else if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
444+
} else if (m_em_solver_medium == MediumForEM::Macroscopic) {
445445
// macroscopic medium
446446
MacroscopicEvolveE(dt[0], cur_time); // We now have E^{n+1}
447447
} else {

Source/Initialization/WarpXInitData.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -288,17 +288,17 @@ WarpX::PrintMainPICparameters ()
288288
else{
289289
amrex::Print() << "Operation mode: | Electromagnetic" << "\n";
290290
}
291-
if (em_solver_medium == MediumForEM::Vacuum ){
291+
if (m_em_solver_medium == MediumForEM::Vacuum ){
292292
amrex::Print() << " | - vacuum" << "\n";
293293
}
294-
else if (em_solver_medium == MediumForEM::Macroscopic ){
294+
else if (m_em_solver_medium == MediumForEM::Macroscopic ){
295295
amrex::Print() << " | - macroscopic" << "\n";
296296
}
297-
if ( (em_solver_medium == MediumForEM::Macroscopic) &&
297+
if ( (m_em_solver_medium == MediumForEM::Macroscopic) &&
298298
(WarpX::macroscopic_solver_algo == MacroscopicSolverAlgo::LaxWendroff)){
299299
amrex::Print() << " | - Lax-Wendroff algorithm\n";
300300
}
301-
else if ((em_solver_medium == MediumForEM::Macroscopic) &&
301+
else if ((m_em_solver_medium == MediumForEM::Macroscopic) &&
302302
(WarpX::macroscopic_solver_algo == MacroscopicSolverAlgo::BackwardEuler)){
303303
amrex::Print() << " | - Backward Euler algorithm\n";
304304
}
@@ -561,7 +561,7 @@ WarpX::InitData ()
561561

562562
BuildBufferMasks();
563563

564-
if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
564+
if (m_em_solver_medium == MediumForEM::Macroscopic) {
565565
const int lev_zero = 0;
566566
m_macroscopic_properties->InitData(
567567
Geom(lev_zero),

Source/Utils/WarpXMovingWindow.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ WarpX::MoveWindow (const int step, bool move_j)
464464
}
465465

466466
// Recompute macroscopic properties of the medium
467-
if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
467+
if (m_em_solver_medium == MediumForEM::Macroscopic) {
468468
const int lev_zero = 0;
469469
m_macroscopic_properties->InitData(
470470
Geom(lev_zero),

Source/WarpX.H

+3-2
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,6 @@ public:
206206
* being used (0 or 1 corresponding to timers or heuristic).
207207
*/
208208
static inline auto load_balance_costs_update_algo = LoadBalanceCostsUpdateAlgo::Default;
209-
//! Integer that corresponds to electromagnetic Maxwell solver (vacuum - 0, macroscopic - 1)
210-
static inline auto em_solver_medium = MediumForEM::Default;
211209
/** Integer that correspond to macroscopic Maxwell solver algorithm
212210
* (BackwardEuler - 0, Lax-Wendroff - 1)
213211
*/
@@ -1371,6 +1369,9 @@ private:
13711369
bool do_fluid_species = false;
13721370
std::unique_ptr<MultiFluidContainer> myfl;
13731371

1372+
//! Integer that corresponds to electromagnetic Maxwell solver (vacuum - 0, macroscopic - 1)
1373+
MediumForEM m_em_solver_medium = MediumForEM::Default;
1374+
13741375
//
13751376
// Fields: First array for level, second for direction
13761377
//

Source/WarpX.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ WarpX::WarpX ()
352352

353353
m_field_factory.resize(nlevs_max);
354354

355-
if (em_solver_medium == MediumForEM::Macroscopic) {
355+
if (m_em_solver_medium == MediumForEM::Macroscopic) {
356356
// create object for macroscopic solver
357357
m_macroscopic_properties = std::make_unique<MacroscopicProperties>();
358358
}
@@ -1248,8 +1248,8 @@ WarpX::ReadParameters ()
12481248
" combined with mesh refinement is currently not implemented");
12491249
}
12501250

1251-
pp_algo.query_enum_sloppy("em_solver_medium", em_solver_medium, "-_");
1252-
if (em_solver_medium == MediumForEM::Macroscopic ) {
1251+
pp_algo.query_enum_sloppy("em_solver_medium", m_em_solver_medium, "-_");
1252+
if (m_em_solver_medium == MediumForEM::Macroscopic ) {
12531253
pp_algo.query_enum_sloppy("macroscopic_sigma_method",
12541254
macroscopic_solver_algo, "-_");
12551255
}
@@ -2274,7 +2274,7 @@ WarpX::AllocLevelMFs (int lev, const BoxArray& ba, const DistributionMapping& dm
22742274
}
22752275

22762276
// Allocate extra multifabs for macroscopic properties of the medium
2277-
if (em_solver_medium == MediumForEM::Macroscopic) {
2277+
if (m_em_solver_medium == MediumForEM::Macroscopic) {
22782278
WARPX_ALWAYS_ASSERT_WITH_MESSAGE( lev==0,
22792279
"Macroscopic properties are not supported with mesh refinement.");
22802280
m_macroscopic_properties->AllocateLevelMFs(ba, dm, ngEB);

0 commit comments

Comments
 (0)