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

Class IBLagrangianForceStrategySet is a utility class that allows multiple IBLagrangianForceStrategy objects to be employed by a single IBHierarchyIntegrator.

#include <ibamr/IBLagrangianForceStrategySet.h>

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

Public Member Functions

template<typename InputIterator >
 IBLagrangianForceStrategySet (InputIterator first, InputIterator last)
 Constructor. More...
 
 ~IBLagrangianForceStrategySet ()=default
 Destructor. More...
 
void setTimeInterval (double current_time, double new_time) override
 Set the current and new times for the present timestep. 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) override
 Setup the data needed to compute the forces on the specified level of the patch hierarchy. More...
 
void computeLagrangianForce (SAMRAI::tbox::Pointer< IBTK::LData > F_data, SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager) override
 Compute the force generated by the Lagrangian structure on the specified level of the patch hierarchy. More...
 
void computeLagrangianForceJacobianNonzeroStructure (std::vector< int > &d_nnz, std::vector< int > &o_nnz, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, IBTK::LDataManager *l_data_manager) override
 Compute the non-zero structure of the force Jacobian matrix. More...
 
void computeLagrangianForceJacobian (Mat &J_mat, MatAssemblyType assembly_type, double X_coef, SAMRAI::tbox::Pointer< IBTK::LData > X_data, double U_coef, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager) override
 Compute the Jacobian of the force with respect to the present structure configuration and velocity. More...
 
double computeLagrangianEnergy (SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager) override
 Compute the potential energy with respect to the present structure configuration and velocity. More...
 

Private Member Functions

 IBLagrangianForceStrategySet ()=delete
 Default constructor. More...
 
 IBLagrangianForceStrategySet (const IBLagrangianForceStrategySet &from)=delete
 Copy constructor. More...
 
IBLagrangianForceStrategySetoperator= (const IBLagrangianForceStrategySet &that)=delete
 Assignment operator. More...
 

Private Attributes

std::vector< SAMRAI::tbox::Pointer< IBLagrangianForceStrategy > > d_strategy_set
 The set of IBLagrangianForceStrategy objects. More...
 

Constructor & Destructor Documentation

◆ IBLagrangianForceStrategySet() [1/3]

template<typename InputIterator >
IBAMR::IBLagrangianForceStrategySet::IBLagrangianForceStrategySet ( InputIterator  first,
InputIterator  last 
)
inline

◆ ~IBLagrangianForceStrategySet()

IBAMR::IBLagrangianForceStrategySet::~IBLagrangianForceStrategySet ( )
default

◆ IBLagrangianForceStrategySet() [2/3]

IBAMR::IBLagrangianForceStrategySet::IBLagrangianForceStrategySet ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ IBLagrangianForceStrategySet() [3/3]

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

Member Function Documentation

◆ setTimeInterval()

void IBAMR::IBLagrangianForceStrategySet::setTimeInterval ( double  current_time,
double  new_time 
)
overridevirtual

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ initializeLevelData()

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

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ computeLagrangianForce()

void IBAMR::IBLagrangianForceStrategySet::computeLagrangianForce ( SAMRAI::tbox::Pointer< IBTK::LData F_data,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual
Note
Nodal forces computed by this method are added to the force vector.

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ computeLagrangianForceJacobianNonzeroStructure()

void IBAMR::IBLagrangianForceStrategySet::computeLagrangianForceJacobianNonzeroStructure ( std::vector< int > &  d_nnz,
std::vector< int > &  o_nnz,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
IBTK::LDataManager l_data_manager 
)
overridevirtual
Note
Elements indices must be global PETSc indices.

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ computeLagrangianForceJacobian()

void IBAMR::IBLagrangianForceStrategySet::computeLagrangianForceJacobian ( Mat &  J_mat,
MatAssemblyType  assembly_type,
double  X_coef,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
double  U_coef,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual
Note
The elements of the Jacobian should be "accumulated" in the provided matrix J.

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ computeLagrangianEnergy()

double IBAMR::IBLagrangianForceStrategySet::computeLagrangianEnergy ( SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ operator=()

IBLagrangianForceStrategySet& IBAMR::IBLagrangianForceStrategySet::operator= ( const IBLagrangianForceStrategySet 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.

Member Data Documentation

◆ d_strategy_set

std::vector<SAMRAI::tbox::Pointer<IBLagrangianForceStrategy> > IBAMR::IBLagrangianForceStrategySet::d_strategy_set
private

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