aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp
diff options
context:
space:
mode:
authorGravatar Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> 2023-06-27 00:27:05 -0700
committerGravatar GitHub <noreply@github.com> 2023-06-27 00:27:05 -0700
commit9665008751b9cd7b97fc0e8005c95bc859a50bec (patch)
tree4c82ef57f21c03f655ab4051b71abdea3f4fa79f /Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp
parent902c79367dd6b503dcff5706f9ee6153cb7b1319 (diff)
downloadWarpX-9665008751b9cd7b97fc0e8005c95bc859a50bec.tar.gz
WarpX-9665008751b9cd7b97fc0e8005c95bc859a50bec.tar.zst
WarpX-9665008751b9cd7b97fc0e8005c95bc859a50bec.zip
refactored `HybridPICModel::HybridPICSolveE` to more readable (#4044)
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp47
1 files changed, 11 insertions, 36 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp b/Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp
index 4d8d9bde4..34ad2c16d 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp
+++ b/Source/FieldSolver/FiniteDifferenceSolver/HybridPICModel/HybridPICModel.cpp
@@ -221,14 +221,14 @@ void HybridPICModel::HybridPICSolveE (
amrex::Vector<std::array< std::unique_ptr<amrex::MultiFab>, 3>> const& Bfield,
amrex::Vector<std::unique_ptr<amrex::MultiFab>> const& rhofield,
amrex::Vector<std::array< std::unique_ptr<amrex::MultiFab>, 3>> const& edge_lengths,
- DtType a_dt_type)
+ const bool include_resistivity_term)
{
auto& warpx = WarpX::GetInstance();
for (int lev = 0; lev <= warpx.finestLevel(); ++lev)
{
HybridPICSolveE(
Efield[lev], Jfield[lev], Bfield[lev], rhofield[lev],
- edge_lengths[lev], lev, a_dt_type
+ edge_lengths[lev], lev, include_resistivity_term
);
}
}
@@ -239,13 +239,13 @@ void HybridPICModel::HybridPICSolveE (
std::array< std::unique_ptr<amrex::MultiFab>, 3> const& Bfield,
std::unique_ptr<amrex::MultiFab> const& rhofield,
std::array< std::unique_ptr<amrex::MultiFab>, 3> const& edge_lengths,
- const int lev, DtType a_dt_type)
+ const int lev, const bool include_resistivity_term)
{
WARPX_PROFILE("WarpX::HybridPICSolveE()");
HybridPICSolveE(
Efield, Jfield, Bfield, rhofield, edge_lengths, lev,
- PatchType::fine, a_dt_type
+ PatchType::fine, include_resistivity_term
);
if (lev > 0)
{
@@ -260,41 +260,17 @@ void HybridPICModel::HybridPICSolveE (
std::array< std::unique_ptr<amrex::MultiFab>, 3> const& Bfield,
std::unique_ptr<amrex::MultiFab> const& rhofield,
std::array< std::unique_ptr<amrex::MultiFab>, 3> const& edge_lengths,
- const int lev, PatchType patch_type, DtType a_dt_type)
+ const int lev, PatchType patch_type,
+ const bool include_resistivity_term)
{
auto& warpx = WarpX::GetInstance();
// Solve E field in regular cells
- // The first half step uses t=n quantities, the second half t=n+1/2
- // quantities and the full step uses t=n+1 quantities
- if (a_dt_type == DtType::FirstHalf) {
- warpx.get_pointer_fdtd_solver_fp(lev)->HybridPICSolveE(
- Efield, current_fp_ampere[lev],
- current_fp_temp[lev], Bfield,
- rho_fp_temp[lev],
- electron_pressure_fp[lev],
- edge_lengths, lev, this, a_dt_type
- );
- }
- else if (a_dt_type == DtType::SecondHalf) {
- warpx.get_pointer_fdtd_solver_fp(lev)->HybridPICSolveE(
- Efield, current_fp_ampere[lev],
- Jfield, Bfield,
- rho_fp_temp[lev],
- electron_pressure_fp[lev],
- edge_lengths, lev, this, a_dt_type
- );
- }
- else {
- warpx.get_pointer_fdtd_solver_fp(lev)->HybridPICSolveE(
- Efield, current_fp_ampere[lev],
- current_fp_temp[lev], Bfield,
- rhofield,
- electron_pressure_fp[lev],
- edge_lengths, lev, this, a_dt_type
- );
- }
-
+ warpx.get_pointer_fdtd_solver_fp(lev)->HybridPICSolveE(
+ Efield, current_fp_ampere[lev], Jfield, Bfield, rhofield,
+ electron_pressure_fp[lev],
+ edge_lengths, lev, this, include_resistivity_term
+ );
warpx.ApplyEfieldBoundary(lev, patch_type);
}
@@ -327,7 +303,6 @@ void HybridPICModel::CalculateElectronPressure(const int lev, DtType a_dt_type)
electron_pressure_fp[lev]->FillBoundary(warpx.Geom(lev).periodicity());
}
-
void HybridPICModel::FillElectronPressureMF (
std::unique_ptr<amrex::MultiFab> const& Pe_field,
amrex::MultiFab* const& rho_field )