IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class MarangoniSurfaceTensionForceFunction provides Marangoni forcing due to temperature variations. This class computes the forcing term and add it to the surface tension forcing. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/MarangoniSurfaceTensionForceFunction.h>
Public Member Functions | |
MarangoniSurfaceTensionForceFunction (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, AdvDiffHierarchyIntegrator *adv_diff_solver, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > level_set_var, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > T_var, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *&T_bc_coef) | |
Constructor. | |
virtual | ~MarangoniSurfaceTensionForceFunction ()=default |
Destructor. | |
Public Member Functions inherited from IBAMR::SurfaceTensionForceFunction | |
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. | |
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. | |
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 | ComputeMarangoniCoefPtr = 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) |
Callback function to compute the marangoni coefficient as a function of temperature and multiply it with the F_data as F_data = marangoni_coef*F_data. | |
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=-1, int finest_ln=-1) 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 | registerMarangoniCoefficientFunction (ComputeMarangoniCoefPtr callback, void *ctx) |
Register callback function to compute the variable marangoni coefficient. | |
Additional Inherited Members | |
Public Types inherited from IBAMR::SurfaceTensionForceFunction | |
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. | |
Protected Member Functions inherited from IBAMR::SurfaceTensionForceFunction | |
int | getMinimumGhostWidth (const std::string &kernel_fcn) |
Protected Attributes inherited from IBAMR::SurfaceTensionForceFunction | |
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 |
Protected Attributes inherited from IBTK::CartGridFunction | |
std::string | d_object_name |
Class MarangoniSurfaceTensionForceFunction provides Marangoni forcing due to temperature variations. This class computes the forcing term and add it to the surface tension forcing.
This class uses the callback function to compute the variable Marangoni coefficient as a function of Temperature.
|
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.