aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles')
-rw-r--r--Source/Particles/Collision/BackgroundStopping/BackgroundStopping.cpp5
-rw-r--r--Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp23
-rw-r--r--Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp26
-rw-r--r--Source/Particles/Gather/GetExternalFields.cpp14
-rw-r--r--Source/Particles/ParticleBoundaryBuffer.cpp65
5 files changed, 86 insertions, 47 deletions
diff --git a/Source/Particles/Collision/BackgroundStopping/BackgroundStopping.cpp b/Source/Particles/Collision/BackgroundStopping/BackgroundStopping.cpp
index 939f098ee..dbfc1b1d4 100644
--- a/Source/Particles/Collision/BackgroundStopping/BackgroundStopping.cpp
+++ b/Source/Particles/Collision/BackgroundStopping/BackgroundStopping.cpp
@@ -59,8 +59,9 @@ BackgroundStopping::BackgroundStopping (std::string const collision_name)
"For background stopping, the background temperature must be specified.");
}
- m_background_density_func = m_background_density_parser.compile<4>();
- m_background_temperature_func = m_background_temperature_parser.compile<4>();
+ constexpr auto num_parser_args = 4;
+ m_background_density_func = m_background_density_parser.compile<num_parser_args>();
+ m_background_temperature_func = m_background_temperature_parser.compile<num_parser_args>();
if (m_background_type == BackgroundStoppingType::ELECTRONS) {
m_background_mass = PhysConst::m_e;
diff --git a/Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp b/Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp
index 59503d2ae..f7e32dcbb 100644
--- a/Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp
+++ b/Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp
@@ -159,10 +159,14 @@ void BreitWheelerEngine::compute_lookup_tables (
void BreitWheelerEngine::init_builtin_dndt_table()
{
+ constexpr auto default_chi_phot_min = 0.02_prt;
+ constexpr auto default_chi_phot_max = 200.0_prt;
+ constexpr auto default_chi_phot_how_many = 64;
+
BW_dndt_table_params dndt_params;
- dndt_params.chi_phot_min = 0.02_prt;
- dndt_params.chi_phot_max = 200.0_prt;
- dndt_params.chi_phot_how_many = 64;
+ dndt_params.chi_phot_min = default_chi_phot_min;
+ dndt_params.chi_phot_max = default_chi_phot_max;
+ dndt_params.chi_phot_how_many = default_chi_phot_how_many;
const auto vals = amrex::Gpu::DeviceVector<amrex::ParticleReal>{
-1.34808e+02_prt, -1.16674e+02_prt, -1.01006e+02_prt, -8.74694e+01_prt,
@@ -189,11 +193,16 @@ void BreitWheelerEngine::init_builtin_dndt_table()
void BreitWheelerEngine::init_builtin_pair_prod_table()
{
+ constexpr auto default_chi_phot_min = 0.02_prt;
+ constexpr auto default_chi_phot_max = 200.0_prt;
+ constexpr auto default_chi_phot_how_many = 64;
+ constexpr auto default_frac_how_many = 64;
+
BW_pair_prod_table_params pair_prod_params;
- pair_prod_params.chi_phot_min = 0.02_prt;
- pair_prod_params.chi_phot_max = 200.0_prt;
- pair_prod_params.chi_phot_how_many = 64;
- pair_prod_params.frac_how_many = 64;
+ pair_prod_params.chi_phot_min = default_chi_phot_min;
+ pair_prod_params.chi_phot_max = default_chi_phot_max;
+ pair_prod_params.chi_phot_how_many = default_chi_phot_how_many;
+ pair_prod_params.frac_how_many = default_frac_how_many;
const auto vals = amrex::Gpu::DeviceVector<amrex::ParticleReal>{
0.00000e+00_prt, 0.00000e+00_prt, 0.00000e+00_prt, 0.00000e+00_prt,
diff --git a/Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp b/Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp
index e93d757a3..c7b39a6fb 100644
--- a/Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp
+++ b/Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp
@@ -158,10 +158,14 @@ void QuantumSynchrotronEngine::compute_lookup_tables (
void QuantumSynchrotronEngine::init_builtin_dndt_table()
{
+ constexpr auto default_chi_part_min = 1.0e-3_prt;
+ constexpr auto default_chi_part_max = 200.0_prt;
+ constexpr auto default_chi_part_how_many = 64;
+
QS_dndt_table_params dndt_params;
- dndt_params.chi_part_min = 1.0e-3_prt;
- dndt_params.chi_part_max = 200.0_prt;
- dndt_params.chi_part_how_many = 64;
+ dndt_params.chi_part_min = default_chi_part_min;
+ dndt_params.chi_part_max = default_chi_part_max;
+ dndt_params.chi_part_how_many = default_chi_part_how_many;
const auto vals = amrex::Gpu::DeviceVector<amrex::ParticleReal>{
@@ -190,12 +194,18 @@ void QuantumSynchrotronEngine::init_builtin_dndt_table()
void QuantumSynchrotronEngine::init_builtin_phot_em_table()
{
+ constexpr auto default_chi_part_min = 1.0e-3_prt;
+ constexpr auto default_chi_part_max = 200.0_prt;
+ constexpr auto default_frac_min = 1.0e-12_prt;
+ constexpr auto default_chi_part_how_many = 64;
+ constexpr auto default_frac_how_many = 64;
+
QS_phot_em_table_params phot_em_params;
- phot_em_params.chi_part_min = 1.0e-3_prt;
- phot_em_params.chi_part_max = 200.0_prt;
- phot_em_params.frac_min = 1.0e-12_prt;
- phot_em_params.chi_part_how_many = 64;
- phot_em_params.frac_how_many = 64;
+ phot_em_params.chi_part_min = default_chi_part_min;
+ phot_em_params.chi_part_max = default_chi_part_max;
+ phot_em_params.frac_min = default_frac_min;
+ phot_em_params.chi_part_how_many = default_chi_part_how_many;
+ phot_em_params.frac_how_many = default_frac_how_many;
const auto vals = amrex::Gpu::DeviceVector<amrex::ParticleReal>{
diff --git a/Source/Particles/Gather/GetExternalFields.cpp b/Source/Particles/Gather/GetExternalFields.cpp
index 6f5c4cea2..9bf2c7981 100644
--- a/Source/Particles/Gather/GetExternalFields.cpp
+++ b/Source/Particles/Gather/GetExternalFields.cpp
@@ -53,17 +53,19 @@ GetExternalEBField::GetExternalEBField (const WarpXParIter& a_pti, int a_offset)
if (mypc.m_E_ext_particle_s == "parse_e_ext_particle_function")
{
m_Etype = ExternalFieldInitType::Parser;
- m_Exfield_partparser = mypc.m_Ex_particle_parser->compile<4>();
- m_Eyfield_partparser = mypc.m_Ey_particle_parser->compile<4>();
- m_Ezfield_partparser = mypc.m_Ez_particle_parser->compile<4>();
+ constexpr auto num_arguments = 4; //x,y,z,t
+ m_Exfield_partparser = mypc.m_Ex_particle_parser->compile<num_arguments>();
+ m_Eyfield_partparser = mypc.m_Ey_particle_parser->compile<num_arguments>();
+ m_Ezfield_partparser = mypc.m_Ez_particle_parser->compile<num_arguments>();
}
if (mypc.m_B_ext_particle_s == "parse_b_ext_particle_function")
{
m_Btype = ExternalFieldInitType::Parser;
- m_Bxfield_partparser = mypc.m_Bx_particle_parser->compile<4>();
- m_Byfield_partparser = mypc.m_By_particle_parser->compile<4>();
- m_Bzfield_partparser = mypc.m_Bz_particle_parser->compile<4>();
+ constexpr auto num_arguments = 4; //x,y,z,t
+ m_Bxfield_partparser = mypc.m_Bx_particle_parser->compile<num_arguments>();
+ m_Byfield_partparser = mypc.m_By_particle_parser->compile<num_arguments>();
+ m_Bzfield_partparser = mypc.m_Bz_particle_parser->compile<num_arguments>();
}
if (mypc.m_E_ext_particle_s == "repeated_plasma_lens" ||
diff --git a/Source/Particles/ParticleBoundaryBuffer.cpp b/Source/Particles/ParticleBoundaryBuffer.cpp
index 7877e33d3..f1ee10593 100644
--- a/Source/Particles/ParticleBoundaryBuffer.cpp
+++ b/Source/Particles/ParticleBoundaryBuffer.cpp
@@ -74,24 +74,41 @@ ParticleBoundaryBuffer::ParticleBoundaryBuffer ()
m_do_boundary_buffer[i].resize(numSpecies(), 0);
}
+#if defined(WARPX_DIM_1D_Z)
+ constexpr auto idx_zlo = 0;
+ constexpr auto idx_zhi = 1;
+#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
+ constexpr auto idx_xlo = 0;
+ constexpr auto idx_xhi = 1;
+ constexpr auto idx_zlo = 2;
+ constexpr auto idx_zhi = 3;
+#else
+ constexpr auto idx_xlo = 0;
+ constexpr auto idx_xhi = 1;
+ constexpr auto idx_ylo = 2;
+ constexpr auto idx_yhi = 3;
+ constexpr auto idx_zlo = 4;
+ constexpr auto idx_zhi = 5;
+#endif
+
for (int ispecies = 0; ispecies < numSpecies(); ++ispecies)
{
amrex::ParmParse pp_species(getSpeciesNames()[ispecies]);
#if defined(WARPX_DIM_1D_Z)
- pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[0][ispecies]);
- pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[1][ispecies]);
+ pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[idx_zlo][ispecies]);
+ pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[idx_zhi][ispecies]);
#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
- pp_species.query("save_particles_at_xlo", m_do_boundary_buffer[0][ispecies]);
- pp_species.query("save_particles_at_xhi", m_do_boundary_buffer[1][ispecies]);
- pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[2][ispecies]);
- pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[3][ispecies]);
+ pp_species.query("save_particles_at_xlo", m_do_boundary_buffer[idx_xlo][ispecies]);
+ pp_species.query("save_particles_at_xhi", m_do_boundary_buffer[idx_xhi][ispecies]);
+ pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[idx_zlo][ispecies]);
+ pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[idx_zhi][ispecies]);
#else
- pp_species.query("save_particles_at_xlo", m_do_boundary_buffer[0][ispecies]);
- pp_species.query("save_particles_at_xhi", m_do_boundary_buffer[1][ispecies]);
- pp_species.query("save_particles_at_ylo", m_do_boundary_buffer[2][ispecies]);
- pp_species.query("save_particles_at_yhi", m_do_boundary_buffer[3][ispecies]);
- pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[4][ispecies]);
- pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[5][ispecies]);
+ pp_species.query("save_particles_at_xlo", m_do_boundary_buffer[idx_xlo][ispecies]);
+ pp_species.query("save_particles_at_xhi", m_do_boundary_buffer[idx_xhi][ispecies]);
+ pp_species.query("save_particles_at_ylo", m_do_boundary_buffer[idx_ylo][ispecies]);
+ pp_species.query("save_particles_at_yhi", m_do_boundary_buffer[idx_yhi][ispecies]);
+ pp_species.query("save_particles_at_zlo", m_do_boundary_buffer[idx_zlo][ispecies]);
+ pp_species.query("save_particles_at_zhi", m_do_boundary_buffer[idx_zhi][ispecies]);
#endif
#ifdef AMREX_USE_EB
pp_species.query("save_particles_at_eb", m_do_boundary_buffer[AMREX_SPACEDIM*2][ispecies]);
@@ -103,20 +120,20 @@ ParticleBoundaryBuffer::ParticleBoundaryBuffer ()
}
#if defined(WARPX_DIM_1D_Z)
- m_boundary_names[0] = "zlo";
- m_boundary_names[1] = "zhi";
+ m_boundary_names[idx_zlo] = "zlo";
+ m_boundary_names[idx_zhi] = "zhi";
#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
- m_boundary_names[0] = "xlo";
- m_boundary_names[1] = "xhi";
- m_boundary_names[2] = "zlo";
- m_boundary_names[3] = "zhi";
+ m_boundary_names[idx_xlo] = "xlo";
+ m_boundary_names[idx_xhi] = "xhi";
+ m_boundary_names[idx_zlo] = "zlo";
+ m_boundary_names[idx_zhi] = "zhi";
#else
- m_boundary_names[0] = "xlo";
- m_boundary_names[1] = "xhi";
- m_boundary_names[2] = "ylo";
- m_boundary_names[3] = "yhi";
- m_boundary_names[4] = "zlo";
- m_boundary_names[5] = "zhi";
+ m_boundary_names[idx_xlo] = "xlo";
+ m_boundary_names[idx_xhi] = "xhi";
+ m_boundary_names[idx_ylo] = "ylo";
+ m_boundary_names[idx_yhi] = "yhi";
+ m_boundary_names[idx_zlo] = "zlo";
+ m_boundary_names[idx_zhi] = "zhi";
#endif
#ifdef AMREX_USE_EB
m_boundary_names[AMREX_SPACEDIM*2] = "eb";