IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | Protected Member Functions | List of all members
IBAMR::AllenCahnHierarchyIntegrator Class Reference

Class AllenCahnHierarchyIntegrator is a concrete class that manages the time integration of the Allen-Cahn and energy equation. More...

#include </home/runner/work/IBAMR/IBAMR/include/ibamr/AllenCahnHierarchyIntegrator.h>

Inheritance diagram for IBAMR::AllenCahnHierarchyIntegrator:
Inheritance graph
[legend]

Public Member Functions

 AllenCahnHierarchyIntegrator (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart=true)
 
 ~AllenCahnHierarchyIntegrator ()=default
 
void initializeHierarchyIntegrator (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) override
 
void preprocessIntegrateHierarchy (double current_time, double new_time, int num_cycles=1) override
 
void postprocessIntegrateHierarchy (double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles=1) override
 
void registerLiquidFractionVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > lf_var, const bool output_lf_var=true) override
 Register liquid fraction variable $ \varphi $.
 
void addTemporalAndLinearTermstoRHSOfEnergyEquation (int F_scratch_idx, const double dt) override
 
void computeDivergenceVelocitySourceTerm (int Div_U_F_idx, const double new_time) override
 
void setLiquidFractionPhysicalBcCoef (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > lf_var, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *lf_bc_coef)
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * getLiquidFractionPhysicalBcCoef ()
 
SAMRAI::tbox::Pointer< CellConvectiveOperatorgetAllenCahnEquationConvectiveOperator (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > lf_var, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > H_var)
 
void putToDatabaseSpecialized (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override
 

Protected Member Functions

void integrateHierarchySpecialized (double current_time, double new_time, int cycle_num=0) override
 
virtual void regridHierarchyBeginSpecialized () override
 
virtual void regridHierarchyEndSpecialized () override
 

Detailed Description

Class AllenCahnHierarchyIntegrator is a concrete class that manages the time integration of the Allen-Cahn and energy equation.

In this class, implementations are provided for phase change of a pure material using the phase-field method.

Constructor & Destructor Documentation

◆ AllenCahnHierarchyIntegrator()

IBAMR::AllenCahnHierarchyIntegrator::AllenCahnHierarchyIntegrator ( const std::string object_name,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db,
bool  register_for_restart = true 
)

The constructor for class AllenCahnHierarchyIntegrator sets some default values, reads in configuration information from input and restart databases, and registers the integrator object with the restart manager when requested.

◆ ~AllenCahnHierarchyIntegrator()

IBAMR::AllenCahnHierarchyIntegrator::~AllenCahnHierarchyIntegrator ( )
default

The destructor for class AllenCahnHierarchyIntegrator unregisters the integrator object with the restart manager when the object is so registered.

Member Function Documentation

◆ addTemporalAndLinearTermstoRHSOfEnergyEquation()

void IBAMR::AllenCahnHierarchyIntegrator::addTemporalAndLinearTermstoRHSOfEnergyEquation ( int  F_scratch_idx,
const double  dt 
)
override

Add the temporal terms to the RHS of the energy equation.

◆ computeDivergenceVelocitySourceTerm()

void IBAMR::AllenCahnHierarchyIntegrator::computeDivergenceVelocitySourceTerm ( int  Div_U_F_idx,
const double  new_time 
)
override

Compute the source term for the Div U equation.

◆ getAllenCahnEquationConvectiveOperator()

Pointer< CellConvectiveOperator > IBAMR::AllenCahnHierarchyIntegrator::getAllenCahnEquationConvectiveOperator ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  lf_var,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  H_var 
)

Get the convective operator being used by this solver class for Allen-Cahn equation.

If the convective operator has not already been constructed, then this function will initialize a default convective operator.

◆ getLiquidFractionPhysicalBcCoef()

RobinBcCoefStrategy< NDIM > * IBAMR::AllenCahnHierarchyIntegrator::getLiquidFractionPhysicalBcCoef ( )

Return a $ \varphi $ boundary condition object.

◆ initializeHierarchyIntegrator()

void IBAMR::AllenCahnHierarchyIntegrator::initializeHierarchyIntegrator ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > >  gridding_alg 
)
override

Initialize the variables, basic communications algorithms, solvers, and other data structures used by this time integrator object.

This method is called automatically by initializePatchHierarchy() prior to the construction of the patch hierarchy. It is also possible for users to make an explicit call to initializeHierarchyIntegrator() prior to calling initializePatchHierarchy().

◆ integrateHierarchySpecialized()

void IBAMR::AllenCahnHierarchyIntegrator::integrateHierarchySpecialized ( double  current_time,
double  new_time,
int  cycle_num = 0 
)
overrideprotected

Synchronously advance each level in the hierarchy over the given time increment.

◆ postprocessIntegrateHierarchy()

void IBAMR::AllenCahnHierarchyIntegrator::postprocessIntegrateHierarchy ( double  current_time,
double  new_time,
bool  skip_synchronize_new_state_data,
int  num_cycles = 1 
)
override

Clean up data following call(s) to integrateHierarchy().

◆ preprocessIntegrateHierarchy()

void IBAMR::AllenCahnHierarchyIntegrator::preprocessIntegrateHierarchy ( double  current_time,
double  new_time,
int  num_cycles = 1 
)
override

Prepare to advance the data from current_time to new_time.

◆ putToDatabaseSpecialized()

void IBAMR::AllenCahnHierarchyIntegrator::putToDatabaseSpecialized ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
override

Write out specialized object state to the given database.

◆ regridHierarchyBeginSpecialized()

void IBAMR::AllenCahnHierarchyIntegrator::regridHierarchyBeginSpecialized ( )
overrideprotectedvirtual

Reset cached hierarchy dependent data for solvers and operators before the regridding operation.

◆ regridHierarchyEndSpecialized()

void IBAMR::AllenCahnHierarchyIntegrator::regridHierarchyEndSpecialized ( )
overrideprotectedvirtual

Reset cached hierarchy dependent data for solvers and operators before the regridding operation.

◆ setLiquidFractionPhysicalBcCoef()

void IBAMR::AllenCahnHierarchyIntegrator::setLiquidFractionPhysicalBcCoef ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  lf_var,
SAMRAI::solv::RobinBcCoefStrategy< NDIM > *  lf_bc_coef 
)

Set an object to provide boundary conditions for $ \varphi $ variable, that has been registered with the hierarchy integrator.


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