![Logo](alamo3.svg) |
Alamo
|
Go to the documentation of this file.
15 #ifndef INTEGRATOR_HEATCONDUCTION_H // Include guards
16 #define INTEGRATOR_HEATCONDUCTION_H //
25 #include "AMReX_ParallelDescriptor.H"
26 #include "AMReX_ParmParse.H"
37 #include "Numeric/Stencil.H"
112 for (amrex::MFIter mfi(*
temp_mf[lev], amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
115 const amrex::Box& bx = mfi.tilebox();
124 amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
140 Set::Scalar dr = sqrt(AMREX_D_TERM(DX[0] * DX[0], +DX[1] * DX[1], +DX[2] * DX[2]));
143 for (amrex::MFIter mfi(*
temp_mf[lev], amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
146 const amrex::Box& bx = mfi.tilebox();
147 amrex::Array4<char>
const& tags = a_tags.array(mfi);
148 amrex::Array4<Set::Scalar>
const& temp = (*
temp_mf[lev]).array(mfi);
151 amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
159 tags(i, j, k) = amrex::TagBox::SET;
BC::BC< Set::Scalar > * bc
void Initialize(const int &a_lev, Set::Field< Set::Scalar > &a_field, Set::Scalar a_time=0.0)
Pure abstract IC object from which all other IC objects inherit.
void RegisterNewFab(Set::Field< Set::Scalar > &new_fab, BC::BC< Set::Scalar > *new_bc, int ncomp, int nghost, std::string name, bool writeout, std::vector< std::string > suffix={})
virtual ~HeatConduction()
void TagCellsForRefinement(int lev, amrex::TagBoxArray &a_tags, Set::Scalar, int)
HeatConduction(int a_nghost=2)
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
AMREX_FORCE_INLINE Set::Vector Gradient(const amrex::Array4< const Set::Scalar > &f, const int &i, const int &j, const int &k, const int &m, const Set::Scalar dx[AMREX_SPACEDIM], std::array< StencilType, AMREX_SPACEDIM > stencil=DefaultType)
AMREX_FORCE_INLINE Set::Scalar Laplacian(const amrex::Array4< const Set::Scalar > &f, const int &i, const int &j, const int &k, const int &m, const Set::Scalar dx[AMREX_SPACEDIM], std::array< StencilType, AMREX_SPACEDIM > &stencil=DefaultType)
void Advance(int lev, Set::Scalar, Set::Scalar dt)
Set::Field< Set::Scalar > temp_mf
#define pp_query_default(...)
Collection of numerical integrator objects.
const int number_of_ghost_cells
#define pp_query_required(...)
Set::Scalar refinement_threshold
amrex::Array4< T > const & Patch
void select_default(std::string name, PTRTYPE *&ic_eta, Args &&... args)
Set::Field< Set::Scalar > temp_old_mf
HeatConduction(IO::ParmParse &pp)
amrex::Vector< amrex::Real > dt
Timesteps for each level of refinement.
amrex::Array4< Set::Scalar > Patch(int lev, amrex::MFIter &mfi) const &
const int number_of_components
static void Parse(HeatConduction &value, IO::ParmParse &pp)