15 Wulff (amrex::Vector<amrex::Geometry> &_geom) :
21 void Add(
const int lev,
22 amrex::Vector<amrex::MultiFab * > &a_field)
24 a_field[lev]->setVal(1.0);
25 bool cellcentered = (a_field[0]->boxArray().ixType() == amrex::IndexType(amrex::IntVect::TheCellVector()));
27 for (amrex::MFIter mfi(*a_field[lev],amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
29 amrex::Box bx = mfi.tilebox();
30 bx.grow(a_field[lev]->nGrow());
34 amrex::Array4<Set::Scalar>
const& field = a_field[lev]->array(mfi);
44 amrex::ParallelFor (bx,[=] AMREX_GPU_DEVICE(
int i,
int j,
int k) {
46 AMREX_D_TERM(x(0) =
geom[lev].ProbLo()[0] + ((amrex::Real)(i) + 0.5) *
geom[lev].CellSize()[0];,
47 x(1) =
geom[lev].ProbLo()[1] + ((amrex::Real)(j) + 0.5) *
geom[lev].CellSize()[1];,
48 x(2) =
geom[lev].ProbLo()[2] + ((amrex::Real)(k) + 0.5) *
geom[lev].CellSize()[2];);
50 if (x.dot(n) > W) field(i,j,k) = 0.0;