IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class SurfaceTensionForceFunction provides surface tension forcing using the continuum surface tension force model of Brackbill, Kothe, and Zemach. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/SurfaceTensionForceFunction.h>
Public Member Functions | |
SurfaceTensionForceFunction (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const AdvDiffHierarchyIntegrator *adv_diff_solver, const SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > level_set_var) | |
Constructor. | |
virtual | ~SurfaceTensionForceFunction ()=default |
Destructor. | |
virtual void | setSmoother (const std::string &kernel_fcn) |
Set the smoother (kernel function) to mollify the Heaviside function. | |
virtual void | setSurfaceTensionCoef (double sigma) |
Set the constant surface tension coefficient. | |
virtual void | setNumberOfInterfaceCells (double m) |
Set the number of interface cells m over which the surface tension force will be applied. The surface tension will take effect in the band -m*h to m*h around the interface, where h = (dx*dy)^(1/2) in 2D and h = (dx*dy*dz)^(1/3) in 3D. | |
std::string | getSmoother () const |
Get the smoother (kernel function) to mollify the Heaviside function. | |
double | getSurfaceTensionCoef () const |
Get the constant surface tension coefficient. | |
double | getNumberOfInterfaceCells () const |
Get the number of interface cells over which the surface tension force will be applied. | |
Public Member Functions inherited from IBTK::CartGridFunction | |
CartGridFunction (std::string object_name="") | |
The default constructor sets the name of the strategy object. | |
virtual | ~CartGridFunction ()=default |
Empty virtual destructor. | |
virtual void | setDataOnPatchLevel (int data_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > var, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchLevel< NDIM > > patch_level, double data_time, bool initial_time=false) |
Evaluate the function on the patch interiors on the specified level of the patch hierarchy using the virtual function setDataOnPatch(). More... | |
Methods to set the data. | |
using | MaskSurfaceTensionForcePtr = void(*)(int F_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, int cycle_num, double time, double current_time, double new_time, void *ctx) |
Function to Mask surface tension force to act only on the liquid-gas interface. | |
using | ComputeSurfaceTensionCoefficientPtr = void(*)(int F_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, int cycle_num, double time, double current_time, double new_time, void *ctx) |
Function to compute the variable surface tension coefficient. | |
const AdvDiffHierarchyIntegrator *const | d_adv_diff_solver |
const SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > | d_ls_var |
TimeSteppingType | d_ts_type |
int | d_C_idx = IBTK::invalid_index |
int | d_phi_idx = IBTK::invalid_index |
std::string | d_kernel_fcn |
double | d_sigma = std::numeric_limits<double>::signaling_NaN() |
double | d_num_interface_cells = std::numeric_limits<double>::signaling_NaN() |
SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > | d_hier_math_ops |
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchySideDataOpsReal< NDIM, double > > | d_hier_sc_data_ops |
bool | isTimeDependent () const override |
void | setDataOnPatchHierarchy (int data_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > var, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, double data_time, bool initial_time=false, int coarsest_ln=IBTK::invalid_level_number, int finest_ln=IBTK::invalid_level_number) override |
Evaluate the function on the patch interiors on the specified levels of the patch hierarchy using the virtual function setDataOnPatch(). More... | |
void | setDataOnPatch (int data_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > var, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, double data_time, bool initial_time=false, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchLevel< NDIM > > level=SAMRAI::tbox::Pointer< SAMRAI::hier::PatchLevel< NDIM > >(NULL)) override |
void | registerSurfaceTensionForceMasking (MaskSurfaceTensionForcePtr callback, void *ctx) |
Register function to limit the surface tension force. | |
void | registerSurfaceTensionCoefficientFunction (ComputeSurfaceTensionCoefficientPtr callback, void *ctx) |
Register function to compute the variable surface tension coefficient. | |
int | getMinimumGhostWidth (const std::string &kernel_fcn) |
Additional Inherited Members | |
Protected Attributes inherited from IBTK::CartGridFunction | |
std::string | d_object_name |
Class SurfaceTensionForceFunction provides surface tension forcing using the continuum surface tension force model of Brackbill, Kothe, and Zemach.
Reference Brackbill et. al, A continuum method for modeling surface tension
|
protected |
Get the ghost cell width of scratch data.
|
overridevirtual |
Implements IBTK::CartGridFunction.
|
overridevirtual |
Set the data on the patch interior.
Implements IBTK::CartGridFunction.
|
overridevirtual |
Evaluate the function on the patch interiors on the specified levels of the patch hierarchy using the virtual function setDataOnPatch().
Reimplemented from IBTK::CartGridFunction.