IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | List of all members
IBAMR::IBKirchhoffRodForceGen Class Reference

Class IBKirchhoffRodForceGen computes the forces and torques generated by a collection of linear elements based on Kirchhoff rod theory. More...

#include <ibamr/IBKirchhoffRodForceGen.h>

Inheritance diagram for IBAMR::IBKirchhoffRodForceGen:
Inheritance graph
[legend]

Public Member Functions

 IBKirchhoffRodForceGen (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db=nullptr)
 Default constructor. More...
 
virtual ~IBKirchhoffRodForceGen ()
 Destructor. More...
 
void setUniformBodyForce (IBTK::Vector F, int structure_id, int level_number)
 Set a uniform body force that is applied on each point in the structure with the given structure_id. More...
 
void initializeLevelData (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool initial_time, IBTK::LDataManager *l_data_manager)
 Setup the data needed to compute the beam forces on the specified level of the patch hierarchy. More...
 
void computeLagrangianForceAndTorque (SAMRAI::tbox::Pointer< IBTK::LData > F_data, SAMRAI::tbox::Pointer< IBTK::LData > N_data, SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > D_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)
 Compute the curvilinear force and torque generated by the given configuration of the curvilinear mesh. More...
 

Private Member Functions

 IBKirchhoffRodForceGen (const IBKirchhoffRodForceGen &from)=delete
 Copy constructor. More...
 
IBKirchhoffRodForceGenoperator= (const IBKirchhoffRodForceGen &that)=delete
 Assignment operator. More...
 
void getFromInput (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db)
 Read input values, indicated above, from given database. More...
 
void computeLagrangianBodyForce (SAMRAI::tbox::Pointer< IBTK::LData > F_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)
 

Private Attributes

Data maintained separately for each level of the patch hierarchy.
std::vector< Mat > d_D_next_mats
 
std::vector< Mat > d_X_next_mats
 
std::vector< std::vector< int > > d_petsc_curr_node_idxs
 
std::vector< std::vector< int > > d_petsc_next_node_idxs
 
std::vector< std::vector< std::array< double, IBRodForceSpec::NUM_MATERIAL_PARAMS > > > d_material_params
 
std::map< int, std::map< int, IBTK::Vector > > d_uniform_body_force_data
 
std::vector< boold_is_initialized
 

Detailed Description

Note
Class IBKirchhoffRodForceGen DOES NOT correct for periodic displacements of IB points.

Constructor & Destructor Documentation

◆ IBKirchhoffRodForceGen() [1/2]

IBAMR::IBKirchhoffRodForceGen::IBKirchhoffRodForceGen ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db = nullptr)

◆ ~IBKirchhoffRodForceGen()

virtual IBAMR::IBKirchhoffRodForceGen::~IBKirchhoffRodForceGen ( )
virtual

◆ IBKirchhoffRodForceGen() [2/2]

IBAMR::IBKirchhoffRodForceGen::IBKirchhoffRodForceGen ( const IBKirchhoffRodForceGen from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ setUniformBodyForce()

void IBAMR::IBKirchhoffRodForceGen::setUniformBodyForce ( IBTK::Vector  F,
int  structure_id,
int  level_number 
)

◆ initializeLevelData()

void IBAMR::IBKirchhoffRodForceGen::initializeLevelData ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  initial_time,
IBTK::LDataManager l_data_manager 
)

◆ computeLagrangianForceAndTorque()

void IBAMR::IBKirchhoffRodForceGen::computeLagrangianForceAndTorque ( SAMRAI::tbox::Pointer< IBTK::LData F_data,
SAMRAI::tbox::Pointer< IBTK::LData N_data,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData D_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
Note
Nodal forces and moments computed by this method are added to the force and moment vectors.

◆ operator=()

IBKirchhoffRodForceGen& IBAMR::IBKirchhoffRodForceGen::operator= ( const IBKirchhoffRodForceGen that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ getFromInput()

void IBAMR::IBKirchhoffRodForceGen::getFromInput ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
private

The database pointer may be null.

◆ computeLagrangianBodyForce()

void IBAMR::IBKirchhoffRodForceGen::computeLagrangianBodyForce ( SAMRAI::tbox::Pointer< IBTK::LData F_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
private

Constant body force routines.

Member Data Documentation

◆ d_D_next_mats

std::vector<Mat> IBAMR::IBKirchhoffRodForceGen::d_D_next_mats
private

◆ d_X_next_mats

std::vector<Mat> IBAMR::IBKirchhoffRodForceGen::d_X_next_mats
private

◆ d_petsc_curr_node_idxs

std::vector<std::vector<int> > IBAMR::IBKirchhoffRodForceGen::d_petsc_curr_node_idxs
private

◆ d_petsc_next_node_idxs

std::vector<std::vector<int> > IBAMR::IBKirchhoffRodForceGen::d_petsc_next_node_idxs
private

◆ d_material_params

std::vector<std::vector<std::array<double, IBRodForceSpec::NUM_MATERIAL_PARAMS> > > IBAMR::IBKirchhoffRodForceGen::d_material_params
private

◆ d_uniform_body_force_data

std::map<int, std::map<int, IBTK::Vector> > IBAMR::IBKirchhoffRodForceGen::d_uniform_body_force_data
private

◆ d_is_initialized

std::vector<bool> IBAMR::IBKirchhoffRodForceGen::d_is_initialized
private

The documentation for this class was generated from the following file: