IBAMR  IBAMR version 0.19.
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private 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 <ibamr/IBBeamForceSpec.h>

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

Classes

class  Factory
 A factory class to rebuild IBBeamForceSpec objects from SAMRAI::tbox::AbstractStream data streams. More...
 

Public Types

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

Public Member Functions

 IBBeamForceSpec (unsigned int num_beams=0)
 Default constructor. More...
 
 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. More...
 
 ~IBBeamForceSpec ()
 Destructor. More...
 
unsigned int getNumberOfBeams () const
 
const intgetMasterNodeIndex () const
 
intgetMasterNodeIndex ()
 
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. More...
 
size_t getDataStreamSize () const override
 Return an upper bound on the amount of space required to pack the object to a buffer. More...
 
void packStream (SAMRAI::tbox::AbstractStream &stream) override
 Pack data into the output stream. More...
 
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. More...
 

Static Public Attributes

static int STREAMABLE_CLASS_ID
 

Private Types

using IBBeamForceSpecFactory = IBBeamForceSpec::Factory
 

Private Member Functions

 IBBeamForceSpec (const IBBeamForceSpec &from)=delete
 Copy constructor. More...
 
IBBeamForceSpecoperator= (const IBBeamForceSpec &that)=delete
 Assignment operator. More...
 

Private Attributes

int d_master_idx = IBTK::invalid_index
 
std::vector< NeighborIdxsd_neighbor_idxs
 
std::vector< doubled_bend_rigidities
 
std::vector< IBTK::Vectord_mesh_dependent_curvatures
 

Detailed Description

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.

◆ IBBeamForceSpecFactory

Constructor & Destructor Documentation

◆ IBBeamForceSpec() [1/3]

IBAMR::IBBeamForceSpec::IBBeamForceSpec ( unsigned int  num_beams = 0)
inline

◆ IBBeamForceSpec() [2/3]

IBAMR::IBBeamForceSpec::IBBeamForceSpec ( int  master_idx,
const std::vector< NeighborIdxs > &  neighbor_idxs,
const std::vector< double > &  bend_rigidities,
const std::vector< IBTK::Vector > &  mesh_dependent_curvatures 
)
inline

◆ ~IBBeamForceSpec()

IBAMR::IBBeamForceSpec::~IBBeamForceSpec ( )
inline

◆ IBBeamForceSpec() [3/3]

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

Member Function Documentation

◆ registerWithStreamableManager()

static void IBAMR::IBBeamForceSpec::registerWithStreamableManager ( )
static
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.

◆ getIsRegisteredWithStreamableManager()

bool IBAMR::IBBeamForceSpec::getIsRegisteredWithStreamableManager ( )
inlinestatic

◆ getNumberOfBeams()

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

◆ getMasterNodeIndex() [1/2]

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

◆ getMasterNodeIndex() [2/2]

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

◆ getNeighborNodeIndices() [1/2]

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.

◆ getNeighborNodeIndices() [2/2]

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

◆ getBendingRigidities() [1/2]

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

◆ getBendingRigidities() [2/2]

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

◆ getMeshDependentCurvatures() [1/2]

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.

◆ getMeshDependentCurvatures() [2/2]

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

◆ getStreamableClassID()

int IBAMR::IBBeamForceSpec::getStreamableClassID ( ) const
inlineoverridevirtual

Implements IBTK::Streamable.

◆ getDataStreamSize()

size_t IBAMR::IBBeamForceSpec::getDataStreamSize ( ) const
inlineoverridevirtual

Implements IBTK::Streamable.

◆ packStream()

void IBAMR::IBBeamForceSpec::packStream ( SAMRAI::tbox::AbstractStream stream)
inlineoverridevirtual

Implements IBTK::Streamable.

◆ operator=()

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

◆ registerPeriodicShift()

virtual void IBTK::Streamable::registerPeriodicShift ( const SAMRAI::hier::IntVector< NDIM > &  offset,
const Vector displacement 
)
virtualinherited
Note
A default empty implementation is provided.

Member Data Documentation

◆ STREAMABLE_CLASS_ID

int IBAMR::IBBeamForceSpec::STREAMABLE_CLASS_ID
static

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

◆ d_master_idx

int IBAMR::IBBeamForceSpec::d_master_idx = IBTK::invalid_index
private

Data required to compute the beam forces.

◆ d_neighbor_idxs

std::vector<NeighborIdxs> IBAMR::IBBeamForceSpec::d_neighbor_idxs
private

◆ d_bend_rigidities

std::vector<double> IBAMR::IBBeamForceSpec::d_bend_rigidities
private

◆ d_mesh_dependent_curvatures

std::vector<IBTK::Vector> IBAMR::IBBeamForceSpec::d_mesh_dependent_curvatures
private

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