IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | List of all members
IBAMR::IBLagrangianSourceStrategy Class Referenceabstract

Class IBLagrangianForceStrategy provides a generic interface for specifying the positions and magnitudes of distributed internal fluid source-sinks. More...

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

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

Public Member Functions

 IBLagrangianSourceStrategy ()=default
 Default constructor.
 
virtual ~IBLagrangianSourceStrategy ()=default
 Virtual destructor.
 
virtual void setTimeInterval (double current_time, double new_time)
 Set the current and new times for the present timestep. More...
 
virtual 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 source/sink data on the specified level of the patch hierarchy. More...
 
virtual unsigned int getNumSources (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)=0
 Specify the number of distributed internal sources or sinks. More...
 
virtual void getSourceLocations (std::vector< IBTK::Point > &X_src, std::vector< double > &r_src, SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)=0
 Compute the source locations for each of the distributed internal sources or sinks. More...
 
virtual void setSourcePressures (const std::vector< double > &P_src, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)=0
 Set the normalized pressures at the sources.
 
virtual void computeSourceStrengths (std::vector< double > &Q_src, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)=0
 Compute the source strengths for each of the distributed internal sources or sinks. More...
 

Detailed Description

Class IBLagrangianForceStrategy provides a generic interface for specifying the positions and magnitudes of distributed internal fluid source-sinks.

Member Function Documentation

◆ computeSourceStrengths()

virtual void IBAMR::IBLagrangianSourceStrategy::computeSourceStrengths ( std::vector< double > &  Q_src,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
pure virtual

Compute the source strengths for each of the distributed internal sources or sinks.

Note
Implementations of this method must compute the same values for Q_src on each MPI process. That is to say, Q_src must provide the strengths of all of the distributed sources/sinks.

Implemented in IBAMR::IBStandardSourceGen.

◆ getNumSources()

virtual unsigned int IBAMR::IBLagrangianSourceStrategy::getNumSources ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
pure virtual

Specify the number of distributed internal sources or sinks.

Note
The return value must be the total number of internal sources/sinks in the entire computational domain. This implies that the return value must be identical on each MPI process.

Implemented in IBAMR::IBStandardSourceGen.

◆ getSourceLocations()

virtual void IBAMR::IBLagrangianSourceStrategy::getSourceLocations ( std::vector< IBTK::Point > &  X_src,
std::vector< double > &  r_src,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
pure virtual

Compute the source locations for each of the distributed internal sources or sinks.

Note
Implementations of this method must compute the same values for X_src on each MPI process. That is to say, X_src must provide the location of all of the distributed sources/sinks.

Implemented in IBAMR::IBStandardSourceGen.

◆ initializeLevelData()

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

Setup the data needed to compute source/sink data on the specified level of the patch hierarchy.

Note
A default empty implementation is provided.

Reimplemented in IBAMR::IBStandardSourceGen.

◆ setTimeInterval()

void IBAMR::IBLagrangianSourceStrategy::setTimeInterval ( double  current_time,
double  new_time 
)
virtual

Set the current and new times for the present timestep.

Note
A default empty implementation is provided.

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