21#ifndef INTEGRATOR_CAHNHILLIARD_H
22#define INTEGRATOR_CAHNHILLIARD_H
25#include <AMReX_MLMG.H>
38 static constexpr const char*
name =
"cahnhilliard";
Pure abstract IC object from which all other IC objects inherit.
CahnHilliard()
Basic constructor (don't use)
IC::IC< Set::Scalar > * ic
eta's bc object
void AdvanceReal(int lev, Set::Scalar time, Set::Scalar dt)
realspace version of advance
Set::Scalar gamma
eta's ic object
Set::Field< Set::Scalar > intermediate
Last timestep's value for eta.
void Initialize(int lev) override
Set values in fields.
Set::Field< Set::Scalar > etaold_mf
The new value for eta this timestep.
Set::Field< Set::Scalar > etanew_mf
CahnHilliard(IO::ParmParse &pp)
Use this constructor.
void TagCellsForRefinement(int lev, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override
Mark any cells that need to be refined.
Set::Scalar refinement_threshold
static constexpr const char * name
BC::BC< Set::Scalar > * bc
Intermediate field used for CH kinetics.
void AdvanceSpectral(int lev, Set::Scalar time, Set::Scalar dt)
spectral version of advance
~CahnHilliard()
Destroy pointers defined in Parse.
void Advance(int lev, Set::Scalar time, Set::Scalar dt) override
Integrate eta over one timestep on lev.
static void Parse(CahnHilliard &value, IO::ParmParse &pp)
Scan input values and initialize fields.
amrex::Vector< amrex::Real > dt
Timesteps for each level of refinement.
Collection of numerical integrator objects.
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector