Skip to content

Commit 980d707

Browse files
authored
WarpX class: make mirror-related variables private member variables (#5596)
`num_mirrors` was a static class variable. This PR makes it a private member variable, with the aim of making WarpX less static. The name is also changed into `m_num_mirrors`. With the occasion, also the variables `mirror_z`. `mirror_z_width`, and `mirror_z_npoints` are renamed with an `m_` prefix and made private.
1 parent f8e2376 commit 980d707

File tree

3 files changed

+21
-22
lines changed

3 files changed

+21
-22
lines changed

Source/Evolve/WarpXEvolve.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -1190,16 +1190,16 @@ WarpX::applyMirrors (Real time)
11901190
using ablastr::fields::Direction;
11911191

11921192
// something to do?
1193-
if (num_mirrors == 0) {
1193+
if (m_num_mirrors == 0) {
11941194
return;
11951195
}
11961196

11971197
// Loop over the mirrors
1198-
for(int i_mirror=0; i_mirror<num_mirrors; ++i_mirror)
1198+
for(int i_mirror=0; i_mirror<m_num_mirrors; ++i_mirror)
11991199
{
12001200
// Get mirror properties (lower and upper z bounds)
1201-
amrex::Real z_min = mirror_z[i_mirror];
1202-
amrex::Real z_max_tmp = z_min + mirror_z_width[i_mirror];
1201+
amrex::Real z_min = m_mirror_z[i_mirror];
1202+
amrex::Real z_max_tmp = z_min + m_mirror_z_width[i_mirror];
12031203

12041204
// Boost quantities for boosted frame simulations
12051205
if (gamma_boost>1)
@@ -1211,9 +1211,9 @@ WarpX::applyMirrors (Real time)
12111211
// Loop over levels
12121212
for(int lev=0; lev<=finest_level; lev++)
12131213
{
1214-
// Mirror must contain at least mirror_z_npoints[i_mirror] cells
1214+
// Mirror must contain at least m_mirror_z_npoints[i_mirror] cells
12151215
const amrex::Real dz = WarpX::CellSize(lev)[2];
1216-
const amrex::Real z_max = std::max(z_max_tmp, z_min+mirror_z_npoints[i_mirror]*dz);
1216+
const amrex::Real z_max = std::max(z_max_tmp, z_min+m_mirror_z_npoints[i_mirror]*dz);
12171217

12181218
// Set each field on the fine patch to zero between z_min and z_max
12191219
NullifyMF(m_fields, "Efield_fp", Direction{0}, lev, z_min, z_max);

Source/WarpX.H

+6-5
Original file line numberDiff line numberDiff line change
@@ -464,11 +464,6 @@ public:
464464

465465
amrex::Vector<amrex::Real> m_v_comoving = amrex::Vector<amrex::Real>(3, amrex::Real(0.));
466466

467-
static int num_mirrors;
468-
amrex::Vector<amrex::Real> mirror_z;
469-
amrex::Vector<amrex::Real> mirror_z_width;
470-
amrex::Vector<int> mirror_z_npoints;
471-
472467
/// object with all reduced diagnostics, similar to MultiParticleContainer for species.
473468
std::unique_ptr<MultiReducedDiags> reduced_diags;
474469

@@ -1465,6 +1460,12 @@ private:
14651460

14661461
amrex::Real moving_window_x = std::numeric_limits<amrex::Real>::max();
14671462

1463+
// Mirrors
1464+
int m_num_mirrors = 0;
1465+
amrex::Vector<amrex::Real> m_mirror_z;
1466+
amrex::Vector<amrex::Real> m_mirror_z_width;
1467+
amrex::Vector<int> m_mirror_z_npoints;
1468+
14681469
// Plasma injection parameters
14691470
int warpx_do_continuous_injection = 0;
14701471
int num_injected_species = -1;

Source/WarpX.cpp

+9-11
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ bool WarpX::use_filter_compensation = false;
162162
bool WarpX::serialize_initial_conditions = false;
163163
bool WarpX::refine_plasma = false;
164164

165-
int WarpX::num_mirrors = 0;
166-
167165
utils::parser::IntervalsParser WarpX::sort_intervals;
168166
amrex::IntVect WarpX::sort_bin_size(AMREX_D_DECL(1,1,1));
169167

@@ -782,17 +780,17 @@ WarpX::ReadParameters ()
782780
#endif
783781

784782
utils::parser::queryWithParser(
785-
pp_warpx, "num_mirrors", num_mirrors);
786-
if (num_mirrors>0){
787-
mirror_z.resize(num_mirrors);
783+
pp_warpx, "num_mirrors", m_num_mirrors);
784+
if (m_num_mirrors>0){
785+
m_mirror_z.resize(m_num_mirrors);
788786
utils::parser::getArrWithParser(
789-
pp_warpx, "mirror_z", mirror_z, 0, num_mirrors);
790-
mirror_z_width.resize(num_mirrors);
787+
pp_warpx, "mirror_z", m_mirror_z, 0, m_num_mirrors);
788+
m_mirror_z_width.resize(m_num_mirrors);
791789
utils::parser::getArrWithParser(
792-
pp_warpx, "mirror_z_width", mirror_z_width, 0, num_mirrors);
793-
mirror_z_npoints.resize(num_mirrors);
790+
pp_warpx, "mirror_z_width", m_mirror_z_width, 0, m_num_mirrors);
791+
m_mirror_z_npoints.resize(m_num_mirrors);
794792
utils::parser::getArrWithParser(
795-
pp_warpx, "mirror_z_npoints", mirror_z_npoints, 0, num_mirrors);
793+
pp_warpx, "mirror_z_npoints", m_mirror_z_npoints, 0, m_num_mirrors);
796794
}
797795

798796
pp_warpx.query("do_single_precision_comms", do_single_precision_comms);
@@ -1168,7 +1166,7 @@ WarpX::ReadParameters ()
11681166
// implicit evolve schemes not setup to use mirrors
11691167
if (evolve_scheme == EvolveScheme::SemiImplicitEM ||
11701168
evolve_scheme == EvolveScheme::ThetaImplicitEM) {
1171-
WARPX_ALWAYS_ASSERT_WITH_MESSAGE( num_mirrors == 0,
1169+
WARPX_ALWAYS_ASSERT_WITH_MESSAGE( m_num_mirrors == 0,
11721170
"Mirrors cannot be used with Implicit evolve schemes.");
11731171
}
11741172

0 commit comments

Comments
 (0)