Class IBFEDirectForcingKinematics is a helper class that provides direct forcing IBMethod functionality to the IBFEMethod class.
#include <ibamr/IBFEDirectForcingKinematics.h>
|
| using | KinematicsFcnPtr = void(*)(double data_time, Eigen::Vector3d &U_com, Eigen::Vector3d &W_com, void *ctx) |
| | Typedef specifying interface for specifying rigid body velocities. More...
|
| |
|
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW | IBFEDirectForcingKinematics (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, SAMRAI::tbox::Pointer< IBAMR::IBFEMethod > ibfe_method_ops, int part, bool register_for_restart=true) |
| | Constructor. More...
|
| |
| virtual | ~IBFEDirectForcingKinematics () |
| | Destructor. More...
|
| |
| void | registerKinematicsFunction (KinematicsFcnPtr comvelfcn, void *ctx=nullptr) |
| | Register user defined constrained velocity functions. More...
|
| |
| void | registerKinematicsFunction (const KinematicsFcnData &data) |
| | Register user defined velocity function data. More...
|
| |
| virtual void | setSolveRigidBodyVelocity (const IBTK::FreeRigidDOFVector &solve_rigid_dofs) |
| | Set what rigid DOFs need to be solved for this particular structure. More...
|
| |
| virtual void | initializeKinematicsData (bool initial_time=true) |
| |
| virtual void | preprocessIntegrateData (double current_time, double new_time, int num_cycles) |
| |
| virtual void | forwardEulerStep (double current_time, double new_time, libMesh::PetscVector< double > &X_current_petsc, libMesh::PetscVector< double > &X_half_petsc, libMesh::PetscVector< double > &X_new_petsc) |
| |
| virtual void | midpointStep (double current_time, double new_time, libMesh::PetscVector< double > &X_current_petsc, libMesh::PetscVector< double > &X_half_petsc, libMesh::PetscVector< double > &X_new_petsc) |
| |
| virtual void | trapezoidalStep (double current_time, double new_time, libMesh::PetscVector< double > &X_current_petsc, libMesh::PetscVector< double > &X_half_petsc, libMesh::PetscVector< double > &X_new_petsc) |
| |
| virtual void | computeLagrangianForce (libMesh::PetscVector< double > &F_petsc, libMesh::PetscVector< double > &X_petsc, libMesh::PetscVector< double > &U_petsc, const double data_time) |
| |
| virtual void | postprocessIntegrateData (double current_time, double new_time, int num_cycles) |
| |
| const Eigen::Vector3d & | getStructureCOM () const |
| |
| const Eigen::Vector3d & | getCOMTransVelocity () const |
| |
| const Eigen::Vector3d & | getCOMRotVelocity () const |
| |
| void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
| | Write out object state to the given database. More...
|
| |
◆ KinematicsFcnPtr
◆ IBFEDirectForcingKinematics() [1/3]
Since this class has Eigen object members, which have special alignment requirements, we must explicitly override operator new to get the correct aligment for the object as a whole.
◆ ~IBFEDirectForcingKinematics()
| virtual IBAMR::IBFEDirectForcingKinematics::~IBFEDirectForcingKinematics |
( |
| ) |
|
|
virtual |
◆ IBFEDirectForcingKinematics() [2/3]
| IBAMR::IBFEDirectForcingKinematics::IBFEDirectForcingKinematics |
( |
| ) |
|
|
privatedelete |
- Note
- This constructor is not implemented and should not be used.
◆ IBFEDirectForcingKinematics() [3/3]
- Note
- This constructor is not implemented and should not be used.
- Parameters
-
| from | The value to copy to this object. |
◆ registerKinematicsFunction() [1/2]
| void IBAMR::IBFEDirectForcingKinematics::registerKinematicsFunction |
( |
KinematicsFcnPtr |
comvelfcn, |
|
|
void * |
ctx = nullptr |
|
) |
| |
◆ registerKinematicsFunction() [2/2]
| void IBAMR::IBFEDirectForcingKinematics::registerKinematicsFunction |
( |
const KinematicsFcnData & |
data | ) |
|
◆ setSolveRigidBodyVelocity()
| virtual void IBAMR::IBFEDirectForcingKinematics::setSolveRigidBodyVelocity |
( |
const IBTK::FreeRigidDOFVector & |
solve_rigid_dofs | ) |
|
|
virtual |
◆ initializeKinematicsData()
| virtual void IBAMR::IBFEDirectForcingKinematics::initializeKinematicsData |
( |
bool |
initial_time = true | ) |
|
|
virtual |
Initialize kinematics data only initially.
◆ preprocessIntegrateData()
| virtual void IBAMR::IBFEDirectForcingKinematics::preprocessIntegrateData |
( |
double |
current_time, |
|
|
double |
new_time, |
|
|
int |
num_cycles |
|
) |
| |
|
virtual |
Preprocess kinematics before hierarchy integrates.
◆ forwardEulerStep()
Advance the positions of the Lagrangian structure using the forward Euler method.
◆ midpointStep()
Advance the positions of the Lagrangian structure using the (explicit) midpoint rule.
◆ trapezoidalStep()
Advance the positions of the Lagrangian structure using the (explicit) trapezoidal rule.
◆ computeLagrangianForce()
Compute the Lagrangian force at the specified time within the current time interval.
◆ postprocessIntegrateData()
| virtual void IBAMR::IBFEDirectForcingKinematics::postprocessIntegrateData |
( |
double |
current_time, |
|
|
double |
new_time, |
|
|
int |
num_cycles |
|
) |
| |
|
virtual |
Postprocess kinematics after hierarchy integrates.
◆ getStructureCOM()
| const Eigen::Vector3d& IBAMR::IBFEDirectForcingKinematics::getStructureCOM |
( |
| ) |
const |
|
inline |
◆ getCOMTransVelocity()
| const Eigen::Vector3d& IBAMR::IBFEDirectForcingKinematics::getCOMTransVelocity |
( |
| ) |
const |
|
inline |
Get COM translational velocity.
◆ getCOMRotVelocity()
| const Eigen::Vector3d& IBAMR::IBFEDirectForcingKinematics::getCOMRotVelocity |
( |
| ) |
const |
|
inline |
Get COM rotational velocity.
◆ putToDatabase()
◆ computeCOMOfStructure()
| void IBAMR::IBFEDirectForcingKinematics::computeCOMOfStructure |
( |
Eigen::Vector3d & |
X0 | ) |
|
|
protected |
Compute center of mass of the structure.
◆ computeMOIOfStructure()
| void IBAMR::IBFEDirectForcingKinematics::computeMOIOfStructure |
( |
Eigen::Matrix3d & |
I, |
|
|
const Eigen::Vector3d & |
X0 |
|
) |
| |
|
protected |
Compute moment of inertia tensor for the structure.
◆ operator=()
- Note
- This operator is not implemented and should not be used.
- Parameters
-
| that | The value to assign to this object. |
- Returns
- A reference to this object.
◆ getFromInput()
Read input values from a given database.
◆ getFromRestart()
| void IBAMR::IBFEDirectForcingKinematics::getFromRestart |
( |
| ) |
|
|
private |
Read object state from the restart file and initialize class data members.
◆ computeImposedLagrangianForceDensity()
Compute the Lagrangian force at the specified time within the current time interval for structure that has all the imposed DOFs.
◆ computeMixedLagrangianForceDensity()
Compute the Lagrangian force at the specified time within the current time interval for structure that has both kinds of DOFs (free and imposed).
◆ d_current_time
| double IBAMR::IBFEDirectForcingKinematics::d_current_time |
|
protected |
◆ d_new_time
| double IBAMR::IBFEDirectForcingKinematics::d_new_time |
|
protected |
◆ d_half_time
| double IBAMR::IBFEDirectForcingKinematics::d_half_time |
|
protected |
◆ d_ibfe_method_ops
◆ d_part
| int IBAMR::IBFEDirectForcingKinematics::d_part |
|
protected |
◆ d_object_name
| std::string IBAMR::IBFEDirectForcingKinematics::d_object_name |
|
protected |
◆ d_kinematics
◆ d_rho
| double IBAMR::IBFEDirectForcingKinematics::d_rho |
|
protected |
◆ d_center_of_mass_initial
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_center_of_mass_initial = Eigen::Vector3d::Zero() |
|
protected |
◆ d_center_of_mass_current
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_center_of_mass_current = Eigen::Vector3d::Zero() |
|
protected |
◆ d_center_of_mass_half
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_center_of_mass_half = Eigen::Vector3d::Zero() |
|
protected |
◆ d_center_of_mass_new
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_center_of_mass_new = Eigen::Vector3d::Zero() |
|
protected |
◆ d_quaternion_current
| Eigen::Quaterniond IBAMR::IBFEDirectForcingKinematics::d_quaternion_current = Eigen::Quaterniond::Identity() |
|
protected |
◆ d_quaternion_half
| Eigen::Quaterniond IBAMR::IBFEDirectForcingKinematics::d_quaternion_half = Eigen::Quaterniond::Identity() |
|
protected |
◆ d_quaternion_new
| Eigen::Quaterniond IBAMR::IBFEDirectForcingKinematics::d_quaternion_new = Eigen::Quaterniond::Identity() |
|
protected |
◆ d_solve_rigid_vel
| IBTK::FRDV IBAMR::IBFEDirectForcingKinematics::d_solve_rigid_vel |
|
protected |
◆ d_trans_vel_current
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_trans_vel_current = Eigen::Vector3d::Zero() |
|
protected |
◆ d_trans_vel_half
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_trans_vel_half = Eigen::Vector3d::Zero() |
|
protected |
◆ d_trans_vel_new
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_trans_vel_new = Eigen::Vector3d::Zero() |
|
protected |
◆ d_rot_vel_current
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_rot_vel_current = Eigen::Vector3d::Zero() |
|
protected |
◆ d_rot_vel_half
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_rot_vel_half = Eigen::Vector3d::Zero() |
|
protected |
◆ d_rot_vel_new
| Eigen::Vector3d IBAMR::IBFEDirectForcingKinematics::d_rot_vel_new = Eigen::Vector3d::Zero() |
|
protected |
◆ d_inertia_tensor_initial
| Eigen::Matrix3d IBAMR::IBFEDirectForcingKinematics::d_inertia_tensor_initial = Eigen::Matrix3d::Zero() |
|
protected |
◆ d_registered_for_restart
| bool IBAMR::IBFEDirectForcingKinematics::d_registered_for_restart |
|
protected |
The documentation for this class was generated from the following file: