IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class RelaxationLSMethod provides a relaxation algorithm implementation of the level set method. Specifically, this class iterates (to steady-state) the PDE , which produces a solution to the Eikonal equation . The solution of the Eikonal equation produces the signed distance away from an interface. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/RelaxationLSMethod.h>
Public Member Functions | |
RelaxationLSMethod (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db=NULL, bool register_for_restart=true) | |
Constructor. | |
Public Member Functions inherited from IBAMR::LSInitStrategy | |
LSInitStrategy (std::string object_name, bool register_for_restart=true) | |
Constructor. | |
virtual | ~LSInitStrategy () |
Virtual destructor. | |
virtual void | registerPhysicalBoundaryCondition (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *robin_bc_coef) |
Register physical boundary condition for the level set. | |
virtual void | registerInterfaceNeighborhoodLocatingFcn (LocateInterfaceNeighborhoodFcnPtr callback, void *ctx) |
Register interface neighborhood locating functions. | |
virtual void | setReinitializeLSData (bool reinit_ls_data) |
Indicate that the class should reinitialize level set. | |
void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
Implementation of IBAMR::LSInitStrategy interface. | |
bool | d_apply_mass_constraint = false |
bool | d_apply_vol_redistribution = false |
bool | d_apply_subcell_fix = false |
bool | d_apply_sign_fix = false |
int | d_D_gcw = -1 |
double | d_alpha = 1.0 |
void | initializeLSData (int D_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hierarchy_math_ops, int integrator_step, double time, bool initial_time) override |
Initialize level set data using the relaxation method. | |
void | setApplyMassConstraint (bool apply_mass_constraint) |
Indicate that the class should apply the mass constraint. | |
void | setApplySubcellFix (bool apply_subcell_fix) |
Indicate that the class should apply the subcell fix. | |
void | setApplySignFix (bool apply_sign_fix) |
Indicate that the class should apply the sign fix near interface points. | |
void | setLSGhostCellWidth (int D_gcw) |
Hard set the ghost cell width for the level set variable. | |
void | setApplyVolumeRedistribution (bool apply_volume_redistribution) |
Indicate that the class should apply the volume redistribution algorithm. | |
Additional Inherited Members | |
Public Types inherited from IBAMR::LSInitStrategy | |
using | LocateInterfaceNeighborhoodFcnPtr = void(*)(int D_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, double time, bool initial_time, void *ctx) |
Function specifying distance function near an interface. | |
Protected Attributes inherited from IBAMR::LSInitStrategy | |
std::string | d_object_name |
bool | d_registered_for_restart |
LevelSetOrder | d_ls_order = FIRST_ORDER_LS |
LevelSetTimeStepping | d_ls_ts = GAUSS_SEIDEL_PSEUDO_TS |
double | d_abs_tol = 1.0e-5 |
int | d_max_its = 100 |
bool | d_enable_logging = false |
bool | d_reinitialize_ls = false |
int | d_reinit_interval = 0 |
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | d_bc_coef |
std::vector< LocateInterfaceNeighborhoodFcnPtr > | d_locate_interface_fcns |
std::vector< void * > | d_locate_interface_fcns_ctx |
Class RelaxationLSMethod provides a relaxation algorithm implementation of the level set method. Specifically, this class iterates (to steady-state) the PDE , which produces a solution to the Eikonal equation . The solution of the Eikonal equation produces the signed distance away from an interface.
An optional mass constraint can be applied to certain high-order LS schemes by first computing an intermediate and projecting in the following way:
.
This greatly improves the volume conservation of the interface while still retaining the order of accuracy and signed distance property. The mass conservation constraint assumes that is already close to a signed distance function and is hence, by default, disabled at initial time.
References Min, C., On reinitializing level set functions
Sussman, M. and Fatemi, E., An Efficient, Interface-Preserving Level Set Redistancing Algorithm and Its Application to Interfacial Incompressible Fluid Flow