diff options
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp index 97f890f33..fa9b0c647 100644 --- a/Source/Particles/PhysicalParticleContainer.cpp +++ b/Source/Particles/PhysicalParticleContainer.cpp @@ -31,12 +31,12 @@ #include "Particles/Pusher/UpdatePosition.H" #include "Particles/SpeciesPhysicalProperties.H" #include "Particles/WarpXParticleContainer.H" -#include "Utils/IonizationEnergiesTable.H" +#include "Utils/Parser/ParserUtils.H" +#include "Utils/Physics/IonizationEnergiesTable.H" #include "Utils/TextMsg.H" #include "Utils/WarpXAlgorithmSelection.H" #include "Utils/WarpXConst.H" #include "Utils/WarpXProfilerWrapper.H" -#include "Utils/WarpXUtil.H" #include "WarpX.H" #include <ablastr/warn_manager/WarnManager.H> @@ -257,9 +257,12 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp pp_species_name.query("do_continuous_injection", do_continuous_injection); pp_species_name.query("initialize_self_fields", initialize_self_fields); - queryWithParser(pp_species_name, "self_fields_required_precision", self_fields_required_precision); - queryWithParser(pp_species_name, "self_fields_absolute_tolerance", self_fields_absolute_tolerance); - queryWithParser(pp_species_name, "self_fields_max_iters", self_fields_max_iters); + utils::parser::queryWithParser( + pp_species_name, "self_fields_required_precision", self_fields_required_precision); + utils::parser::queryWithParser( + pp_species_name, "self_fields_absolute_tolerance", self_fields_absolute_tolerance); + utils::parser::queryWithParser( + pp_species_name, "self_fields_max_iters", self_fields_max_iters); pp_species_name.query("self_fields_verbosity", self_fields_verbosity); // Whether to plot back-transformed (lab-frame) diagnostics // for this species. @@ -310,9 +313,11 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp str_int_attrib_function.resize(n_user_int_attribs); m_user_int_attrib_parser.resize(n_user_int_attribs); for (int i = 0; i < n_user_int_attribs; ++i) { - Store_parserString(pp_species_name, "attribute."+m_user_int_attribs.at(i)+"(x,y,z,ux,uy,uz,t)", str_int_attrib_function.at(i)); + utils::parser::Store_parserString( + pp_species_name, "attribute."+m_user_int_attribs.at(i)+"(x,y,z,ux,uy,uz,t)", + str_int_attrib_function.at(i)); m_user_int_attrib_parser.at(i) = std::make_unique<amrex::Parser>( - makeParser(str_int_attrib_function.at(i),{"x","y","z","ux","uy","uz","t"})); + utils::parser::makeParser(str_int_attrib_function.at(i),{"x","y","z","ux","uy","uz","t"})); AddIntComp(m_user_int_attribs.at(i)); } @@ -323,9 +328,11 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp str_real_attrib_function.resize(n_user_real_attribs); m_user_real_attrib_parser.resize(n_user_real_attribs); for (int i = 0; i < n_user_real_attribs; ++i) { - Store_parserString(pp_species_name, "attribute."+m_user_real_attribs.at(i)+"(x,y,z,ux,uy,uz,t)", str_real_attrib_function.at(i)); + utils::parser::Store_parserString( + pp_species_name, "attribute."+m_user_real_attribs.at(i)+"(x,y,z,ux,uy,uz,t)", + str_real_attrib_function.at(i)); m_user_real_attrib_parser.at(i) = std::make_unique<amrex::Parser>( - makeParser(str_real_attrib_function.at(i),{"x","y","z","ux","uy","uz","t"})); + utils::parser::makeParser(str_real_attrib_function.at(i),{"x","y","z","ux","uy","uz","t"})); AddRealComp(m_user_real_attribs.at(i)); } @@ -2873,18 +2880,20 @@ PhysicalParticleContainer::InitIonizationModule () "overriding user value and setting charge = q_e."); charge = PhysConst::q_e; } - queryWithParser(pp_species_name, "ionization_initial_level", ionization_initial_level); + utils::parser::queryWithParser( + pp_species_name, "ionization_initial_level", ionization_initial_level); pp_species_name.get("ionization_product_species", ionization_product_name); pp_species_name.get("physical_element", physical_element); // Add runtime integer component for ionization level AddIntComp("ionizationLevel"); // Get atomic number and ionization energies from file - int const ion_element_id = ion_map_ids.at(physical_element); - ion_atomic_number = ion_atomic_numbers[ion_element_id]; + const int ion_element_id = utils::physics::ion_map_ids.at(physical_element); + ion_atomic_number = utils::physics::ion_atomic_numbers[ion_element_id]; Vector<Real> h_ionization_energies(ion_atomic_number); - int offset = ion_energy_offsets[ion_element_id]; + const int offset = utils::physics::ion_energy_offsets[ion_element_id]; for(int i=0; i<ion_atomic_number; i++){ - h_ionization_energies[i] = table_ionization_energies[i+offset]; + h_ionization_energies[i] = + utils::physics::table_ionization_energies[i+offset]; } // Compute ADK prefactors (See Chen, JCP 236 (2013), equation (2)) // For now, we assume l=0 and m=0. @@ -2892,11 +2901,11 @@ PhysicalParticleContainer::InitIonizationModule () // without Gamma function constexpr auto a3 = PhysConst::alpha*PhysConst::alpha*PhysConst::alpha; constexpr auto a4 = a3 * PhysConst::alpha; - Real wa = a3 * PhysConst::c / PhysConst::r_e; - Real Ea = PhysConst::m_e * PhysConst::c*PhysConst::c /PhysConst::q_e * + constexpr Real wa = a3 * PhysConst::c / PhysConst::r_e; + constexpr Real Ea = PhysConst::m_e * PhysConst::c*PhysConst::c /PhysConst::q_e * a4/PhysConst::r_e; - Real UH = table_ionization_energies[0]; - Real l_eff = std::sqrt(UH/h_ionization_energies[0]) - 1._rt; + constexpr Real UH = utils::physics::table_ionization_energies[0]; + const Real l_eff = std::sqrt(UH/h_ionization_energies[0]) - 1._rt; const Real dt = WarpX::GetInstance().getdt(0); |