|
IBAMR
IBAMR version 0.19.
|
CarmanKozenyDragForce provides an implementation of Carman-Kozeny drag force to impose zero velocity inside the solid \( \bm{u}=\bm{u}_b = 0\). More...
#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) | |
| ~CarmanKozenyDragForce ()=default | |
| void | preprocessComputeBrinkmanPenalization (double current_time, double new_time, int num_cycles) override |
| Preprocess routine before computing Carman-Kozeny term. More... | |
| 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. More... | |
| void | postprocessComputeBrinkmanPenalization (double current_time, double new_time, int num_cycles) override |
| Postprocess routine after computing Brinkman penalization terms. More... | |
| void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
| Write out object state to the given database. More... | |
| virtual void | setTimeInterval (double current_time, double new_time) |
| Set the time interval in which Brinkman velocity is computed. More... | |
| virtual void | setBrinkmanCoefficient (double chi) |
| Set the Brinkman penalization coefficient. More... | |
| virtual void | setBrinkmanPenaltyFactor (double penalty_factor) |
| Set Brinkman penalization penalty factor. More... | |
| 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. More... | |
| 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. More... | |
| SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | d_lf_var |
| Liquid fraction variable. More... | |
| 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 |
Private Member Functions | |
| CarmanKozenyDragForce (const CarmanKozenyDragForce &from)=delete | |
| Copy constructor. More... | |
| CarmanKozenyDragForce & | operator= (const CarmanKozenyDragForce &that)=delete |
| Assignment operator. More... | |
| void | getFromInput (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db, bool is_from_restart) |
| Get options from input database. More... | |
| void | getFromRestart () |
Private Attributes | |
| double | d_avoid_division_by_zero_factor = 1e-3 |
The penalization force is taken to be \( A_d(\bm{u}_b - \bm{u}^{n+1}) \). The class computes the coefficient \(A_d \) of the fluid velocity \( \bm{u}^{n+1} \) for the variable-coefficient INS solvers of INSVCStaggeredHierarchyIntegrator. This is done in the CarmanKozenyDragForce::demarcateBrinkmanZone method. Here \( A_d = C_d\frac{\alpha_S}{(1-alpha_S)^3+e_d}\), \( \alpha_S \) is the volume fraction of the solid, \( C_d\) and \( e_d\) are the model parameters. The rigid body velocity \(\bm{u}_b\) is taken to be zero. The penalty parameter C_d is taken to be \(C_d = ( \rho / \Delta t + \mu / h^2)\). The user can choose the density or the inertia scale or both for \(C_d\) through input.
| IBAMR::CarmanKozenyDragForce::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 |
||
| ) |
|
default |
|
privatedelete |
| from | The value to copy to this object. |
|
overridevirtual |
Reimplemented from IBAMR::BrinkmanPenalizationStrategy.
|
overridevirtual |
\brief Compute the desired rigid body velocity in the Brinkman penalized (solid) zone. The present
Implements IBAMR::BrinkmanPenalizationStrategy.
|
overridevirtual |
Implements IBAMR::BrinkmanPenalizationStrategy.
|
overridevirtual |
Reimplemented from IBAMR::BrinkmanPenalizationStrategy.
|
overridevirtual |
Reimplemented from IBAMR::BrinkmanPenalizationStrategy.
|
privatedelete |
| that | The value to assign to this object. |
|
private |
Read input values from a given database.
|
private |
Read object state from the restart file and initialize class data members.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protected |
|
protected |
|
protected |
|
protected |
|
private |
Constant needed to avoid division by zero. This constant also controls the strength of the penalty factor.
|
protectedinherited |
Book-keeping.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
1.8.17