From 2f99347bcbcc5cbdc6f7f85c5dded5dcdb9c46d1 Mon Sep 17 00:00:00 2001 From: Lucas Esclapez <13371051+esclapez@users.noreply.github.com> Date: Mon, 6 Dec 2021 11:55:41 -0800 Subject: [PATCH] Fix efield (#35) * Fix Efield BCfill with PMF changes. * Update 1D efield flame source code. --- Exec/Efield/FlameSheetIons/pelelm_prob.H | 12 ++++++------ Exec/Efield/FlameSheetIons/pelelm_prob.cpp | 6 +----- Source/Efield/PeleLMEFUtils.cpp | 15 ++++++++------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/Exec/Efield/FlameSheetIons/pelelm_prob.H b/Exec/Efield/FlameSheetIons/pelelm_prob.H index cdcbcbc3..dc88cef5 100644 --- a/Exec/Efield/FlameSheetIons/pelelm_prob.H +++ b/Exec/Efield/FlameSheetIons/pelelm_prob.H @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -27,7 +27,7 @@ void pelelm_initdata(int i, int j, int k, amrex::Array4 const& phiV, amrex::GeometryData const& geomdata, ProbParm const& prob_parm, - PmfData const * pmf_data) + pele::physics::PMF::PmfData::DataContainer const * pmf_data) { const amrex::Real* prob_lo = geomdata.ProbLo(); const amrex::Real* prob_hi = geomdata.ProbHi(); @@ -65,7 +65,7 @@ void pelelm_initdata(int i, int j, int k, y2 = (y - prob_parm.standoff + 0.5*dx[1] + pert); y1 += 0.5*dx[1]; - PMF::pmf(pmf_data,y1, y1, pmf_vals); + pele::physics::PMF::pmf(pmf_data,y1, y1, pmf_vals); temp(i,j,k) = pmf_vals[0];; @@ -152,7 +152,7 @@ bcnormal( const amrex::Real time, amrex::GeometryData const& geomdata, ProbParm const& prob_parm, - PmfData const *pmf_data) + pele::physics::PMF::PmfData::DataContainer const * pmf_data) { const amrex::Real* prob_lo = geomdata.ProbLo(); amrex::GpuArray pmf_vals = {0.0}; @@ -161,7 +161,7 @@ bcnormal( auto eos = pele::physics::PhysicsType::eos(); if (sgn == 1) { - PMF::pmf(pmf_data,prob_lo[idir], prob_lo[idir], pmf_vals); + pele::physics::PMF::pmf(pmf_data,prob_lo[idir], prob_lo[idir], pmf_vals); AMREX_D_TERM(s_ext[VELX] = 0.0;, s_ext[VELY] = pmf_vals[1];, diff --git a/Exec/Efield/FlameSheetIons/pelelm_prob.cpp b/Exec/Efield/FlameSheetIons/pelelm_prob.cpp index 0c9feeb3..3bff57d3 100644 --- a/Exec/Efield/FlameSheetIons/pelelm_prob.cpp +++ b/Exec/Efield/FlameSheetIons/pelelm_prob.cpp @@ -1,6 +1,5 @@ #include #include -#include void PeleLM::readProbParm() { @@ -14,8 +13,5 @@ void PeleLM::readProbParm() pp.query("PhiV_y_hi", PeleLM::prob_parm->phiV_hiy); pp.query("PhiV_y_lo", PeleLM::prob_parm->phiV_loy); - std::string pmf_datafile; - pp.query("pmf_datafile", pmf_datafile); - int pmf_do_average = 1; - PMF::read_pmf(pmf_datafile, pmf_do_average); + PeleLM::pmf_data.initialize(); } diff --git a/Source/Efield/PeleLMEFUtils.cpp b/Source/Efield/PeleLMEFUtils.cpp index 73f60011..6db57b02 100644 --- a/Source/Efield/PeleLMEFUtils.cpp +++ b/Source/Efield/PeleLMEFUtils.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include using namespace amrex; @@ -266,19 +265,20 @@ void PeleLM::fillPatchNLnE(Real a_time, int a_nGrow) { ProbParm const* lprobparm = prob_parm_d; + pele::physics::PMF::PmfData::DataContainer const* lpmfdata = pmf_data.getDeviceData(); int lev = 0; { PhysBCFunct> bndry_func(geom[lev], fetchBCRecArray(NE,1), - PeleLMCCFillExtDirnE{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirnE{lprobparm, lpmfdata, m_nAux}); FillPatchSingleLevel(*a_nE[lev],IntVect(a_nGrow),a_time,{a_nE[lev]},{a_time}, 0,0,1,geom[lev],bndry_func,0); } for (lev = 1; lev <= finest_level; ++lev) { PhysBCFunct> crse_bndry_func(geom[lev-1], fetchBCRecArray(NE,1), - PeleLMCCFillExtDirnE{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirnE{lprobparm, lpmfdata, m_nAux}); PhysBCFunct> fine_bndry_func(geom[lev], fetchBCRecArray(NE,1), - PeleLMCCFillExtDirnE{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirnE{lprobparm, lpmfdata, m_nAux}); Interpolater* mapper = &pc_interp; FillPatchTwoLevels(*a_nE[lev],IntVect(a_nGrow),a_time, @@ -295,19 +295,20 @@ void PeleLM::fillPatchNLphiV(Real a_time, int a_nGrow) { ProbParm const* lprobparm = prob_parm_d; + pele::physics::PMF::PmfData::DataContainer const* lpmfdata = pmf_data.getDeviceData(); int lev = 0; { PhysBCFunct> bndry_func(geom[lev], fetchBCRecArray(PHIV,1), - PeleLMCCFillExtDirPhiV{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirPhiV{lprobparm, lpmfdata, m_nAux}); FillPatchSingleLevel(*a_phiV[lev],IntVect(a_nGrow),a_time,{a_phiV[lev]},{a_time}, 0,0,1,geom[lev],bndry_func,0); } for (lev = 1; lev <= finest_level; ++lev) { PhysBCFunct> crse_bndry_func(geom[lev-1], fetchBCRecArray(PHIV,1), - PeleLMCCFillExtDirPhiV{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirPhiV{lprobparm, lpmfdata, m_nAux}); PhysBCFunct> fine_bndry_func(geom[lev], fetchBCRecArray(PHIV,1), - PeleLMCCFillExtDirPhiV{lprobparm, pmf_data_g, m_nAux}); + PeleLMCCFillExtDirPhiV{lprobparm, lpmfdata, m_nAux}); Interpolater* mapper = &pc_interp; FillPatchTwoLevels(*a_phiV[lev],IntVect(a_nGrow),a_time,