IBAMR  IBAMR version 0.19.
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private 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 <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. More...
 
virtual ~IBRedundantInitializer ()
 Destructor. More...
 
void registerLSiloDataWriter (SAMRAI::tbox::Pointer< IBTK::LSiloDataWriter > silo_writer)
 Register a Silo data writer with the IB initializer object. More...
 
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. More...
 
void registerInitXSpringDataFunction (InitXSpringDataOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize xspring data structures on a given level. More...
 
void registerInitBeamDataFunction (InitBeamDataOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize beam data structures on a given level. More...
 
void registerInitDirectorAndRodFunction (InitDirectorAndRodOnLevel fcn, void *ctx=nullptr)
 Register a funcion to initialize director and rod data structures on a given level. More...
 
void registerInitBoundaryMassFunction (InitBoundaryMassOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize massive points on a given level. More...
 
void registerInitTargetPtFunction (InitTargetPtOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize target points on a given level. More...
 
void registerInitAnchorPtFunction (InitAnchorPtOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize anchor points on a given level. More...
 
void registerInitInstrumentationFunction (InitInstrumentationOnLevel fcn, void *ctx=nullptr)
 Register a function to initialize instrumentation data on a given level. More...
 
void registerInitSourceFunction (InitSourceOnLevel fcn, void *ctx=nullptr)
 Register a funciton to initialize source/sink data on a given level. More...
 
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. More...
 
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...
 

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. More...
 
void initializeStructurePosition ()
 Initialize vertex data programmatically. More...
 
void initializeSprings ()
 Initialize spring data programmatically. More...
 
void initializeXSprings ()
 Initialize xspring data programmatically. More...
 
void initializeBeams ()
 Initialize beam data programmatically. More...
 
void initializeDirectorAndRods ()
 Initialize director and rod data programmatically. More...
 
void initializeBoundaryMass ()
 Initialize massive point data programmatically. More...
 
void initializeTargetPts ()
 Initialize target point data programmatically. More...
 
void initializeAnchorPts ()
 Initialize anchor points programmatically. More...
 
void initializeInstrumentationData ()
 Initialize instrumentation data. More...
 
void initializeSourceData ()
 Initialize source/sink data. More...
 
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. More...
 
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. More...
 
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, intgetVertexInstrumentationIndices (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< boold_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 intd_global_index_offset
 
bool d_data_processed = false
 

Private Attributes

InitStructureOnLevel d_init_structure_on_level_fcn = nullptr
 
void * d_init_structure_on_level_ctx = nullptr
 
InitSpringDataOnLevel d_init_spring_on_level_fcn = nullptr
 
void * d_init_spring_on_level_ctx = nullptr
 
InitXSpringDataOnLevel d_init_xspring_on_level_fcn = nullptr
 
void * d_init_xspring_on_level_ctx = nullptr
 
InitBeamDataOnLevel d_init_beam_on_level_fcn = nullptr
 
void * d_init_beam_on_level_ctx = nullptr
 
InitDirectorAndRodOnLevel d_init_director_and_rod_on_level_fcn = nullptr
 
void * d_init_director_and_rod_on_level_ctx = nullptr
 
InitBoundaryMassOnLevel d_init_boundary_mass_on_level_fcn = nullptr
 
void * d_init_boundary_mass_on_level_ctx = nullptr
 
InitTargetPtOnLevel d_init_target_pt_on_level_fcn = nullptr
 
void * d_init_target_pt_on_level_ctx = nullptr
 
InitAnchorPtOnLevel d_init_anchor_pt_on_level_fcn = nullptr
 
void * d_init_anchor_pt_on_level_ctx = nullptr
 
InitInstrumentationOnLevel d_init_instrumentation_on_level_fcn = nullptr
 
void * d_init_instrumentation_on_level_ctx = nullptr
 
InitSourceOnLevel d_init_source_on_level_fcn = nullptr
 
void * d_init_source_on_level_ctx = nullptr
 

Detailed Description

Todo:
Document input database entries.

Member Typedef Documentation

◆ 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.

◆ Edge

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ InitSourceOnLevel

using IBAMR::IBRedundantInitializer::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)

Constructor & Destructor Documentation

◆ IBRedundantInitializer() [1/3]

IBAMR::IBRedundantInitializer::IBRedundantInitializer ( std::string  object_name,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db 
)

◆ ~IBRedundantInitializer()

virtual IBAMR::IBRedundantInitializer::~IBRedundantInitializer ( )
virtual

◆ IBRedundantInitializer() [2/3]

IBAMR::IBRedundantInitializer::IBRedundantInitializer ( )
protected
Note
This constructor is not implemented and should not be used.

◆ IBRedundantInitializer() [3/3]

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

Member Function Documentation

◆ registerLSiloDataWriter()

void IBAMR::IBRedundantInitializer::registerLSiloDataWriter ( SAMRAI::tbox::Pointer< IBTK::LSiloDataWriter silo_writer)

◆ getLevelHasLagrangianData()

bool IBAMR::IBRedundantInitializer::getLevelHasLagrangianData ( int  level_number,
bool  can_be_refined 
) const
overridevirtual
Returns
A boolean value indicating whether Lagrangian data is associated with the given level in the patch hierarchy.

Implements IBTK::LInitStrategy.

◆ 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.

◆ 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
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
Returns
The number of local nodes on the specified level.

Implements IBTK::LInitStrategy.

◆ 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.

◆ registerInitSpringDataFunction()

void IBAMR::IBRedundantInitializer::registerInitSpringDataFunction ( InitSpringDataOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitXSpringDataFunction()

void IBAMR::IBRedundantInitializer::registerInitXSpringDataFunction ( InitXSpringDataOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitBeamDataFunction()

void IBAMR::IBRedundantInitializer::registerInitBeamDataFunction ( InitBeamDataOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitDirectorAndRodFunction()

void IBAMR::IBRedundantInitializer::registerInitDirectorAndRodFunction ( InitDirectorAndRodOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitBoundaryMassFunction()

void IBAMR::IBRedundantInitializer::registerInitBoundaryMassFunction ( InitBoundaryMassOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitTargetPtFunction()

void IBAMR::IBRedundantInitializer::registerInitTargetPtFunction ( InitTargetPtOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitAnchorPtFunction()

void IBAMR::IBRedundantInitializer::registerInitAnchorPtFunction ( InitAnchorPtOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitInstrumentationFunction()

void IBAMR::IBRedundantInitializer::registerInitInstrumentationFunction ( InitInstrumentationOnLevel  fcn,
void *  ctx = nullptr 
)

◆ registerInitSourceFunction()

void IBAMR::IBRedundantInitializer::registerInitSourceFunction ( InitSourceOnLevel  fcn,
void *  ctx = nullptr 
)

◆ initializeStructureIndexingOnPatchLevel()

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

Reimplemented from IBTK::LInitStrategy.

◆ 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
Returns
The number of local nodes initialized on the patch level.

Implements 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
Returns
The number of local nodes initialized on the patch level.

Reimplemented from 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
Returns
The number of local nodes initialized on the patch level.

Reimplemented from IBTK::LInitStrategy.

◆ tagCellsForInitialRefinement()

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

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.

◆ setStructureNamesOnLevel()

void IBAMR::IBRedundantInitializer::setStructureNamesOnLevel ( const int level_num,
const std::vector< std::string > &  strct_names 
)
Note
The structure will be initialized in the same order as the supplied vector.

◆ init()

virtual void IBAMR::IBRedundantInitializer::init ( )
overridevirtual
Note
All functions should be registered with the object before init is called.

Reimplemented from IBTK::LInitStrategy.

Reimplemented in IBAMR::IBStandardInitializer.

◆ operator=()

IBRedundantInitializer& IBAMR::IBRedundantInitializer::operator= ( const IBRedundantInitializer that)
protecteddelete
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.

◆ initializeLSiloDataWriter()

void IBAMR::IBRedundantInitializer::initializeLSiloDataWriter ( int  level_number)
protected

◆ initializeStructurePosition()

void IBAMR::IBRedundantInitializer::initializeStructurePosition ( )
protected

◆ initializeSprings()

void IBAMR::IBRedundantInitializer::initializeSprings ( )
protected

◆ initializeXSprings()

void IBAMR::IBRedundantInitializer::initializeXSprings ( )
protected

◆ initializeBeams()

void IBAMR::IBRedundantInitializer::initializeBeams ( )
protected

◆ initializeDirectorAndRods()

void IBAMR::IBRedundantInitializer::initializeDirectorAndRods ( )
protected

◆ initializeBoundaryMass()

void IBAMR::IBRedundantInitializer::initializeBoundaryMass ( )
protected

◆ initializeTargetPts()

void IBAMR::IBRedundantInitializer::initializeTargetPts ( )
protected

◆ initializeAnchorPts()

void IBAMR::IBRedundantInitializer::initializeAnchorPts ( )
protected

◆ initializeInstrumentationData()

void IBAMR::IBRedundantInitializer::initializeInstrumentationData ( )
protected

◆ initializeSourceData()

void IBAMR::IBRedundantInitializer::initializeSourceData ( )
protected

◆ getPatchVertices()

void IBAMR::IBRedundantInitializer::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
protected

◆ getPatchVerticesAtLevel()

void IBAMR::IBRedundantInitializer::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
protected

◆ 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.

◆ getVertexPosn()

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

◆ getShiftedVertexPosn()

IBTK::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.

◆ getVertexTargetSpec()

const 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.

◆ getVertexAnchorSpec()

const 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 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).

◆ 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).

◆ initializeNodeData()

virtual std::vector<SAMRAI::tbox::Pointer<IBTK::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.

Reimplemented in IBAMR::IBStandardInitializer.

◆ 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.

Member Data Documentation

◆ d_object_name

std::string IBAMR::IBRedundantInitializer::d_object_name
protected

◆ d_max_levels

int IBAMR::IBRedundantInitializer::d_max_levels = -1
protected

◆ d_level_is_initialized

std::vector<bool> IBAMR::IBRedundantInitializer::d_level_is_initialized
protected

◆ d_silo_writer

SAMRAI::tbox::Pointer<IBTK::LSiloDataWriter> IBAMR::IBRedundantInitializer::d_silo_writer
protected

◆ d_base_filename

std::vector<std::vector<std::string> > IBAMR::IBRedundantInitializer::d_base_filename
protected

◆ d_length_scale_factor

double IBAMR::IBRedundantInitializer::d_length_scale_factor = 1.0
protected

◆ d_posn_shift

IBTK::Vector IBAMR::IBRedundantInitializer::d_posn_shift
protected

◆ d_num_vertex

std::vector<std::vector<int> > IBAMR::IBRedundantInitializer::d_num_vertex
protected

◆ d_vertex_offset

std::vector<std::vector<int> > IBAMR::IBRedundantInitializer::d_vertex_offset
protected

◆ d_vertex_posn

std::vector<std::vector<std::vector<IBTK::Point> > > IBAMR::IBRedundantInitializer::d_vertex_posn
protected

◆ d_spring_edge_map

std::vector<std::vector<std::multimap<int, Edge> > > IBAMR::IBRedundantInitializer::d_spring_edge_map
protected

◆ d_spring_spec_data

std::vector<std::vector<std::map<Edge, SpringSpec, EdgeComp> > > IBAMR::IBRedundantInitializer::d_spring_spec_data
protected

◆ d_xspring_edge_map

std::vector<std::vector<std::multimap<int, Edge> > > IBAMR::IBRedundantInitializer::d_xspring_edge_map
protected

◆ d_xspring_spec_data

std::vector<std::vector<std::map<Edge, XSpringSpec, EdgeComp> > > IBAMR::IBRedundantInitializer::d_xspring_spec_data
protected

◆ d_beam_spec_data

std::vector<std::vector<std::multimap<int, BeamSpec> > > IBAMR::IBRedundantInitializer::d_beam_spec_data
protected

◆ d_rod_edge_map

std::vector<std::vector<std::multimap<int, Edge> > > IBAMR::IBRedundantInitializer::d_rod_edge_map
protected

◆ d_rod_spec_data

std::vector<std::vector<std::map<Edge, RodSpec, EdgeComp> > > IBAMR::IBRedundantInitializer::d_rod_spec_data
protected

◆ d_target_spec_data

std::vector<std::vector<std::vector<TargetSpec> > > IBAMR::IBRedundantInitializer::d_target_spec_data
protected

◆ d_anchor_spec_data

std::vector<std::vector<std::vector<AnchorSpec> > > IBAMR::IBRedundantInitializer::d_anchor_spec_data
protected

◆ d_bdry_mass_spec_data

std::vector<std::vector<std::vector<BdryMassSpec> > > IBAMR::IBRedundantInitializer::d_bdry_mass_spec_data
protected

◆ d_directors

std::vector<std::vector<std::vector<std::vector<double> > > > IBAMR::IBRedundantInitializer::d_directors
protected

◆ d_instrument_idx

std::vector<std::vector<std::map<int, std::pair<int, int> > > > IBAMR::IBRedundantInitializer::d_instrument_idx
protected

◆ d_source_idx

std::vector<std::vector<std::map<int, int> > > IBAMR::IBRedundantInitializer::d_source_idx
protected

◆ d_global_index_offset

std::vector<unsigned int> IBAMR::IBRedundantInitializer::d_global_index_offset
protected

◆ d_data_processed

bool IBAMR::IBRedundantInitializer::d_data_processed = false
protected

Check if user defined data has been processed.

◆ d_init_structure_on_level_fcn

InitStructureOnLevel IBAMR::IBRedundantInitializer::d_init_structure_on_level_fcn = nullptr
private

◆ d_init_structure_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_structure_on_level_ctx = nullptr
private

◆ d_init_spring_on_level_fcn

InitSpringDataOnLevel IBAMR::IBRedundantInitializer::d_init_spring_on_level_fcn = nullptr
private

◆ d_init_spring_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_spring_on_level_ctx = nullptr
private

◆ d_init_xspring_on_level_fcn

InitXSpringDataOnLevel IBAMR::IBRedundantInitializer::d_init_xspring_on_level_fcn = nullptr
private

◆ d_init_xspring_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_xspring_on_level_ctx = nullptr
private

◆ d_init_beam_on_level_fcn

InitBeamDataOnLevel IBAMR::IBRedundantInitializer::d_init_beam_on_level_fcn = nullptr
private

◆ d_init_beam_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_beam_on_level_ctx = nullptr
private

◆ d_init_director_and_rod_on_level_fcn

InitDirectorAndRodOnLevel IBAMR::IBRedundantInitializer::d_init_director_and_rod_on_level_fcn = nullptr
private

◆ d_init_director_and_rod_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_director_and_rod_on_level_ctx = nullptr
private

◆ d_init_boundary_mass_on_level_fcn

InitBoundaryMassOnLevel IBAMR::IBRedundantInitializer::d_init_boundary_mass_on_level_fcn = nullptr
private

◆ d_init_boundary_mass_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_boundary_mass_on_level_ctx = nullptr
private

◆ d_init_target_pt_on_level_fcn

InitTargetPtOnLevel IBAMR::IBRedundantInitializer::d_init_target_pt_on_level_fcn = nullptr
private

◆ d_init_target_pt_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_target_pt_on_level_ctx = nullptr
private

◆ d_init_anchor_pt_on_level_fcn

InitAnchorPtOnLevel IBAMR::IBRedundantInitializer::d_init_anchor_pt_on_level_fcn = nullptr
private

◆ d_init_anchor_pt_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_anchor_pt_on_level_ctx = nullptr
private

◆ d_init_instrumentation_on_level_fcn

InitInstrumentationOnLevel IBAMR::IBRedundantInitializer::d_init_instrumentation_on_level_fcn = nullptr
private

◆ d_init_instrumentation_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_instrumentation_on_level_ctx = nullptr
private

◆ d_init_source_on_level_fcn

InitSourceOnLevel IBAMR::IBRedundantInitializer::d_init_source_on_level_fcn = nullptr
private

◆ d_init_source_on_level_ctx

void* IBAMR::IBRedundantInitializer::d_init_source_on_level_ctx = nullptr
private

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