IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
CarmanKozenyDragForce provides an implementation of Carman-Kozeny drag force to impose zero velocity inside the solid . More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/CarmanKozenyDragForce.h>
Public Member Functions | |
CarmanKozenyDragForce (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > H_var, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > lf_var, SAMRAI::tbox::Pointer< IBAMR::AdvDiffHierarchyIntegrator > adv_diff_solver, SAMRAI::tbox::Pointer< IBAMR::INSVCStaggeredHierarchyIntegrator > fluid_solver, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart=true) | |
void | preprocessComputeBrinkmanPenalization (double current_time, double new_time, int num_cycles) override |
Preprocess routine before computing Carman-Kozeny term. | |
void | computeBrinkmanVelocity (int u_idx, double time, int cycle_num) override |
void | demarcateBrinkmanZone (int u_idx, double time, int cycle_num) override |
Demarcate the Brinkman zone (solid) with Carman-Kozeny term term. | |
void | postprocessComputeBrinkmanPenalization (double current_time, double new_time, int num_cycles) override |
Postprocess routine after computing Brinkman penalization terms. | |
void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
Write out object state to the given database. | |
Public Member Functions inherited from IBAMR::BrinkmanPenalizationStrategy | |
BrinkmanPenalizationStrategy (std::string object_name, bool register_for_restart=true) | |
virtual void | setTimeInterval (double current_time, double new_time) |
Set the time interval in which Brinkman velocity is computed. | |
virtual void | setBrinkmanCoefficient (double chi) |
Set the Brinkman penalization coefficient. More... | |
virtual void | setBrinkmanPenaltyFactor (double penalty_factor) |
Set Brinkman penalization penalty factor. | |
const std::string & | getName () const |
double | getBrinkmanCoefficient () const |
double | getBrinkmanPenaltyFactor () const |
std::pair< double, double > | getCurrentTimeInterval () const |
Protected Attributes | |
SAMRAI::tbox::Pointer< IBAMR::AdvDiffHierarchyIntegrator > | d_adv_diff_solver |
Pointers to solvers. | |
SAMRAI::tbox::Pointer< IBAMR::INSVCStaggeredHierarchyIntegrator > | d_fluid_solver |
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | d_H_var |
Heaviside variable defining the gas-pcm interface. | |
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | d_lf_var |
Liquid fraction variable. | |
Protected Attributes inherited from IBAMR::BrinkmanPenalizationStrategy | |
std::string | d_object_name |
bool | d_registered_for_restart |
double | d_current_time = std::numeric_limits<double>::quiet_NaN() |
double | d_new_time = std::numeric_limits<double>::quiet_NaN() |
double | d_penalty_factor = 1.0 |
bool | d_use_rho_scale = true |
bool | d_use_mu_scale = false |
CarmanKozenyDragForce provides an implementation of Carman-Kozeny drag force to impose zero velocity inside the solid .
The penalization force is taken to be . The class computes the coefficient of the fluid velocity for the variable-coefficient INS solvers of INSVCStaggeredHierarchyIntegrator. This is done in the CarmanKozenyDragForce::demarcateBrinkmanZone method. Here , is the volume fraction of the solid, and are the model parameters. The rigid body velocity is taken to be zero. The penalty parameter C_d is taken to be . The user can choose the density or the inertia scale or both for through input.
|
overridevirtual |
\brief Compute the desired rigid body velocity in the Brinkman penalized (solid) zone. The present
Implements IBAMR::BrinkmanPenalizationStrategy.