7#ifndef IC_TABULATEDINTERFACE_H_
8#define IC_TABULATEDINTERFACE_H_
31 std::vector<Set::Scalar> a_xs, std::vector<Set::Scalar> a_ys) :
38 std::vector<Set::Scalar> a_xs, std::vector<Set::Scalar> a_ys,
42 Define(a_xs,a_ys,a_type,a_alpha1,a_alpha2);
45 void Define(std::vector<Set::Scalar> a_xs, std::vector<Set::Scalar> a_ys,
59 for (amrex::MFIter mfi(*a_field[lev],amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
61 amrex::Box bx = mfi.tilebox();
62 bx.grow(a_field[lev]->nGrow());
63 amrex::Array4<Set::Scalar>
const& field = a_field[lev]->array(mfi);
64 amrex::ParallelFor (bx,[=] AMREX_GPU_DEVICE(
int i,
int j,
int k) {
65 amrex::Real x =
geom[lev].ProbLo()[0] + ((amrex::Real)(i) + 0.5) *
geom[lev].CellSize()[0];
66 amrex::Real y =
geom[lev].ProbLo()[1] + ((amrex::Real)(j) + 0.5) *
geom[lev].CellSize()[1];
93 std::vector<Set::Scalar>
xs;
94 std::vector<Set::Scalar>
ys;
#define pp_queryclass(...)
amrex::Vector< amrex::Geometry > & geom
Initialize a perturbed interface using a linear interpolation.
virtual void Add(const int &lev, Set::Field< Set::Scalar > &a_field, Set::Scalar) override
TabulatedInterface(amrex::Vector< amrex::Geometry > &_geom, std::vector< Set::Scalar > a_xs, std::vector< Set::Scalar > a_ys)
static void Parse(TabulatedInterface &value, IO::ParmParse &pp)
TabulatedInterface(amrex::Vector< amrex::Geometry > &_geom, IO::ParmParse &pp, std::string name)
std::vector< Set::Scalar > xs
TabulatedInterface(amrex::Vector< amrex::Geometry > &_geom)
void Define(std::vector< Set::Scalar > a_xs, std::vector< Set::Scalar > a_ys, Type a_type=Type::Partition, Set::Scalar a_alpha1=1.0, Set::Scalar a_alpha2=1.0)
std::vector< Set::Scalar > ys
TabulatedInterface(amrex::Vector< amrex::Geometry > &_geom, std::vector< Set::Scalar > a_xs, std::vector< Set::Scalar > a_ys, Set::Scalar a_alpha1, Set::Scalar a_alpha2, Type a_type=Type::Values)
TabulatedInterface(amrex::Vector< amrex::Geometry > &_geom, IO::ParmParse &pp)
Initialize a spherical inclusion.
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector