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

WarpX class : em_solver_medium no longer a static variable #5642

Merged
merged 1 commit into from
Feb 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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
Loading