Skip to content

Commit

Permalink
make em_solver_medium a non-static variable
Browse files Browse the repository at this point in the history
  • Loading branch information
lucafedeli88 committed Feb 5, 2025
1 parent cdb9e27 commit 0ef496b
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 14 deletions.
4 changes: 2 additions & 2 deletions Source/Evolve/WarpXEvolve.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,10 +438,10 @@ WarpX::OneStep_nosub (Real cur_time)
EvolveB(0.5_rt * dt[0], DtType::FirstHalf, cur_time); // We now have B^{n+1/2}
FillBoundaryB(guard_cells.ng_FieldSolver, WarpX::sync_nodal_points);

if (WarpX::em_solver_medium == MediumForEM::Vacuum) {
if (m_em_solver_medium == MediumForEM::Vacuum) {
// vacuum medium
EvolveE(dt[0], cur_time); // We now have E^{n+1}
} else if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
} else if (m_em_solver_medium == MediumForEM::Macroscopic) {
// macroscopic medium
MacroscopicEvolveE(dt[0], cur_time); // We now have E^{n+1}
} else {
Expand Down
10 changes: 5 additions & 5 deletions Source/Initialization/WarpXInitData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -288,17 +288,17 @@ WarpX::PrintMainPICparameters ()
else{
amrex::Print() << "Operation mode: | Electromagnetic" << "\n";
}
if (em_solver_medium == MediumForEM::Vacuum ){
if (m_em_solver_medium == MediumForEM::Vacuum ){
amrex::Print() << " | - vacuum" << "\n";
}
else if (em_solver_medium == MediumForEM::Macroscopic ){
else if (m_em_solver_medium == MediumForEM::Macroscopic ){
amrex::Print() << " | - macroscopic" << "\n";
}
if ( (em_solver_medium == MediumForEM::Macroscopic) &&
if ( (m_em_solver_medium == MediumForEM::Macroscopic) &&
(WarpX::macroscopic_solver_algo == MacroscopicSolverAlgo::LaxWendroff)){
amrex::Print() << " | - Lax-Wendroff algorithm\n";
}
else if ((em_solver_medium == MediumForEM::Macroscopic) &&
else if ((m_em_solver_medium == MediumForEM::Macroscopic) &&
(WarpX::macroscopic_solver_algo == MacroscopicSolverAlgo::BackwardEuler)){
amrex::Print() << " | - Backward Euler algorithm\n";
}
Expand Down Expand Up @@ -561,7 +561,7 @@ WarpX::InitData ()

BuildBufferMasks();

if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
if (m_em_solver_medium == MediumForEM::Macroscopic) {
const int lev_zero = 0;
m_macroscopic_properties->InitData(
Geom(lev_zero),
Expand Down
2 changes: 1 addition & 1 deletion Source/Utils/WarpXMovingWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ WarpX::MoveWindow (const int step, bool move_j)
}

// Recompute macroscopic properties of the medium
if (WarpX::em_solver_medium == MediumForEM::Macroscopic) {
if (m_em_solver_medium == MediumForEM::Macroscopic) {
const int lev_zero = 0;
m_macroscopic_properties->InitData(
Geom(lev_zero),
Expand Down
5 changes: 3 additions & 2 deletions Source/WarpX.H
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,6 @@ public:
* being used (0 or 1 corresponding to timers or heuristic).
*/
static inline auto load_balance_costs_update_algo = LoadBalanceCostsUpdateAlgo::Default;
//! Integer that corresponds to electromagnetic Maxwell solver (vacuum - 0, macroscopic - 1)
static inline auto em_solver_medium = MediumForEM::Default;
/** Integer that correspond to macroscopic Maxwell solver algorithm
* (BackwardEuler - 0, Lax-Wendroff - 1)
*/
Expand Down Expand Up @@ -1383,6 +1381,9 @@ private:
bool do_fluid_species = false;
std::unique_ptr<MultiFluidContainer> myfl;

//! Integer that corresponds to electromagnetic Maxwell solver (vacuum - 0, macroscopic - 1)
MediumForEM m_em_solver_medium = MediumForEM::Default;

//
// Fields: First array for level, second for direction
//
Expand Down
8 changes: 4 additions & 4 deletions Source/WarpX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ WarpX::WarpX ()

m_field_factory.resize(nlevs_max);

if (em_solver_medium == MediumForEM::Macroscopic) {
if (m_em_solver_medium == MediumForEM::Macroscopic) {
// create object for macroscopic solver
m_macroscopic_properties = std::make_unique<MacroscopicProperties>();
}
Expand Down Expand Up @@ -1270,8 +1270,8 @@ WarpX::ReadParameters ()
" combined with mesh refinement is currently not implemented");
}

pp_algo.query_enum_sloppy("em_solver_medium", em_solver_medium, "-_");
if (em_solver_medium == MediumForEM::Macroscopic ) {
pp_algo.query_enum_sloppy("em_solver_medium", m_em_solver_medium, "-_");
if (m_em_solver_medium == MediumForEM::Macroscopic ) {
pp_algo.query_enum_sloppy("macroscopic_sigma_method",
macroscopic_solver_algo, "-_");
}
Expand Down Expand Up @@ -2296,7 +2296,7 @@ WarpX::AllocLevelMFs (int lev, const BoxArray& ba, const DistributionMapping& dm
}

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

0 comments on commit 0ef496b

Please sign in to comment.