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

Class IBRedundantInitializer is an abstract LInitStrategy that initializes the configuration of one or more Lagrangian structures from input files. More...

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

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

Classes

struct  AnchorSpec
 
struct  BdryMassSpec
 
struct  BeamSpec
 
struct  EdgeComp
 
struct  RodSpec
 
struct  SpringSpec
 
struct  TargetSpec
 
struct  XSpringSpec
 

Public Types

using InitStructureOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, int &num_vertices, std::vector< IBTK::Point > &vertex_posn, void *ctx)
 
using Edge = std::pair< int, int >
 
using InitSpringDataOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, Edge > &spring_map, std::map< Edge, SpringSpec, EdgeComp > &spring_spec, void *ctx)
 
using InitXSpringDataOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, Edge > &xspring_map, std::map< Edge, XSpringSpec, EdgeComp > xspring_spec, void *ctx)
 
using InitBeamDataOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, BeamSpec > &beam_spec, void *ctx)
 
using InitDirectorAndRodOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::vector< std::vector< double > > &director_spec, std::multimap< int, Edge > &rod_edge_map, std::map< Edge, RodSpec, EdgeComp > &rod_spec, void *ctx)
 
using InitBoundaryMassOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, BdryMassSpec > &bdry_mass_spec, void *ctx)
 
using InitTargetPtOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, TargetSpec > &tg_pt_spec, void *ctx)
 
using InitAnchorPtOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::multimap< int, AnchorSpec > &anchor_pt_spec, void *ctx)
 
using InitInstrumentationOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::vector< std::string > &instrument_name, std::map< int, std::pair< int, int > > &instrument_spec, void *ctx)
 
using InitSourceOnLevel = void(*)(const unsigned int &strct_num, const int &level_num, std::map< int, int > &source_spec, std::vector< std::string > &source_names, std::vector< double > &source_radii, void *ctx)
 

Public Member Functions

 IBRedundantInitializer (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db)
 Constructor.
 
virtual ~IBRedundantInitializer ()
 Destructor.
 
void registerLSiloDataWriter (SAMRAI::tbox::Pointer< IBTK::LSiloDataWriter > silo_writer)
 Register a Silo data writer with the IB initializer object.
 
bool getLevelHasLagrangianData (int level_number, bool can_be_refined) const override
 Determine whether there are any Lagrangian nodes on the specified patch level. More...
 
bool getIsAllLagrangianDataInDomain (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy) const override
 
unsigned int computeGlobalNodeCountOnPatchLevel (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time) override
 Determine the number of global nodes on the specified patch level. More...
 
unsigned int computeLocalNodeCountOnPatchLevel (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time) override
 Determine the number of local nodes on the specified patch level. More...
 
void registerInitStructureFunction (InitStructureOnLevel fcn, void *ctx=nullptr)
 
void registerInitSpringDataFunction (InitSpringDataOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize spring data structures on a given level.
 
void registerInitXSpringDataFunction (InitXSpringDataOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize xspring data structures on a given level.
 
void registerInitBeamDataFunction (InitBeamDataOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize beam data structures on a given level.
 
void registerInitDirectorAndRodFunction (InitDirectorAndRodOnLevel fcn, void *ctx=nullptr)
 Register a funcion to initialize director and rod data structures on a given level.
 
void registerInitBoundaryMassFunction (InitBoundaryMassOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize massive points on a given level.
 
void registerInitTargetPtFunction (InitTargetPtOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize target points on a given level.
 
void registerInitAnchorPtFunction (InitAnchorPtOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize anchor points on a given level.
 
void registerInitInstrumentationFunction (InitInstrumentationOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize instrumentation data on a given level.
 
void registerInitSourceFunction (InitSourceOnLevel fcn, void *ctx=nullptr)
 Register a funciton to initialize source/sink data on a given level.
 
void initializeStructureIndexingOnPatchLevel (std::map< int, std::string > &strct_id_to_strct_name_map, std::map< int, std::pair< int, int > > &strct_id_to_lag_idx_range_map, int level_number, double init_data_time, bool can_be_refined, bool initial_time, IBTK::LDataManager *l_data_manager) override
 Initialize the structure indexing information on the patch level.
 
unsigned int initializeDataOnPatchLevel (int lag_node_index_idx, unsigned int global_index_offset, unsigned int local_index_offset, SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time, IBTK::LDataManager *l_data_manager) override
 Initialize the LNode and LData data needed to specify the configuration of the curvilinear mesh on the patch level. More...
 
unsigned int initializeMassDataOnPatchLevel (unsigned int global_index_offset, unsigned int local_index_offset, SAMRAI::tbox::Pointer< IBTK::LData > M_data, SAMRAI::tbox::Pointer< IBTK::LData > K_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time, IBTK::LDataManager *l_data_manager) override
 Initialize the LData needed to specify the mass and spring constant data required by the penalty IB method. More...
 
unsigned int initializeDirectorDataOnPatchLevel (unsigned int global_index_offset, unsigned int local_index_offset, SAMRAI::tbox::Pointer< IBTK::LData > D_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time, IBTK::LDataManager *l_data_manager) override
 Initialize the LNode data needed to specify director vectors required by some material models. More...
 
void tagCellsForInitialRefinement (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double error_data_time, int tag_index) override
 Tag cells for initial refinement. More...
 
void setStructureNamesOnLevel (const int &level_num, const std::vector< std::string > &strct_names)
 Set the names of the structures on a given level. More...
 
virtual void init () override
 Initialize structure specific configurations. More...
 
- Public Member Functions inherited from IBTK::LInitStrategy
 LInitStrategy ()=default
 Default constructor.
 
virtual ~LInitStrategy ()=default
 Destructor.
 

Protected Member Functions

 IBRedundantInitializer ()
 Default constructor. More...
 
 IBRedundantInitializer (const IBRedundantInitializer &from)=delete
 Copy constructor. More...
 
IBRedundantInitializeroperator= (const IBRedundantInitializer &that)=delete
 Assignment operator. More...
 
void initializeLSiloDataWriter (int level_number)
 Configure the Lagrangian Silo data writer to plot the data associated with the specified level of the locally refined Cartesian grid.
 
void initializeStructurePosition ()
 Initialize vertex data programmatically.
 
void initializeSprings ()
 Initialize spring data programmatically.
 
void initializeXSprings ()
 Initialize xspring data programmatically.
 
void initializeBeams ()
 Initialize beam data programmatically.
 
void initializeDirectorAndRods ()
 Initialize director and rod data programmatically.
 
void initializeBoundaryMass ()
 Initialize massive point data programmatically.
 
void initializeTargetPts ()
 Initialize target point data programmatically.
 
void initializeAnchorPts ()
 Initialize anchor points programmatically.
 
void initializeInstrumentationData ()
 Initialize instrumentation data.
 
void initializeSourceData ()
 Initialize source/sink data.
 
void getPatchVertices (std::vector< std::pair< int, int > > &point_indices, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy) const
 Determine the indices of any vertices initially owned by the specified patch.
 
void getPatchVerticesAtLevel (std::vector< std::pair< int, int > > &point_indices, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number) const
 Determine the indices of any vertices associated with a given level number initially located within the specified patch.
 
int getCanonicalLagrangianIndex (const std::pair< int, int > &point_index, int level_number) const
 
IBTK::Point getVertexPosn (const std::pair< int, int > &point_index, int level_number) const
 
IBTK::Point getShiftedVertexPosn (const std::pair< int, int > &point_index, int level_number, const double *domain_x_lower, const double *domain_x_upper, const SAMRAI::hier::IntVector< NDIM > &periodic_shift) const
 
const TargetSpecgetVertexTargetSpec (const std::pair< int, int > &point_index, int level_number) const
 
const AnchorSpecgetVertexAnchorSpec (const std::pair< int, int > &point_index, int level_number) const
 
const BdryMassSpecgetVertexBdryMassSpec (const std::pair< int, int > &point_index, int level_number) const
 
const std::vector< double > & getVertexDirectors (const std::pair< int, int > &point_index, int level_number) const
 
std::pair< int, int > getVertexInstrumentationIndices (const std::pair< int, int > &point_index, int level_number) const
 
int getVertexSourceIndices (const std::pair< int, int > &point_index, int level_number) const
 
virtual std::vector< SAMRAI::tbox::Pointer< IBTK::Streamable > > initializeNodeData (const std::pair< int, int > &point_index, unsigned int global_index_offset, int level_number) const
 
void getFromInput (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db)
 

Protected Attributes

std::string d_object_name
 
int d_max_levels = -1
 
std::vector< bool > d_level_is_initialized
 
SAMRAI::tbox::Pointer< IBTK::LSiloDataWriterd_silo_writer
 
std::vector< std::vector< std::string > > d_base_filename
 
double d_length_scale_factor = 1.0
 
IBTK::Vector d_posn_shift
 
std::vector< std::vector< int > > d_num_vertex
 
std::vector< std::vector< int > > d_vertex_offset
 
std::vector< std::vector< std::vector< IBTK::Point > > > d_vertex_posn
 
std::vector< std::vector< std::multimap< int, Edge > > > d_spring_edge_map
 
std::vector< std::vector< std::map< Edge, SpringSpec, EdgeComp > > > d_spring_spec_data
 
std::vector< std::vector< std::multimap< int, Edge > > > d_xspring_edge_map
 
std::vector< std::vector< std::map< Edge, XSpringSpec, EdgeComp > > > d_xspring_spec_data
 
std::vector< std::vector< std::multimap< int, BeamSpec > > > d_beam_spec_data
 
std::vector< std::vector< std::multimap< int, Edge > > > d_rod_edge_map
 
std::vector< std::vector< std::map< Edge, RodSpec, EdgeComp > > > d_rod_spec_data
 
std::vector< std::vector< std::vector< TargetSpec > > > d_target_spec_data
 
std::vector< std::vector< std::vector< AnchorSpec > > > d_anchor_spec_data
 
std::vector< std::vector< std::vector< BdryMassSpec > > > d_bdry_mass_spec_data
 
std::vector< std::vector< std::vector< std::vector< double > > > > d_directors
 
std::vector< std::vector< std::map< int, std::pair< int, int > > > > d_instrument_idx
 
std::vector< std::vector< std::map< int, int > > > d_source_idx
 
std::vector< unsigned int > d_global_index_offset
 
bool d_data_processed = false
 

Detailed Description

Class IBRedundantInitializer is an abstract LInitStrategy that initializes the configuration of one or more Lagrangian structures from input files.

Todo:
Document input database entries.

Member Typedef Documentation

◆ InitAnchorPtOnLevel

using IBAMR::IBRedundantInitializer::InitAnchorPtOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, AnchorSpec>& anchor_pt_spec, void* ctx)

Typedef specifying the interface for initializing anchor points on a given level.

anchor_pt_spec should be a map between indices and the corresponding AnchorSpec.

◆ InitBeamDataOnLevel

using IBAMR::IBRedundantInitializer::InitBeamDataOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, BeamSpec>& beam_spec, void* ctx)

Typdef specifying the interface for initializing beams on a given level.

beam_spec should be the map between the master index and the corresponding BeamSpec.

◆ InitBoundaryMassOnLevel

using IBAMR::IBRedundantInitializer::InitBoundaryMassOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, BdryMassSpec>& bdry_mass_spec, void* ctx)

Typedef specifying the interface for initializing massive points on a given level.

bdry_mass_spec should be a map between indices and the corresponding BdryMassSpec.

◆ InitDirectorAndRodOnLevel

using IBAMR::IBRedundantInitializer::InitDirectorAndRodOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::vector<std::vector<double> >& director_spec, std::multimap<int, Edge>& rod_edge_map, std::map<Edge, RodSpec, EdgeComp>& rod_spec, void* ctx)

Typedef specifying the interface for initializing rods and director vectors on a given level.

director_spec should be a vector of the initial orthonormal director vectors. rod_edge_map should contain the map between the master point and the Edge of the rod. rod_spec should be the map between the Edge and the RodSpec.

◆ InitInstrumentationOnLevel

using IBAMR::IBRedundantInitializer::InitInstrumentationOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::vector<std::string>& instrument_name, std::map<int, std::pair<int, int> >& instrument_spec, void* ctx)

Typedef specifying the interface for initializing flow meters and pressure gauges on a given level.

instrument_name should be the list of names of the instruments. Note that instrument names and indices are global over all levels and structures. instrument_spec should be the map between the master index of the instrument and a pair of instrument number and node index. Note that this map is ordered.

◆ InitSpringDataOnLevel

using IBAMR::IBRedundantInitializer::InitSpringDataOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, Edge>& spring_map, std::map<Edge, SpringSpec, EdgeComp>& spring_spec, void* ctx)

Typedef specifying the interface for initializing springs on a given level.

spring_map should contain the map between the master point and the Edge of the spring. spring_spec should bw the map between the Edge and the SpringSpec.

◆ InitStructureOnLevel

using IBAMR::IBRedundantInitializer::InitStructureOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, int& num_vertices, std::vector<IBTK::Point>& vertex_posn, void* ctx)

Typedef specifying the interface for initializing structures on a given level.

◆ InitTargetPtOnLevel

using IBAMR::IBRedundantInitializer::InitTargetPtOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, TargetSpec>& tg_pt_spec, void* ctx)

Typedef specifying the interface for initializing target points on a given level.

tg_pt_spec should be a map between indices and the corresponding TargetSpec.

◆ InitXSpringDataOnLevel

using IBAMR::IBRedundantInitializer::InitXSpringDataOnLevel = void (*)(const unsigned int& strct_num, const int& level_num, std::multimap<int, Edge>& xspring_map, std::map<Edge, XSpringSpec, EdgeComp> xspring_spec, void* ctx)

Typedef specifying the interface for initializing xsprings on a given level.

xspring_map should contain the map between the master point and the Edge of the spring. xspring_spec should be the map between the Edge and the XSpringSpec.

Constructor & Destructor Documentation

◆ IBRedundantInitializer() [1/2]

IBAMR::IBRedundantInitializer::IBRedundantInitializer ( )
protected

Default constructor.

Note
This constructor is not implemented and should not be used.

◆ IBRedundantInitializer() [2/2]

IBAMR::IBRedundantInitializer::IBRedundantInitializer ( const IBRedundantInitializer from)
protecteddelete

Copy constructor.

Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ computeGlobalNodeCountOnPatchLevel()

unsigned int IBAMR::IBRedundantInitializer::computeGlobalNodeCountOnPatchLevel ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  can_be_refined,
bool  initial_time 
)
overridevirtual

Determine the number of global nodes on the specified patch level.

Returns
The number of global nodes on the specified level.

Implements IBTK::LInitStrategy.

◆ computeLocalNodeCountOnPatchLevel()

unsigned int IBAMR::IBRedundantInitializer::computeLocalNodeCountOnPatchLevel ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  can_be_refined,
bool  initial_time 
)
overridevirtual

Determine the number of local nodes on the specified patch level.

Returns
The number of local nodes on the specified level.

Implements IBTK::LInitStrategy.

◆ getCanonicalLagrangianIndex()

int IBAMR::IBRedundantInitializer::getCanonicalLagrangianIndex ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The canonical Lagrangian index of the specified vertex.

◆ getFromInput()

void IBAMR::IBRedundantInitializer::getFromInput ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
protected

Read input values, indicated above, from given database.

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

◆ getIsAllLagrangianDataInDomain()

bool IBAMR::IBRedundantInitializer::getIsAllLagrangianDataInDomain ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy) const
overridevirtual
Returns
A boolean value indicating whether or not all Lagrangian data is within the computational domain specified by the patch hierarchy.

Implements IBTK::LInitStrategy.

◆ getLevelHasLagrangianData()

bool IBAMR::IBRedundantInitializer::getLevelHasLagrangianData ( int  level_number,
bool  can_be_refined 
) const
overridevirtual

Determine whether there are any Lagrangian nodes on the specified patch level.

Returns
A boolean value indicating whether Lagrangian data is associated with the given level in the patch hierarchy.

Implements IBTK::LInitStrategy.

◆ getShiftedVertexPosn()

Point IBAMR::IBRedundantInitializer::getShiftedVertexPosn ( const std::pair< int, int > &  point_index,
int  level_number,
const double *  domain_x_lower,
const double *  domain_x_upper,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift 
) const
protected
Returns
The initial position of the specified vertex.

◆ getVertexAnchorSpec()

const IBRedundantInitializer::AnchorSpec & IBAMR::IBRedundantInitializer::getVertexAnchorSpec ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The anchor point specifications associated with a particular node.

◆ getVertexBdryMassSpec()

const IBRedundantInitializer::BdryMassSpec & IBAMR::IBRedundantInitializer::getVertexBdryMassSpec ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The massive boundary point specifications associated with a particular node.

◆ getVertexDirectors()

const std::vector< double > & IBAMR::IBRedundantInitializer::getVertexDirectors ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The directors associated with a particular node.

◆ getVertexInstrumentationIndices()

std::pair< int, int > IBAMR::IBRedundantInitializer::getVertexInstrumentationIndices ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The instrumentation indices associated with a particular node (or std::make_pair(-1,-1) if there is no instrumentation data associated with that node).

◆ getVertexPosn()

Point IBAMR::IBRedundantInitializer::getVertexPosn ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The initial position of the specified vertex.

◆ getVertexSourceIndices()

int IBAMR::IBRedundantInitializer::getVertexSourceIndices ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The source indices associated with a particular node (or -1 if there is no source data associated with that node).

◆ getVertexTargetSpec()

const IBRedundantInitializer::TargetSpec & IBAMR::IBRedundantInitializer::getVertexTargetSpec ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protected
Returns
The target point specifications associated with a particular node.

◆ init()

void IBAMR::IBRedundantInitializer::init ( )
overridevirtual

Initialize structure specific configurations.

Note
All functions should be registered with the object before init is called.

Reimplemented from IBTK::LInitStrategy.

Reimplemented in IBAMR::IBStandardInitializer.

◆ initializeDataOnPatchLevel()

unsigned int IBAMR::IBRedundantInitializer::initializeDataOnPatchLevel ( int  lag_node_index_idx,
unsigned int  global_index_offset,
unsigned int  local_index_offset,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  can_be_refined,
bool  initial_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual

Initialize the LNode and LData data needed to specify the configuration of the curvilinear mesh on the patch level.

Returns
The number of local nodes initialized on the patch level.

Implements IBTK::LInitStrategy.

◆ initializeDirectorDataOnPatchLevel()

unsigned int IBAMR::IBRedundantInitializer::initializeDirectorDataOnPatchLevel ( unsigned int  global_index_offset,
unsigned int  local_index_offset,
SAMRAI::tbox::Pointer< IBTK::LData D_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  can_be_refined,
bool  initial_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual

Initialize the LNode data needed to specify director vectors required by some material models.

Returns
The number of local nodes initialized on the patch level.

Reimplemented from IBTK::LInitStrategy.

◆ initializeMassDataOnPatchLevel()

unsigned int IBAMR::IBRedundantInitializer::initializeMassDataOnPatchLevel ( unsigned int  global_index_offset,
unsigned int  local_index_offset,
SAMRAI::tbox::Pointer< IBTK::LData M_data,
SAMRAI::tbox::Pointer< IBTK::LData K_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  can_be_refined,
bool  initial_time,
IBTK::LDataManager l_data_manager 
)
overridevirtual

Initialize the LData needed to specify the mass and spring constant data required by the penalty IB method.

Returns
The number of local nodes initialized on the patch level.

Reimplemented from IBTK::LInitStrategy.

◆ initializeNodeData()

std::vector< Pointer< Streamable > > IBAMR::IBRedundantInitializer::initializeNodeData ( const std::pair< int, int > &  point_index,
unsigned int  global_index_offset,
int  level_number 
) const
protectedvirtual
Returns
The specification objects associated with the specified vertex.

◆ operator=()

IBRedundantInitializer& IBAMR::IBRedundantInitializer::operator= ( const IBRedundantInitializer that)
protecteddelete

Assignment operator.

Note
This constructor is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ registerInitStructureFunction()

void IBAMR::IBRedundantInitializer::registerInitStructureFunction ( InitStructureOnLevel  fcn,
void *  ctx = nullptr 
)

Register the function to initialize a structure on a given level.

Note
A function must be registered or IBRedundantInitializer will return an error.

◆ setStructureNamesOnLevel()

void IBAMR::IBRedundantInitializer::setStructureNamesOnLevel ( const int &  level_num,
const std::vector< std::string > &  strct_names 
)

Set the names of the structures on a given level.

Note
The structure will be initialized in the same order as the supplied vector.

◆ tagCellsForInitialRefinement()

void IBAMR::IBRedundantInitializer::tagCellsForInitialRefinement ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  error_data_time,
int  tag_index 
)
overridevirtual

Tag cells for initial refinement.

When the patch hierarchy is being constructed at the initial simulation time, it is necessary to instruct the gridding algorithm where to place local refinement in order to accommodate portions of the curvilinear mesh that will reside in any yet-to-be-constructed level(s) of the patch hierarchy.

Reimplemented from IBTK::LInitStrategy.

Member Data Documentation

◆ d_data_processed

bool IBAMR::IBRedundantInitializer::d_data_processed = false
protected

Check if user defined data has been processed.


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