IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
IBAMR::IBBeamForceSpec Class Reference

Class IBBeamForceSpec encapsulates the data necessary to compute the forces generated by a collection of linear beams (i.e., structures that resist bending) at a single node of the Lagrangian mesh. More...

#include </home/runner/work/IBAMR/IBAMR/include/ibamr/IBBeamForceSpec.h>

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

Public Types

using NeighborIdxs = std::pair< int, int >
 

Public Member Functions

 IBBeamForceSpec (unsigned int num_beams=0)
 Default constructor.
 
 IBBeamForceSpec (int master_idx, const std::vector< NeighborIdxs > &neighbor_idxs, const std::vector< double > &bend_rigidities, const std::vector< IBTK::Vector > &mesh_dependent_curvatures)
 Alternative constructor.
 
 ~IBBeamForceSpec ()
 Destructor.
 
unsigned int getNumberOfBeams () const
 
const int & getMasterNodeIndex () const
 
int & getMasterNodeIndex ()
 
const std::vector< NeighborIdxs > & getNeighborNodeIndices () const
 
std::vector< NeighborIdxs > & getNeighborNodeIndices ()
 
const std::vector< double > & getBendingRigidities () const
 
std::vector< double > & getBendingRigidities ()
 
const std::vector< IBTK::Vector > & getMeshDependentCurvatures () const
 
std::vector< IBTK::Vector > & getMeshDependentCurvatures ()
 
int getStreamableClassID () const override
 Return the unique identifier used to specify the IBTK::StreamableFactory object used by the IBTK::StreamableManager to extract Streamable objects from data streams.
 
size_t getDataStreamSize () const override
 Return an upper bound on the amount of space required to pack the object to a buffer.
 
void packStream (SAMRAI::tbox::AbstractStream &stream) override
 Pack data into the output stream.
 
- Public Member Functions inherited from IBTK::Streamable
 Streamable ()=default
 Default empty constructor.
 
virtual ~Streamable ()=default
 Virtual destructor.
 
virtual void registerPeriodicShift (const SAMRAI::hier::IntVector< NDIM > &offset, const Vector &displacement)
 Indicate that the Streamable object has been shifted across a periodic boundary. More...
 

Static Public Member Functions

static void registerWithStreamableManager ()
 Register this class and its factory class with the singleton IBTK::StreamableManager object. This method must be called before any IBBeamForceSpec objects are created. More...
 
static bool getIsRegisteredWithStreamableManager ()
 Returns a boolean indicating whether the class has been registered with the singleton IBTK::StreamableManager object.
 

Static Public Attributes

static int STREAMABLE_CLASS_ID = StreamableManager::getUnregisteredID()
 

Detailed Description

Class IBBeamForceSpec encapsulates the data necessary to compute the forces generated by a collection of linear beams (i.e., structures that resist bending) at a single node of the Lagrangian mesh.

Beams are connections between three particular nodes of the Lagrangian mesh. IBBeamForceSpec objects are stored as IBTK::Streamable data associated with only the master beam nodes in the mesh.

Member Typedef Documentation

◆ NeighborIdxs

Note
This typedef appears to be needed to get g++ to parse the default parameters in the class constructor.

Member Function Documentation

◆ getBendingRigidities() [1/2]

std::vector< double > & IBAMR::IBBeamForceSpec::getBendingRigidities ( )
inline
Returns
A non-const reference to the bending rigidities of the beams attached to the master node.

◆ getBendingRigidities() [2/2]

const std::vector< double > & IBAMR::IBBeamForceSpec::getBendingRigidities ( ) const
inline
Returns
A const reference to the bending rigidities of the beams attached to the master node.

◆ getMasterNodeIndex() [1/2]

int & IBAMR::IBBeamForceSpec::getMasterNodeIndex ( )
inline
Returns
A non-const reference to the master node index.

◆ getMasterNodeIndex() [2/2]

const int & IBAMR::IBBeamForceSpec::getMasterNodeIndex ( ) const
inline
Returns
A const reference to the master node index.

◆ getMeshDependentCurvatures() [1/2]

std::vector< IBTK::Vector > & IBAMR::IBBeamForceSpec::getMeshDependentCurvatures ( )
inline
Returns
A non-const reference to the mesh-dependent curvatures of the beams attached to the master node.

◆ getMeshDependentCurvatures() [2/2]

const std::vector< IBTK::Vector > & IBAMR::IBBeamForceSpec::getMeshDependentCurvatures ( ) const
inline
Returns
A const reference to the mesh-dependent curvatures of the beams attached to the master node.

◆ getNeighborNodeIndices() [1/2]

std::vector< IBBeamForceSpec::NeighborIdxs > & IBAMR::IBBeamForceSpec::getNeighborNodeIndices ( )
inline
Returns
A non-const reference to the neighbor node indices for the beams attached to the master node.

◆ getNeighborNodeIndices() [2/2]

const std::vector< IBBeamForceSpec::NeighborIdxs > & IBAMR::IBBeamForceSpec::getNeighborNodeIndices ( ) const
inline
Returns
A const reference to the neighbor node indices for the beams attached to the master node.

◆ getNumberOfBeams()

unsigned int IBAMR::IBBeamForceSpec::getNumberOfBeams ( ) const
inline
Returns
The number of beams attached to the master node.

◆ registerWithStreamableManager()

void IBAMR::IBBeamForceSpec::registerWithStreamableManager ( )
static

Register this class and its factory class with the singleton IBTK::StreamableManager object. This method must be called before any IBBeamForceSpec objects are created.

Note
This method is collective on all MPI processes. This is done to ensure that all processes employ the same class ID for the IBBeamForceSpec class.

Member Data Documentation

◆ STREAMABLE_CLASS_ID

int IBAMR::IBBeamForceSpec::STREAMABLE_CLASS_ID = StreamableManager::getUnregisteredID()
static

The unique class ID for this object type assigned by the IBTK::StreamableManager.


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