55 bool cellcentered = (field[0]->boxArray().ixType() == amrex::IndexType(amrex::IntVect::TheCellVector()));
57 const std::complex<Set::Scalar> I(0.0,1.0);
60 L2 =
geom[lev].ProbHi()[1] -
geom[lev].ProbLo()[1],
61 L3 =
geom[lev].ProbHi()[2] -
geom[lev].ProbLo()[2]);
62 for (amrex::MFIter mfi(*field[lev],
true); mfi.isValid(); ++mfi)
64 const amrex::Box& box = mfi.validbox();
65 amrex::BaseFab<amrex::Real> &field_box = (*field[lev])[mfi];
67 AMREX_D_TERM(
for (
int i = box.loVect()[0] - field[lev]->nGrow(); i<=box.hiVect()[0] + field[lev]->nGrow(); i++),
68 for (
int j = box.loVect()[1] - field[lev]->nGrow(); j<=box.hiVect()[1] + field[lev]->nGrow(); j++),
69 for (
int k = box.loVect()[2] - field[lev]->nGrow(); k<=box.hiVect()[2] + field[lev]->nGrow(); k++))
75 AMREX_D_TERM(x1 =
geom[lev].ProbLo()[0] + ((amrex::Real)(i) + 0.5) *
geom[lev].CellSize()[0];,
76 x2 =
geom[lev].ProbLo()[1] + ((amrex::Real)(j) + 0.5) *
geom[lev].CellSize()[1];,
77 x3 =
geom[lev].ProbLo()[2] + ((amrex::Real)(k) + 0.5) *
geom[lev].CellSize()[2];);
81 AMREX_D_TERM(x1 =
geom[lev].ProbLo()[0] + ((amrex::Real)(i)) *
geom[lev].CellSize()[0];,
82 x2 =
geom[lev].ProbLo()[1] + ((amrex::Real)(j)) *
geom[lev].CellSize()[1];,
83 x3 =
geom[lev].ProbLo()[2] + ((amrex::Real)(k)) *
geom[lev].CellSize()[2];);
89 if (
dim > 0) trigfn *= std::exp(I*(theta1 + ((amrex::Real)n1)*x1*
Set::Constant::Pi / L1)).real();
93 if (
dim > 1) trigfn *= std::exp(I*(theta2 + ((amrex::Real)n2)*x2*
Set::Constant::Pi / L2)).real();
96 if (
dim > 2) trigfn *= std::exp(I*(theta3 + ((amrex::Real)n3)*x3*
Set::Constant::Pi / L3)).real();