Alamo
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes
Integrator::CahnHilliard Class Reference

#include <CahnHilliard.H>

Inheritance diagram for Integrator::CahnHilliard:
Integrator::Integrator

Public Member Functions

 CahnHilliard ()
 
 ~CahnHilliard ()
 
 CahnHilliard (IO::ParmParse &pp)
 
- Public Member Functions inherited from Integrator::Integrator
 Integrator ()
 
virtual ~Integrator ()
 
void InitData ()
 
void Restart (std::string restartfile, bool a_node=false)
 
void Evolve ()
 
void SetFilename (std::string _plot_file)
 
std::string GetFilename ()
 
void regrid (int lbase, Set::Scalar time, bool initial=false) override
 
void InitFromScratch (Set::Scalar time)
 
template<class T , int d>
ALAMO_SINGLE_DEFINITION void AddField (Set::Field< T > &new_field, BC::BC< T > *new_bc, int ncomp, int nghost, std::string name, bool writeout, bool evolving, std::vector< std::string >)
 
template<class T >
ALAMO_SINGLE_DEFINITION void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, bool evolving)
 
template<class T >
ALAMO_SINGLE_DEFINITION void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, std::string a_name, bool evolving)
 
template<class T >
AMREX_ATTRIBUTE_WEAK void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, bool writeout, std::string a_name, bool evolving)
 

Static Public Member Functions

static void Parse (CahnHilliard &value, IO::ParmParse &pp)
 

Static Public Attributes

static constexpr const char * name = "cahnhilliard"
 

Protected Member Functions

void Initialize (int lev) override
 
void Advance (int lev, Set::Scalar time, Set::Scalar dt) override
 
void AdvanceSpectral (int lev, Set::Scalar time, Set::Scalar dt)
 
void AdvanceReal (int lev, Set::Scalar time, Set::Scalar dt)
 
void TagCellsForRefinement (int lev, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override
 
- Protected Member Functions inherited from Integrator::Integrator
virtual void TimeStepBegin (Set::Scalar, int)
 
virtual void TimeStepComplete (Set::Scalar, int)
 
virtual void Integrate (int, Set::Scalar, int, const amrex::MFIter &, const amrex::Box &)
 
virtual void Regrid (int, Set::Scalar)
 
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={})
 
void RegisterNewFab (Set::Field< Set::Scalar > &new_fab, int ncomp, std::string name, bool writeout, std::vector< std::string > suffix={})
 
void RegisterNodalFab (Set::Field< Set::Scalar > &new_fab, int ncomp, int nghost, std::string name, bool writeout, std::vector< std::string > suffix={})
 
void RegisterNodalFab (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={})
 
template<class T >
void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, bool evolving=true)
 
template<class T >
void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, std::string a_name, bool evolving=true)
 
template<class T >
void RegisterGeneralFab (Set::Field< T > &new_fab, int ncomp, int nghost, bool writeout, std::string a_name, bool evolving=true)
 
template<class T , int d>
void AddField (Set::Field< T > &new_field, BC::BC< T > *new_bc, int ncomp, int nghost, std::string, bool writeout, bool evolving, std::vector< std::string > suffix={})
 
void SetFinestLevel (const int a_finestlevel)
 
void RegisterIntegratedVariable (Set::Scalar *integrated_variable, std::string name, bool extensive=true)
 
void SetTimestep (Set::Scalar _timestep)
 
void SetPlotInt (int plot_int)
 
void SetThermoInt (int a_thermo_int)
 
void SetThermoPlotInt (int a_thermo_plot_int)
 
void SetStopTime (Set::Scalar a_stop_time)
 
void DynamicTimestep_SyncTimeStep (int lev, Set::Scalar dt_min)
 
void DynamicTimestep_Reset ()
 
void DynamicTimestep_Update ()
 
void IntegrateVariables (Set::Scalar cur_time, int step)
 
void WritePlotFile (bool initial=false) const
 
void WritePlotFile (std::string prefix, Set::Scalar time, int step) const
 
void WritePlotFile (Set::Scalar time, amrex::Vector< int > iter, bool initial=false, std::string prefix="") const
 

Private Attributes

Set::Field< Set::Scalaretanew_mf
 
Set::Field< Set::Scalaretaold_mf
 
Set::Field< Set::Scalarintermediate
 
BC::BC< Set::Scalar > * bc
 
IC::IC< Set::Scalar > * ic
 
Set::Scalar gamma = NAN
 
Set::Scalar L = NAN
 
Set::Scalar refinement_threshold = NAN
 
std::string method
 

Additional Inherited Members

- Protected Attributes inherited from Integrator::Integrator
struct { 
 
   bool   on = false 
 
   int   verbose = -1 
 
   int   nprevious = -1 
 
   Set::Scalar   cfl = NAN 
 
   Set::Scalar   min = NAN 
 
   Set::Scalar   max = NAN 
 
   std::vector< Set::Scalar >   dt_limit_min 
 
   std::vector< Set::Scalar >   previous_timesteps 
 
dynamictimestep 
 
amrex::Vector< amrex::Real > t_new
 
amrex::Vector< int > istep
 
std::string plot_file { "plt" }
 
amrex::Real timestep = NAN
 
amrex::Vector< amrex::Real > dt
 
amrex::Vector< int > nsubsteps
 
bool integrate_variables_before_advance = true
 
bool integrate_variables_after_advance = false
 
struct { 
 
   int   number_of_fabs = 0 
 
   std::vector< Set::Field< Set::Scalar > * >   fab_array 
 
   std::vector< int >   ncomp_array 
 
   std::vector< int >   nghost_array 
 
   std::vector< std::vector< std::string > >   name_array 
 
   std::vector< BC::BC< Set::Scalar > * >   physbc_array 
 
   std::vector< bool >   writeout_array 
 
   bool   any = true 
 
   bool   all = false 
 
node 
 
struct { 
 
   int   number_of_fabs = 0 
 
   std::vector< Set::Field< Set::Scalar > * >   fab_array 
 
   std::vector< int >   ncomp_array 
 
   std::vector< int >   nghost_array 
 
   std::vector< std::vector< std::string > >   name_array 
 
   std::vector< BC::BC< Set::Scalar > * >   physbc_array 
 
   std::vector< bool >   writeout_array 
 
   bool   any = true 
 
   bool   all = false 
 
cell 
 
std::vector< BaseField * > m_basefields
 
std::vector< BaseField * > m_basefields_cell
 
BC::Nothing bcnothing
 
struct { 
 
   int   interval = -1 
 
   Set::Scalar   dt = NAN 
 
   int   plot_int = -1 
 
   Set::Scalar   plot_dt = NAN 
 
   int   number = 0 
 
   std::vector< Set::Scalar * >   vars 
 
   std::vector< std::string >   names 
 
   std::vector< bool >   extensives 
 
thermo 
 
int regrid_int = -1
 
int base_regrid_int = -1
 
std::string restart_file_cell = ""
 
std::string restart_file_node = ""
 
struct { 
 
   int   on = 0 
 
   std::vector< amrex::Box >   box 
 
explicitmesh 
 
int abort_on_nan = true
 

Detailed Description

Definition at line 35 of file CahnHilliard.H.

Constructor & Destructor Documentation

◆ CahnHilliard() [1/2]

Integrator::CahnHilliard::CahnHilliard ( )

Basic constructor (don't use)

Definition at line 16 of file CahnHilliard.cpp.

◆ ~CahnHilliard()

Integrator::CahnHilliard::~CahnHilliard ( )

Destroy pointers defined in Parse.

Definition at line 19 of file CahnHilliard.cpp.

◆ CahnHilliard() [2/2]

Integrator::CahnHilliard::CahnHilliard ( IO::ParmParse pp)
inline

Use this constructor.

Definition at line 47 of file CahnHilliard.H.

Member Function Documentation

◆ Advance()

void Integrator::CahnHilliard::Advance ( int  lev,
Set::Scalar  time,
Set::Scalar  dt 
)
overrideprotectedvirtual

Integrate eta over one timestep on lev.

Implements Integrator::Integrator.

Definition at line 50 of file CahnHilliard.cpp.

◆ AdvanceReal()

void Integrator::CahnHilliard::AdvanceReal ( int  lev,
Set::Scalar  time,
Set::Scalar  dt 
)
protected

realspace version of advance

Definition at line 62 of file CahnHilliard.cpp.

◆ AdvanceSpectral()

void Integrator::CahnHilliard::AdvanceSpectral ( int  lev,
Set::Scalar  time,
Set::Scalar  dt 
)
protected

spectral version of advance

Definition at line 185 of file CahnHilliard.cpp.

◆ Initialize()

void Integrator::CahnHilliard::Initialize ( int  lev)
overrideprotectedvirtual

Set values in fields.

Implements Integrator::Integrator.

Definition at line 194 of file CahnHilliard.cpp.

◆ Parse()

void Integrator::CahnHilliard::Parse ( CahnHilliard value,
IO::ParmParse pp 
)
static

Scan input values and initialize fields.

Definition at line 25 of file CahnHilliard.cpp.

◆ TagCellsForRefinement()

void Integrator::CahnHilliard::TagCellsForRefinement ( int  lev,
amrex::TagBoxArray &  tags,
amrex::Real  time,
int  ngrow 
)
overrideprotectedvirtual

Mark any cells that need to be refined.

Implements Integrator::Integrator.

Definition at line 204 of file CahnHilliard.cpp.

Field Documentation

◆ bc

BC::BC<Set::Scalar>* Integrator::CahnHilliard::bc
private

Intermediate field used for CH kinetics.

Definition at line 72 of file CahnHilliard.H.

◆ etanew_mf

Set::Field<Set::Scalar> Integrator::CahnHilliard::etanew_mf
private

Definition at line 68 of file CahnHilliard.H.

◆ etaold_mf

Set::Field<Set::Scalar> Integrator::CahnHilliard::etaold_mf
private

The new value for eta this timestep.

Definition at line 69 of file CahnHilliard.H.

◆ gamma

Set::Scalar Integrator::CahnHilliard::gamma = NAN
private

eta's ic object

Definition at line 75 of file CahnHilliard.H.

◆ ic

IC::IC<Set::Scalar>* Integrator::CahnHilliard::ic
private

eta's bc object

Definition at line 73 of file CahnHilliard.H.

◆ intermediate

Set::Field<Set::Scalar> Integrator::CahnHilliard::intermediate
private

Last timestep's value for eta.

Definition at line 70 of file CahnHilliard.H.

◆ L

Set::Scalar Integrator::CahnHilliard::L = NAN
private

Definition at line 76 of file CahnHilliard.H.

◆ method

std::string Integrator::CahnHilliard::method
private

Definition at line 79 of file CahnHilliard.H.

◆ name

constexpr const char* Integrator::CahnHilliard::name = "cahnhilliard"
staticconstexpr

Definition at line 38 of file CahnHilliard.H.

◆ refinement_threshold

Set::Scalar Integrator::CahnHilliard::refinement_threshold = NAN
private

Definition at line 77 of file CahnHilliard.H.


The documentation for this class was generated from the following files: