IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class IBSpringForceSpec encapsulates the data necessary to compute the forces generated by a network of linear or nonlinear springs (i.e., structures that resist extension and/or compression) at a single node of the Lagrangian mesh. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/IBSpringForceSpec.h>
Public Member Functions | |
IBSpringForceSpec (unsigned int num_springs=0) | |
Default constructor. | |
IBSpringForceSpec (int master_idx, const std::vector< int > &slave_idxs, const std::vector< int > &force_fcn_idxs, const std::vector< std::vector< double > > ¶meters) | |
Alternative constructor. | |
unsigned int | getNumberOfSprings () const |
const int & | getMasterNodeIndex () const |
int & | getMasterNodeIndex () |
const std::vector< int > & | getSlaveNodeIndices () const |
std::vector< int > & | getSlaveNodeIndices () |
const std::vector< int > & | getForceFunctionIndices () const |
std::vector< int > & | getForceFunctionIndices () |
const std::vector< std::vector< double > > & | getParameters () const |
std::vector< std::vector< double > > & | getParameters () |
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 IBSpringForceSpec 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() |
Class IBSpringForceSpec encapsulates the data necessary to compute the forces generated by a network of linear or nonlinear springs (i.e., structures that resist extension and/or compression) at a single node of the Lagrangian mesh.
Springs are connections between two particular nodes of the Lagrangian mesh. Forces generated by springs have the feature that the force applied to one end of the spring is the negation of the force applied to the other end of the spring. Consequently, to determine the total nodal forces, we only need to compute the force at one end of the spring (e.g., at the master node). Then, the negation of that force can be applied to the opposite end of the spring (e.g., at the slave node).
IBSpringForceSpec objects are stored as IBTK::Streamable data associated with only the master nodes in the mesh.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Register this class and its factory class with the singleton IBTK::StreamableManager object. This method must be called before any IBSpringForceSpec objects are created.
|
static |
The unique class ID for this object type assigned by the IBTK::StreamableManager.