Skip to content

Commit 71ae505

Browse files
committed
1) remove unused for diffusion stuff, 2) clean up EB stuff -- this almost gives identical answers with multiple grids at 100 steps but not quite
1 parent 2f49343 commit 71ae505

File tree

4 files changed

+45
-88
lines changed

4 files changed

+45
-88
lines changed

Source/Diffusion/ERF_ComputeStress_S.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ using namespace amrex;
2323
* @param[in,out] tau32 32 strain -> stress
2424
* @param[in] er_arr expansion rate
2525
* @param[in] z_nd nodal array of physical z heights
26-
* @param[in] dxInv inverse cell size array
2726
*/
2827
void
2928
ComputeStressConsVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
@@ -33,8 +32,6 @@ ComputeStressConsVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
3332
Array4<Real>& tau13, Array4<Real>& tau31,
3433
Array4<Real>& tau23, Array4<Real>& tau32,
3534
const Array4<const Real>& er_arr,
36-
const Gpu::DeviceVector<Real>& stretched_dz_d,
37-
const GpuArray<Real, AMREX_SPACEDIM>& dxInv,
3835
const Array4<const Real>& mf_mx,
3936
const Array4<const Real>& mf_ux,
4037
const Array4<const Real>& mf_vx,
@@ -63,8 +60,6 @@ ComputeStressConsVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
6360
});
6461
}
6562

66-
auto dz_ptr = stretched_dz_d.data();
67-
6863
// First block: cell centered stresses
6964
//***********************************************************************************
7065
Real OneThird = (1./3.);
@@ -137,7 +132,6 @@ ComputeStressConsVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
137132
* @param[in,out] tau32 32 strain -> stress
138133
* @param[in] er_arr expansion rate
139134
* @param[in] z_nd nodal array of physical z heights
140-
* @param[in] dxInv inverse cell size array
141135
*/
142136
void
143137
ComputeStressVarVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
@@ -148,8 +142,6 @@ ComputeStressVarVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
148142
Array4<Real>& tau13, Array4<Real>& tau31,
149143
Array4<Real>& tau23, Array4<Real>& tau32,
150144
const Array4<const Real>& er_arr,
151-
const Gpu::DeviceVector<Real>& stretched_dz_d,
152-
const GpuArray<Real, AMREX_SPACEDIM>& dxInv,
153145
const Array4<const Real>& mf_mx,
154146
const Array4<const Real>& mf_ux,
155147
const Array4<const Real>& mf_vx,
@@ -178,8 +170,6 @@ ComputeStressVarVisc_S (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff,
178170
});
179171
}
180172

181-
auto dz_ptr = stretched_dz_d.data();
182-
183173
// First block: cell centered stresses
184174
//***********************************************************************************
185175
Real OneThird = (1./3.);

Source/Diffusion/ERF_Diffusion.H

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,6 @@ void ComputeStressConsVisc_S (amrex::Box bxcc,
190190
amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau31,
191191
amrex::Array4<amrex::Real>& tau23, amrex::Array4<amrex::Real>& tau32,
192192
const amrex::Array4<const amrex::Real>& er_arr,
193-
const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
194-
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
195193
const amrex::Array4<const amrex::Real>& mf_mx,
196194
const amrex::Array4<const amrex::Real>& mf_ux,
197195
const amrex::Array4<const amrex::Real>& mf_vx,
@@ -253,8 +251,6 @@ void ComputeStressVarVisc_S (amrex::Box bxcc,
253251
amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau31,
254252
amrex::Array4<amrex::Real>& tau23, amrex::Array4<amrex::Real>& tau32,
255253
const amrex::Array4<const amrex::Real>& er_arr,
256-
const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
257-
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
258254
const amrex::Array4<const amrex::Real>& mf_mx,
259255
const amrex::Array4<const amrex::Real>& mf_ux,
260256
const amrex::Array4<const amrex::Real>& mf_vx,

Source/EB/ERF_EBAux.cpp

Lines changed: 43 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <AMReX_ParmParse.H>
33
#include <ERF_EBAux.H>
44
#include <ERF_EBCutCell.H>
5+
#include <AMReX_MultiFabUtil.H>
56

67
using namespace amrex;
78

@@ -69,10 +70,12 @@ define( [[maybe_unused]] int const& a_level,
6970
// Initialize with zeros
7071
m_volfrac->setVal(0.0);
7172
m_volcent->setVal(0.0);
73+
7274
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
7375
m_areafrac[idim]->setVal(0.0);
7476
m_facecent[idim]->setVal(0.0);
7577
}
78+
7679
m_bndryarea->setVal(0.0);
7780
m_bndrycent->setVal(0.0);
7881
m_bndrynorm->setVal(0.0);
@@ -101,24 +104,14 @@ define( [[maybe_unused]] int const& a_level,
101104
{
102105
aux_flag(i,j,k).setCovered();
103106
aux_flag(i,j,k).setDisconnected();
104-
aux_vfrac(i,j,k) = 0.0;
105-
aux_afrac_x(i,j,k) = 0.0;
106-
aux_afrac_y(i,j,k) = 0.0;
107-
aux_afrac_z(i,j,k) = 0.0;
108107
if (i==bx.bigEnd(0)) {
109108
aux_flag(i+1,j,k).setCovered();
110-
aux_vfrac(i+1,j,k) = 0.0;
111-
aux_afrac_x(i+1,j,k) = 0.0;
112109
}
113110
if (j==bx.bigEnd(1)) {
114111
aux_flag(i,j+1,k).setCovered();
115-
aux_vfrac(i,j+1,k) = 0.0;
116-
aux_afrac_y(i,j+1,k) = 0.0;
117112
}
118113
if (k==bx.bigEnd(2)) {
119114
aux_flag(i,j,k+1).setCovered();
120-
aux_vfrac(i,j,k+1) = 0.0;
121-
aux_afrac_z(i,j,k+1) = 0.0;
122115
}
123116
});
124117

@@ -155,8 +148,6 @@ define( [[maybe_unused]] int const& a_level,
155148

156149
// CC cell quantities
157150
Array4<EBCellFlag const> const& flag = FlagFab.const_array(mfi);
158-
// Array4<Real const> const& vfrac = (a_factory->getVolFrac()).const_array(mfi);
159-
// Array4<Real const> const& ccent = (a_factory->getCentroid()).const_array(mfi);
160151
Array4<Real const> const& afrac = (a_factory->getAreaFrac()[a_idim])->const_array(mfi);
161152
Array4<Real const> const& bnorm = a_factory->getBndryNormal()[mfi].const_array();
162153
Array4<Real const> const& bcent = a_factory->getBndryCent()[mfi].const_array();
@@ -204,63 +195,16 @@ define( [[maybe_unused]] int const& a_level,
204195
aux_flag(i,j,k).setCovered();
205196
aux_flag(i,j,k).setDisconnected();
206197

207-
aux_vfrac(i,j,k) = 0.0;
208-
aux_vcent(i,j,k,0) = 0.0;
209-
aux_vcent(i,j,k,1) = 0.0;
210-
aux_vcent(i,j,k,2) = 0.0;
211-
212-
aux_afrac_x(i,j,k) = 0.0;
213-
aux_afrac_y(i,j,k) = 0.0;
214-
aux_afrac_z(i,j,k) = 0.0;
215-
216-
aux_fcent_x(i,j,k,0) = 0.0; aux_fcent_x(i,j,k,1) = 0.0;
217-
aux_fcent_y(i,j,k,0) = 0.0; aux_fcent_y(i,j,k,1) = 0.0;
218-
aux_fcent_z(i,j,k,0) = 0.0; aux_fcent_z(i,j,k,1) = 0.0;
219-
220198
if (i==bx.bigEnd(0)) {
221199
aux_flag(i+1,j,k).setCovered();
222-
aux_vfrac(i+1,j,k) = 0.0;
223-
aux_vcent(i+1,j,k,0) = 0.0;
224-
aux_vcent(i+1,j,k,1) = 0.0;
225-
aux_vcent(i+1,j,k,2) = 0.0;
226-
227-
aux_afrac_x(i+1,j,k) = 0.0;
228-
aux_fcent_x(i+1,j,k,0) = 0.0;
229-
aux_fcent_x(i+1,j,k,1) = 0.0;
230200
}
231201
if (j==bx.bigEnd(1)) {
232202
aux_flag(i,j+1,k).setCovered();
233-
aux_vfrac(i,j+1,k) = 0.0;
234-
aux_vcent(i,j+1,k,0) = 0.0;
235-
aux_vcent(i,j+1,k,1) = 0.0;
236-
aux_vcent(i,j+1,k,2) = 0.0;
237-
238-
aux_afrac_y(i,j+1,k) = 0.0;
239-
aux_fcent_y(i,j+1,k,0) = 0.0;
240-
aux_fcent_y(i,j+1,k,1) = 0.0;
241203
}
242204
if (k==bx.bigEnd(2)) {
243205
aux_flag(i,j,k+1).setCovered();
244-
aux_vfrac(i,j,k+1) = 0.0;
245-
aux_vcent(i,j,k+1,0) = 0.0;
246-
aux_vcent(i,j,k+1,1) = 0.0;
247-
aux_vcent(i,j,k+1,2) = 0.0;
248-
249-
aux_afrac_z(i,j,k+1) = 0.0;
250-
aux_fcent_z(i,j,k+1,0) = 0.0;
251-
aux_fcent_z(i,j,k+1,1) = 0.0;
252206
}
253207

254-
aux_barea(i,j,k) = 0.0;
255-
256-
aux_bcent(i,j,k,0) = 0.0;
257-
aux_bcent(i,j,k,1) = 0.0;
258-
aux_bcent(i,j,k,2) = 0.0;
259-
260-
aux_bnorm(i,j,k,0) = 0.0;
261-
aux_bnorm(i,j,k,1) = 0.0;
262-
aux_bnorm(i,j,k,2) = 0.0;
263-
264208
// Index for low and hi cells
265209
IntVect iv_hi(i,j,k);
266210
IntVect iv_lo(iv_hi - vdim);
@@ -348,24 +292,14 @@ define( [[maybe_unused]] int const& a_level,
348292
aux_afrac_y(i,j,k) = 1.0;
349293
aux_afrac_z(i,j,k) = 1.0;
350294

351-
aux_fcent_x(i,j,k,0) = 0.0; aux_fcent_x(i,j,k,1) = 0.0;
352-
aux_fcent_y(i,j,k,0) = 0.0; aux_fcent_y(i,j,k,1) = 0.0;
353-
aux_fcent_z(i,j,k,0) = 0.0; aux_fcent_z(i,j,k,1) = 0.0;
354-
355295
if (i==bx.bigEnd(0)) {
356296
aux_afrac_x(i+1,j,k) = 1.0;
357-
aux_fcent_x(i+1,j,k,0) = 0.0;
358-
aux_fcent_x(i+1,j,k,1) = 0.0;
359297
}
360298
if (j==bx.bigEnd(1)) {
361299
aux_afrac_y(i,j+1,k) = 1.0;
362-
aux_fcent_y(i,j+1,k,0) = 0.0;
363-
aux_fcent_y(i,j+1,k,1) = 0.0;
364300
}
365301
if (k==bx.bigEnd(2)) {
366302
aux_afrac_z(i,j,k+1) = 1.0;
367-
aux_fcent_z(i,j,k+1,0) = 0.0;
368-
aux_fcent_z(i,j,k+1,1) = 0.0;
369303
}
370304

371305
} else {
@@ -897,6 +831,43 @@ define( [[maybe_unused]] int const& a_level,
897831

898832
});
899833

834+
ParallelFor(bx, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
835+
{
836+
if (aux_vfrac(i,j,k) < small_volfrac)
837+
{
838+
aux_vfrac(i,j,k) = 0.0;
839+
}
840+
});
841+
842+
} // if (FlagFab[mfi].getType(bx) == FabType::singlevalued )
843+
844+
} // MFIter
845+
846+
// We FillBoundary volfrac here so that we can use tests on volfrac in ghost cells below
847+
m_volfrac->FillBoundary(a_geom.periodicity());
848+
849+
for (MFIter mfi(*m_cellflags, false); mfi.isValid(); ++mfi) {
850+
851+
const Box& bx = mfi.validbox();
852+
const Box& bx_grown = mfi.growntilebox();
853+
854+
Array4<EBCellFlag> const& aux_flag = m_cellflags->array(mfi);
855+
Array4<Real> const& aux_vfrac = m_volfrac->array(mfi);
856+
Array4<Real> const& aux_afrac_x = m_areafrac[0]->array(mfi);
857+
Array4<Real> const& aux_afrac_y = m_areafrac[1]->array(mfi);
858+
Array4<Real> const& aux_afrac_z = m_areafrac[2]->array(mfi);
859+
860+
Array4<Real> const& aux_vcent = m_volcent->array(mfi);
861+
Array4<Real> const& aux_fcent_x = m_facecent[0]->array(mfi);
862+
Array4<Real> const& aux_fcent_y = m_facecent[1]->array(mfi);
863+
Array4<Real> const& aux_fcent_z = m_facecent[2]->array(mfi);
864+
Array4<Real> const& aux_barea = m_bndryarea->array(mfi);
865+
Array4<Real> const& aux_bcent = m_bndrycent->array(mfi);
866+
Array4<Real> const& aux_bnorm = m_bndrynorm->array(mfi);
867+
868+
869+
if (FlagFab[mfi].getType(bx) == FabType::singlevalued ) {
870+
900871
// Corrections for small cells
901872
Box my_xbx(bx); if (a_idim == 0) my_xbx.growLo(0,1);
902873
ParallelFor(my_xbx, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
@@ -929,7 +900,6 @@ define( [[maybe_unused]] int const& a_level,
929900
{
930901
if (aux_vfrac(i,j,k) < small_volfrac)
931902
{
932-
aux_vfrac(i,j,k) = 0.0;
933903
aux_vcent(i,j,k,0) = 0.0;
934904
aux_vcent(i,j,k,1) = 0.0;
935905
aux_vcent(i,j,k,2) = 0.0;
@@ -998,7 +968,9 @@ define( [[maybe_unused]] int const& a_level,
998968

999969
// Fill Boundary
1000970

1001-
m_volfrac->FillBoundary(a_geom.periodicity());
971+
// The FB call for volfrac is done above
972+
// m_volfrac->FillBoundary(a_geom.periodicity());
973+
1002974
m_volcent->FillBoundary(a_geom.periodicity());
1003975
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
1004976
m_areafrac[idim]->FillBoundary(a_geom.periodicity());
@@ -1009,7 +981,6 @@ define( [[maybe_unused]] int const& a_level,
1009981
m_bndrynorm->FillBoundary(a_geom.periodicity());
1010982

1011983
// Set Connectivities
1012-
1013984
for (MFIter mfi(*m_cellflags, false); mfi.isValid(); ++mfi) {
1014985

1015986
const Box& bx = mfi.validbox();

Source/TimeIntegration/ERF_MakeTauTerms.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void erf_make_tau_terms (int level, int nrk,
248248
s12, s21,
249249
s13, s31,
250250
s23, s32,
251-
er_arr, stretched_dz_d, dxInv,
251+
er_arr,
252252
mf_mx, mf_ux, mf_vx,
253253
mf_my, mf_uy, mf_vy);
254254
} else {
@@ -258,7 +258,7 @@ void erf_make_tau_terms (int level, int nrk,
258258
s12, s21,
259259
s13, s31,
260260
s23, s32,
261-
er_arr, stretched_dz_d, dxInv,
261+
er_arr,
262262
mf_mx, mf_ux, mf_vx,
263263
mf_my, mf_uy, mf_vy);
264264
}

0 commit comments

Comments
 (0)