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

Class IBStandardSourceGen provides support for distributed internal fluid sources/sinks.

#include <ibamr/IBStandardSourceGen.h>

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

Public Member Functions

 IBStandardSourceGen ()
 Default constructor. More...
 
 ~IBStandardSourceGen ()=default
 Destructor. More...
 
std::vector< double > & getSourceStrengths (int ln)
 Return a reference to the vector of source strengths. More...
 
const std::vector< double > & getSourceStrengths (int ln) const
 Return a const reference to the vector of source strengths. More...
 
const std::vector< double > & getSourcePressures (int ln) const
 Return a const reference to the vector of source pressures. 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 source/sink data on the specified level of the patch hierarchy. More...
 
unsigned int getNumSources (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager) override
 Specify the number of distributed internal sources or sinks. More...
 
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) override
 Compute the source locations for each of the distributed internal sources or sinks. More...
 
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) override
 Set the normalized pressures at the sources. More...
 
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) override
 Compute the source strengths for each of the distributed internal sources or sinks. More...
 
void putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override
 
virtual void setTimeInterval (double current_time, double new_time)
 Set the current and new times for the present timestep. More...
 

Static Public Member Functions

static bool getIsRegisteredWithStreamableManager ()
 Returns a boolean indicating whether the class has been registered with the singleton IBTK::StreamableManager object. More...
 
static void setNumSources (int ln, unsigned int num_sources)
 Set the number of internal sources and sinks on the specified level of the patch hierarchy. More...
 
static unsigned int getNumSources (int ln)
 Get the number of internal sources and sinks on the specified level of the patch hierarchy. More...
 
static void setSourceNames (int ln, const std::vector< std::string > &names)
 Set the names of the internal sources and sinks on the specified level of the patch hierarchy. More...
 
static const std::vector< std::string > & getSourceNames (int ln)
 Get the names of the internal sources and sinks on the specified level of the patch hierarchy. More...
 
static void setSourceRadii (int ln, const std::vector< double > &radii)
 Set the sizes of the internal sources and sinks on the specified level of the patch hierarchy. More...
 
static const std::vector< double > & getSourceRadii (int ln)
 Get the sizes of the internal sources and sinks on the specified level of the patch hierarchy. More...
 

Private Member Functions

 IBStandardSourceGen (const IBStandardSourceGen &from)=delete
 Copy constructor. More...
 
IBStandardSourceGenoperator= (const IBStandardSourceGen &that)=delete
 Assignment operator. More...
 
void getFromRestart ()
 

Private Attributes

std::vector< intd_n_src
 
std::vector< std::vector< std::string > > d_source_names
 
std::vector< std::vector< double > > d_r_src
 
std::vector< std::vector< int > > d_num_perimeter_nodes
 
std::vector< std::vector< double > > d_Q_src
 
std::vector< std::vector< double > > d_P_src
 

Static Private Attributes

static std::vector< ints_num_sources
 
static std::vector< std::vector< std::string > > s_source_names
 
static std::vector< std::vector< double > > s_source_radii
 

Constructor & Destructor Documentation

◆ IBStandardSourceGen() [1/2]

IBAMR::IBStandardSourceGen::IBStandardSourceGen ( )

◆ ~IBStandardSourceGen()

IBAMR::IBStandardSourceGen::~IBStandardSourceGen ( )
default

◆ IBStandardSourceGen() [2/2]

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

Member Function Documentation

◆ getIsRegisteredWithStreamableManager()

static bool IBAMR::IBStandardSourceGen::getIsRegisteredWithStreamableManager ( )
static

◆ setNumSources()

static void IBAMR::IBStandardSourceGen::setNumSources ( int  ln,
unsigned int  num_sources 
)
static

◆ getNumSources() [1/2]

static unsigned int IBAMR::IBStandardSourceGen::getNumSources ( int  ln)
static

◆ setSourceNames()

static void IBAMR::IBStandardSourceGen::setSourceNames ( int  ln,
const std::vector< std::string > &  names 
)
static

◆ getSourceNames()

static const std::vector<std::string>& IBAMR::IBStandardSourceGen::getSourceNames ( int  ln)
static

◆ setSourceRadii()

static void IBAMR::IBStandardSourceGen::setSourceRadii ( int  ln,
const std::vector< double > &  radii 
)
static

◆ getSourceRadii()

static const std::vector<double>& IBAMR::IBStandardSourceGen::getSourceRadii ( int  ln)
static

◆ getSourceStrengths() [1/2]

std::vector<double>& IBAMR::IBStandardSourceGen::getSourceStrengths ( int  ln)
Note
Users must not change the size of this vector.

◆ getSourceStrengths() [2/2]

const std::vector<double>& IBAMR::IBStandardSourceGen::getSourceStrengths ( int  ln) const

◆ getSourcePressures()

const std::vector<double>& IBAMR::IBStandardSourceGen::getSourcePressures ( int  ln) const

◆ initializeLevelData()

void IBAMR::IBStandardSourceGen::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
Note
A default empty implementation is provided.

Reimplemented from IBAMR::IBLagrangianSourceStrategy.

◆ getNumSources() [2/2]

unsigned int IBAMR::IBStandardSourceGen::getNumSources ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual
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.

Implements IBAMR::IBLagrangianSourceStrategy.

◆ getSourceLocations()

void IBAMR::IBStandardSourceGen::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 
)
overridevirtual
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.

Implements IBAMR::IBLagrangianSourceStrategy.

◆ setSourcePressures()

void IBAMR::IBStandardSourceGen::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 
)
overridevirtual

◆ computeSourceStrengths()

void IBAMR::IBStandardSourceGen::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 
)
overridevirtual
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.

Implements IBAMR::IBLagrangianSourceStrategy.

◆ putToDatabase()

void IBAMR::IBStandardSourceGen::putToDatabase ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
overridevirtual

Write out object state to the given database.

When assertion checking is active, database pointer must be non-null.

Implements SAMRAI::tbox::Serializable.

◆ operator=()

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

◆ getFromRestart()

void IBAMR::IBStandardSourceGen::getFromRestart ( )
private

Read object state from the restart file and initialize class data members.

◆ setTimeInterval()

virtual void IBAMR::IBLagrangianSourceStrategy::setTimeInterval ( double  current_time,
double  new_time 
)
virtualinherited
Note
A default empty implementation is provided.

Member Data Documentation

◆ s_num_sources

std::vector<int> IBAMR::IBStandardSourceGen::s_num_sources
staticprivate

The numbers of sources/sinks on each level of the patch hierarchy.

◆ s_source_names

std::vector<std::vector<std::string> > IBAMR::IBStandardSourceGen::s_source_names
staticprivate

The names of the sources and sinks.

◆ s_source_radii

std::vector<std::vector<double> > IBAMR::IBStandardSourceGen::s_source_radii
staticprivate

The sizes of the sources and sinks.

◆ d_n_src

std::vector<int> IBAMR::IBStandardSourceGen::d_n_src
private

◆ d_source_names

std::vector<std::vector<std::string> > IBAMR::IBStandardSourceGen::d_source_names
private

◆ d_r_src

std::vector<std::vector<double> > IBAMR::IBStandardSourceGen::d_r_src
private

◆ d_num_perimeter_nodes

std::vector<std::vector<int> > IBAMR::IBStandardSourceGen::d_num_perimeter_nodes
private

◆ d_Q_src

std::vector<std::vector<double> > IBAMR::IBStandardSourceGen::d_Q_src
private

◆ d_P_src

std::vector<std::vector<double> > IBAMR::IBStandardSourceGen::d_P_src
private

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