IBAMR  IBAMR version 0.19.
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
IBAMR::IBStandardInitializer Class Reference

Class IBStandardInitializer is a concrete LInitStrategy that initializes the configuration of one or more Lagrangian structures from input files. More...

#include <ibamr/IBStandardInitializer.h>

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

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

 IBStandardInitializer (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db)
 Constructor. More...
 
 ~IBStandardInitializer ()
 Destructor. More...
 
void init () override
 Initialize structure specific configurations. 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...
 

Protected Member Functions

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
 

Protected Attributes

std::string d_object_name
 
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 Member Functions

 IBStandardInitializer ()=delete
 Default constructor. More...
 
 IBStandardInitializer (const IBStandardInitializer &from)=delete
 Copy constructor. More...
 
IBStandardInitializeroperator= (const IBStandardInitializer &that)=delete
 Assignment operator. More...
 
void readVertexFiles (const std::string &extension)
 Read the vertex data from one or more input files. More...
 
void readSpringFiles (const std::string &file_extension, bool input_uses_global_idxs)
 Read the spring data from one or more input files. More...
 
void readXSpringFiles (const std::string &file_extension, bool input_uses_global_idxs)
 Read the crosslink spring ("x-spring") data from one or more input files. More...
 
void readBeamFiles (const std::string &file_extension, bool input_uses_global_idxs)
 Read the beam data from one or more input files. More...
 
void readRodFiles (const std::string &file_extension, bool input_uses_global_idxs)
 Read the rod data from one or more input files. More...
 
void readTargetPointFiles (const std::string &file_extension)
 Read the target point data from one or more input files. More...
 
void readAnchorPointFiles (const std::string &file_extension)
 Read the anchor point data from one or more input files. More...
 
void readBoundaryMassFiles (const std::string &file_extension)
 Read the boundary mass data from one or more input files. More...
 
void readDirectorFiles (const std::string &file_extension)
 Read the director data from one or more input files. More...
 
void readInstrumentationFiles (const std::string &file_extension)
 Read the instrumentation data from one or more input files. More...
 
void readSourceFiles (const std::string &file_extension)
 Read the source/sink data from one or more input files. More...
 
std::vector< SAMRAI::tbox::Pointer< IBTK::Streamable > > initializeNodeData (const std::pair< int, int > &point_index, unsigned int global_index_offset, int level_number) const override
 
void getFromInput (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db)
 

Private Attributes

bool d_use_file_batons = true
 
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< bool > > d_enable_springs
 
std::vector< std::vector< bool > > d_using_uniform_spring_stiffness
 
std::vector< std::vector< double > > d_uniform_spring_stiffness
 
std::vector< std::vector< bool > > d_using_uniform_spring_rest_length
 
std::vector< std::vector< double > > d_uniform_spring_rest_length
 
std::vector< std::vector< bool > > d_using_uniform_spring_force_fcn_idx
 
std::vector< std::vector< int > > d_uniform_spring_force_fcn_idx
 
std::vector< std::vector< bool > > d_enable_xsprings
 
std::vector< std::vector< bool > > d_using_uniform_xspring_stiffness
 
std::vector< std::vector< double > > d_uniform_xspring_stiffness
 
std::vector< std::vector< bool > > d_using_uniform_xspring_rest_length
 
std::vector< std::vector< double > > d_uniform_xspring_rest_length
 
std::vector< std::vector< bool > > d_using_uniform_xspring_force_fcn_idx
 
std::vector< std::vector< int > > d_uniform_xspring_force_fcn_idx
 
std::vector< std::vector< bool > > d_enable_beams
 
std::vector< std::vector< bool > > d_using_uniform_beam_bend_rigidity
 
std::vector< std::vector< double > > d_uniform_beam_bend_rigidity
 
std::vector< std::vector< bool > > d_using_uniform_beam_curvature
 
std::vector< std::vector< IBTK::Vector > > d_uniform_beam_curvature
 
std::vector< std::vector< bool > > d_enable_rods
 
std::vector< std::vector< bool > > d_using_uniform_rod_properties
 
std::vector< std::vector< std::array< double, IBRodForceSpec::NUM_MATERIAL_PARAMS > > > d_uniform_rod_properties
 
std::vector< std::vector< bool > > d_enable_target_points
 
std::vector< std::vector< bool > > d_using_uniform_target_stiffness
 
std::vector< std::vector< double > > d_uniform_target_stiffness
 
std::vector< std::vector< bool > > d_using_uniform_target_damping
 
std::vector< std::vector< double > > d_uniform_target_damping
 
std::vector< std::vector< bool > > d_enable_anchor_points
 
std::vector< std::vector< bool > > d_enable_bdry_mass
 
std::vector< std::vector< bool > > d_using_uniform_bdry_mass
 
std::vector< std::vector< double > > d_uniform_bdry_mass
 
std::vector< std::vector< bool > > d_using_uniform_bdry_mass_stiffness
 
std::vector< std::vector< double > > d_uniform_bdry_mass_stiffness
 
std::vector< std::vector< bool > > d_enable_instrumentation
 
std::vector< std::vector< bool > > d_enable_sources
 
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.
Note
"C-style" indices are used for all input files.

Vertex file format

Vertex input files end with the extension ".vertex" and have the following format for two-dimensional models:

N           # number of vertices in the file
x_0   y_0   # (x,y)-coordinates of vertex 0
x_1   y_1   # (x,y)-coordinates of vertex 1
x_2   y_2   # (x,y)-coordinates of vertex 2
...

Vertex input files end with the extension ".vertex" and have the following format for three-dimensional models:

N                 # number of vertices in the file
x_0   y_0   z_0   # (x,y,z)-coordinates of vertex 0
x_1   y_1   z_1   # (x,y,z)-coordinates of vertex 1
x_2   y_2   z_2   # (x,y,z)-coordinates of vertex 2
...

Spring file format

Spring input files end with the extension ".spring" and have the following format:

M                                            # number of links in the file
i_0   j_0   kappa_0   length_0   fcn_idx_0   # first vertex index, second vertex index, spring
constant, rest length, spring function index
i_1   j_1   kappa_1   length_1   fcn_idx_1
i_2   j_2   kappa_2   length_2   fcn_idx_2
...
Note
There is no restriction on the number of springs that may be associated with any particular node of the Lagrangian mesh.
The rest length and force function index are optional values. If they are not provided, by default the rest length will be set to the value 0.0 and the force function index will be set to 0. This corresponds to a linear spring with zero rest length.
Spring specifications are used by class LSiloDataWriter to construct unstructured mesh representations of the Lagrangian structures. Consequently, even if your structure does not have any springs, it may be worthwhile to generate a spring input file with all spring constants set to 0.0.
min(i,j) is always used as the "master" node index when constructing the corresponding IBSpringForceSpec object.
See also
IBSpringForceGen
IBSpringForceSpec

Crosslink spring file format

Crosslink spring ("x-spring") input files end with the extension ".xspring" and have the following format:

M                                            # number of links in the file
i_0   j_0   kappa_0   length_0   fcn_idx_0   # first vertex index, second vertex index, spring
constant, rest length, spring function index
i_1   j_1   kappa_1   length_1   fcn_idx_1
i_2   j_2   kappa_2   length_2   fcn_idx_2
...
Note
Unlike standard spring files, in which all indices are required to refer to points within a particular structure, x-spring files may connect points from different structures. Consequently, the node indices in an x-spring file must be global indices. Notice that global indices are determined by the order in which the structures are specified in the input file. Changes in the order in which structures are specified necessarily change the global indexing scheme.
Crosslink springs may connect only structures assigned to the same level of the locally refined grid.
There is no restriction on the number of x-springs that may be associated with any particular node of the Lagrangian mesh.
The rest length and force function index are optional values. If they are not provided, then by default the rest length will be set to the value 0.0 and the force function index will be set to 0. This corresponds to a linear spring with zero rest length.
Crosslink spring specifications are used by class LSiloDataWriter to construct unstructured mesh representations of the Lagrangian structures. Consequently, even if your structure does not have any springs, it may be worthwhile to generate a spring input file with all spring constants set to 0.0.
min(i,j) is always used as the "master" node index when constructing the corresponding IBSpringForceSpec object.
See also
IBSpringForceGen
IBSpringForceSpec

Beam file format

Beam input files end with the extension ".beam" and have the following format:

M                           # number of beams in the file
i_0   j_0   k_0   kappa_0   # first vertex index, second vertex index, third vertex index,
bending
rigidity
i_1   j_1   k_1   kappa_1
i_2   j_2   k_2   kappa_2
...
Note
There is no restriction on the number of beams that may be associated with any particular node of the Lagrangian mesh.
For each bending-resistant triple (i,j,k), it is necessary that vertex j correspond to an "interior" node, i.e., a node that is not the first or last node in the beam.
The second vertex index is always used as the "master" node index when constructing the corresponding IBBeamForceSpec object.
See also
IBBeamForceGen
IBBeamForceSpec

Rod file format

Rod input files end with the extension ".rod" and have the following format:

M                                                                                          #
number
of rods in the file
i_0   j_0   ds_0   a1_0   a2_0   a3_0   b1_0   b2_0   b3_0   kappa1_0   kappa2_0   tau_0   #
first
vertex index, second vertex index, material parameters
i_1   j_1   ds_1   a1_1   a2_1   a3_1   b1_1   b2_1   b3_1   kappa1_1   kappa2_1   tau_1
i_2   j_2   ds_2   a1_2   a2_2   a3_2   b1_2   b2_2   b3_2   kappa1_2   kappa2_2   tau_2
...
Note
There is no restriction on the number of rods that may be associated with any particular node of the Lagrangian mesh.
The first vertex index is always used as the "master" node index when constructing the corresponding IBRodForceSpec object.
The parameters kappa1, kappa2, and tau (the intrinsic curvatures and twist of the rod) are optional. If not provided in the input file, they are assumed to be zero.
See also
IBKirchhoffRodForceGen
IBRodForceSpec

Target point file format

Target point input files end with the extension ".target" and have the following format:

M                       # number of target points in the file
i_0   kappa_0   eta_0   # vertex index, penalty spring constant, penalty damping coefficient
i_1   kappa_1   eta_1
i_2   kappa_2   eta_2
...
Note
Target points are anchored to their initial positions by linear springs with the specified spring constants and with zero resting lengths. Consequently, target points approximately enforce internal Dirichlet boundary conditions. The penalty parameter provides control over the energetic penalty imposed when the position of the Lagrangian immersed boundary point deviates from that of its specified fixed location.
Damping coefficients \( \eta \) are optional and are set to 0.0 if not supplied. Target points are "anchored" in place using Kelvin-Voigt viscoelastic elements.
See also
IBTargetPointForceGen
IBTargetPointForceSpec

Anchor point file format

Anchor point input files end with the extension ".anchor" and have the following format:

M                           # number of anchor points in the file
i_0                         # vertex index
i_1
i_2
...
Note
Anchor points are immersed boundary nodes that are "anchored" in place. Such points neither spread force nor interpolate velocity.

Mass point file format

Mass point input files end with the extension ".mass" and have the following format:

M                           # number of mass points in the file
i_0   mass_0   kappa_0      # vertex index, point mass, penalty spring constant
i_1   mass_1   kappa_1
i_2   mass_2   kappa_2
...
Note
Mass points are anchored to "ghost" massive particles by linear springs with the specified spring constants and with zero resting lengths. The massive particles are "isolated" and simply move according to Newton's laws. The penalty parameter provides control over the energetic penalty imposed when the position of the Lagrangian immersed boundary point deviates from that of its massive copy.

Instrumentation file format

Instrumentation input files (specifying the nodes employed to determine the time-dependent positions of flow meters and pressure gauges) end with the extension ".inst" and have the following format:

M                                      # number of instruments in the file
meter_name_0                           # meter names
meter_name_1
meter_name_2
...
N                                      # number of instrumentation points in the file
i_0   meter_idx_0   meter_node_idx_0   # vertex index, meter index, node index within meter
i_1   meter_idx_1   meter_node_idx_1
i_2   meter_idx_2   meter_node_idx_2
...
Note
Flow meters and pressure gauges are constructed out of "rings" of immersed boundary points. The flow is computed by computing the total velocity flux through a web spanning the perimeter of the flow meter. The pressure is measured at the centroid of each flow meter.

Note that each meter may have a different number of nodes specifying its perimeter; however, the values of meter_node_idx associated with a particular meter must be a continuous range of integers, starting with index 0. E.g., the following is a valid input file:

2           # number of instruments in the file
meter0      # meter names
meter1
6           # number of instrumentation points in the file
0   0   0   # perimeter of meter 0 consists of vertices 0, 1, and 2
1   0   1
2   0   2
9   1   0   # perimeter of meter 1 consists of vertices 9, 10, and 11
10  1   1
11  1   2
See also
IBInstrumentPanel
IBInstrumentationSpec

Source/sink file format

Source/sink input files (specifying the nodes employed to determine the time-dependent positions of internal sources and sinks) end with the extension ".source" and have the following format:

M                    # number of sources/sinks in the file
source_name_0        # source/sink names
source_name_1
source_name_2
...
source_radius_0      # source/sink radii
source_radius_1
source_radius_2
...
N                    # number of source/sink points in the file
i_0   source_idx_0   # vertex index, source/sink index
i_1   source_idx_1
i_2   source_idx_2
...
Note
The position of each internal source/sink is the arithmetic mean of the positions of the nodes that are associated with that source/sink.
2         # number of sources/sinks in the file
source0   # source/sink names
source1
1.0       # source/sink radii
0.5
6         # number of source/sink points in the file
0   0     # position of source0 is determined from vertices 0, 1, and 2
1   0
2   0
9   1     # position of source1 is determined from vertices 9, 10, and 11
10  1
11  1
See also
IBStandardSourceGenerator
IBSourceSpec

Director file format

Orthonormal director vector input files end with the extension ".director" and have the following format, independent of spatial dimension:

N                         # number of triads in the file
D0_x_0   D0_y_0   D0_z_0  # coordinates of director D0 associated with vertex 0
D1_x_0   D1_y_0   D1_z_0  # coordinates of director D1 associated with vertex 0
D2_x_0   D2_y_0   D2_z_0  # coordinates of director D2 associated with vertex 0
D0_x_1   D0_y_1   D0_z_1  # coordinates of director D0 associated with vertex 1
D1_x_1   D1_y_1   D1_z_1  # coordinates of director D1 associated with vertex 1
D2_x_1   D2_y_1   D2_z_1  # coordinates of director D2 associated with vertex 1
D0_x_2   D0_y_2   D0_z_2  # coordinates of director D0 associated with vertex 2
D1_x_2   D1_y_2   D1_z_2  # coordinates of director D1 associated with vertex 2
D2_x_2   D2_y_2   D2_z_2  # coordinates of director D2 associated with vertex 2
...

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)
inherited

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

◆ Edge

using IBAMR::IBRedundantInitializer::Edge = std::pair<int, int>
inherited

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

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)
inherited

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)
inherited

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)
inherited

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)
inherited

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)
inherited

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)
inherited

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)
inherited

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)
inherited

Constructor & Destructor Documentation

◆ IBStandardInitializer() [1/3]

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

◆ ~IBStandardInitializer()

IBAMR::IBStandardInitializer::~IBStandardInitializer ( )

◆ IBStandardInitializer() [2/3]

IBAMR::IBStandardInitializer::IBStandardInitializer ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ IBStandardInitializer() [3/3]

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

Member Function Documentation

◆ init()

void IBAMR::IBStandardInitializer::init ( )
overridevirtual

This function will attempt to load, in sequence, the vertex, spring, xspring, beam, rod, target point, anchor point, boundary mass, director, instrumentation, and source files. Of these, only the vertex files are required. The instrumentation and source files will only be loaded if both enable_instrumentation or enable_sources are enabled on the input database and the input files exist. The rest will only be loaded if files with matching suffixes (e.g., .beam) are in the current working directory.

Reimplemented from IBAMR::IBRedundantInitializer.

◆ operator=()

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

◆ readVertexFiles()

void IBAMR::IBStandardInitializer::readVertexFiles ( const std::string &  extension)
private

◆ readSpringFiles()

void IBAMR::IBStandardInitializer::readSpringFiles ( const std::string &  file_extension,
bool  input_uses_global_idxs 
)
private

◆ readXSpringFiles()

void IBAMR::IBStandardInitializer::readXSpringFiles ( const std::string &  file_extension,
bool  input_uses_global_idxs 
)
private

◆ readBeamFiles()

void IBAMR::IBStandardInitializer::readBeamFiles ( const std::string &  file_extension,
bool  input_uses_global_idxs 
)
private

◆ readRodFiles()

void IBAMR::IBStandardInitializer::readRodFiles ( const std::string &  file_extension,
bool  input_uses_global_idxs 
)
private

◆ readTargetPointFiles()

void IBAMR::IBStandardInitializer::readTargetPointFiles ( const std::string &  file_extension)
private

◆ readAnchorPointFiles()

void IBAMR::IBStandardInitializer::readAnchorPointFiles ( const std::string &  file_extension)
private

◆ readBoundaryMassFiles()

void IBAMR::IBStandardInitializer::readBoundaryMassFiles ( const std::string &  file_extension)
private

◆ readDirectorFiles()

void IBAMR::IBStandardInitializer::readDirectorFiles ( const std::string &  file_extension)
private

◆ readInstrumentationFiles()

void IBAMR::IBStandardInitializer::readInstrumentationFiles ( const std::string &  file_extension)
private

◆ readSourceFiles()

void IBAMR::IBStandardInitializer::readSourceFiles ( const std::string &  file_extension)
private

◆ initializeNodeData()

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

Reimplemented from IBAMR::IBRedundantInitializer.

◆ getFromInput()

void IBAMR::IBStandardInitializer::getFromInput ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
private

Read input values, indicated above, from given database.

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

◆ registerLSiloDataWriter()

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

◆ getLevelHasLagrangianData()

bool IBAMR::IBRedundantInitializer::getLevelHasLagrangianData ( int  level_number,
bool  can_be_refined 
) const
overridevirtualinherited
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
overridevirtualinherited
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 
)
overridevirtualinherited
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 
)
overridevirtualinherited
Returns
The number of local nodes on the specified level.

Implements IBTK::LInitStrategy.

◆ registerInitStructureFunction()

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

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 
)
inherited

◆ registerInitXSpringDataFunction()

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

◆ registerInitBeamDataFunction()

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

◆ registerInitDirectorAndRodFunction()

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

◆ registerInitBoundaryMassFunction()

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

◆ registerInitTargetPtFunction()

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

◆ registerInitAnchorPtFunction()

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

◆ registerInitInstrumentationFunction()

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

◆ registerInitSourceFunction()

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

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

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 
)
overridevirtualinherited
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 
)
overridevirtualinherited
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 
)
overridevirtualinherited
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 
)
overridevirtualinherited

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 
)
inherited
Note
The structure will be initialized in the same order as the supplied vector.

◆ initializeLSiloDataWriter()

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

◆ initializeStructurePosition()

void IBAMR::IBRedundantInitializer::initializeStructurePosition ( )
protectedinherited

◆ initializeSprings()

void IBAMR::IBRedundantInitializer::initializeSprings ( )
protectedinherited

◆ initializeXSprings()

void IBAMR::IBRedundantInitializer::initializeXSprings ( )
protectedinherited

◆ initializeBeams()

void IBAMR::IBRedundantInitializer::initializeBeams ( )
protectedinherited

◆ initializeDirectorAndRods()

void IBAMR::IBRedundantInitializer::initializeDirectorAndRods ( )
protectedinherited

◆ initializeBoundaryMass()

void IBAMR::IBRedundantInitializer::initializeBoundaryMass ( )
protectedinherited

◆ initializeTargetPts()

void IBAMR::IBRedundantInitializer::initializeTargetPts ( )
protectedinherited

◆ initializeAnchorPts()

void IBAMR::IBRedundantInitializer::initializeAnchorPts ( )
protectedinherited

◆ initializeInstrumentationData()

void IBAMR::IBRedundantInitializer::initializeInstrumentationData ( )
protectedinherited

◆ initializeSourceData()

void IBAMR::IBRedundantInitializer::initializeSourceData ( )
protectedinherited

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

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

◆ getCanonicalLagrangianIndex()

int IBAMR::IBRedundantInitializer::getCanonicalLagrangianIndex ( const std::pair< int, int > &  point_index,
int  level_number 
) const
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
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
protectedinherited
Returns
The source indices associated with a particular node (or -1 if there is no source data associated with that node).

Member Data Documentation

◆ d_use_file_batons

bool IBAMR::IBStandardInitializer::d_use_file_batons = true
private

◆ d_max_levels

int IBAMR::IBStandardInitializer::d_max_levels = -1
private

◆ d_level_is_initialized

std::vector<bool> IBAMR::IBStandardInitializer::d_level_is_initialized
private

◆ d_silo_writer

SAMRAI::tbox::Pointer<IBTK::LSiloDataWriter> IBAMR::IBStandardInitializer::d_silo_writer
private

◆ d_base_filename

std::vector<std::vector<std::string> > IBAMR::IBStandardInitializer::d_base_filename
private

◆ d_length_scale_factor

double IBAMR::IBStandardInitializer::d_length_scale_factor = 1.0
private

◆ d_posn_shift

IBTK::Vector IBAMR::IBStandardInitializer::d_posn_shift
private

◆ d_enable_springs

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_springs
private

◆ d_using_uniform_spring_stiffness

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_spring_stiffness
private

◆ d_uniform_spring_stiffness

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_spring_stiffness
private

◆ d_using_uniform_spring_rest_length

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_spring_rest_length
private

◆ d_uniform_spring_rest_length

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_spring_rest_length
private

◆ d_using_uniform_spring_force_fcn_idx

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_spring_force_fcn_idx
private

◆ d_uniform_spring_force_fcn_idx

std::vector<std::vector<int> > IBAMR::IBStandardInitializer::d_uniform_spring_force_fcn_idx
private

◆ d_enable_xsprings

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_xsprings
private

◆ d_using_uniform_xspring_stiffness

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_xspring_stiffness
private

◆ d_uniform_xspring_stiffness

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_xspring_stiffness
private

◆ d_using_uniform_xspring_rest_length

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_xspring_rest_length
private

◆ d_uniform_xspring_rest_length

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_xspring_rest_length
private

◆ d_using_uniform_xspring_force_fcn_idx

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_xspring_force_fcn_idx
private

◆ d_uniform_xspring_force_fcn_idx

std::vector<std::vector<int> > IBAMR::IBStandardInitializer::d_uniform_xspring_force_fcn_idx
private

◆ d_enable_beams

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_beams
private

◆ d_using_uniform_beam_bend_rigidity

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_beam_bend_rigidity
private

◆ d_uniform_beam_bend_rigidity

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_beam_bend_rigidity
private

◆ d_using_uniform_beam_curvature

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_beam_curvature
private

◆ d_uniform_beam_curvature

std::vector<std::vector<IBTK::Vector> > IBAMR::IBStandardInitializer::d_uniform_beam_curvature
private

◆ d_enable_rods

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_rods
private

◆ d_using_uniform_rod_properties

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_rod_properties
private

◆ d_uniform_rod_properties

std::vector<std::vector<std::array<double, IBRodForceSpec::NUM_MATERIAL_PARAMS> > > IBAMR::IBStandardInitializer::d_uniform_rod_properties
private

◆ d_enable_target_points

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_target_points
private

◆ d_using_uniform_target_stiffness

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_target_stiffness
private

◆ d_uniform_target_stiffness

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_target_stiffness
private

◆ d_using_uniform_target_damping

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_target_damping
private

◆ d_uniform_target_damping

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_target_damping
private

◆ d_enable_anchor_points

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_anchor_points
private

◆ d_enable_bdry_mass

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_bdry_mass
private

◆ d_using_uniform_bdry_mass

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_bdry_mass
private

◆ d_uniform_bdry_mass

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_bdry_mass
private

◆ d_using_uniform_bdry_mass_stiffness

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_using_uniform_bdry_mass_stiffness
private

◆ d_uniform_bdry_mass_stiffness

std::vector<std::vector<double> > IBAMR::IBStandardInitializer::d_uniform_bdry_mass_stiffness
private

◆ d_enable_instrumentation

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_instrumentation
private

◆ d_enable_sources

std::vector<std::vector<bool> > IBAMR::IBStandardInitializer::d_enable_sources
private

◆ d_object_name

std::string IBAMR::IBRedundantInitializer::d_object_name
protectedinherited

◆ d_num_vertex

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

◆ d_vertex_offset

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

◆ d_vertex_posn

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

◆ d_spring_edge_map

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

◆ d_spring_spec_data

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

◆ d_xspring_edge_map

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

◆ d_xspring_spec_data

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

◆ d_beam_spec_data

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

◆ d_rod_edge_map

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

◆ d_rod_spec_data

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

◆ d_target_spec_data

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

◆ d_anchor_spec_data

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

◆ d_bdry_mass_spec_data

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

◆ d_directors

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

◆ d_instrument_idx

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

◆ d_source_idx

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

◆ d_global_index_offset

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

◆ d_data_processed

bool IBAMR::IBRedundantInitializer::d_data_processed = false
protectedinherited

Check if user defined data has been processed.

◆ d_init_structure_on_level_fcn

InitStructureOnLevel IBAMR::IBRedundantInitializer::d_init_structure_on_level_fcn = nullptr
privateinherited

◆ d_init_structure_on_level_ctx

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

◆ d_init_spring_on_level_fcn

InitSpringDataOnLevel IBAMR::IBRedundantInitializer::d_init_spring_on_level_fcn = nullptr
privateinherited

◆ d_init_spring_on_level_ctx

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

◆ d_init_xspring_on_level_fcn

InitXSpringDataOnLevel IBAMR::IBRedundantInitializer::d_init_xspring_on_level_fcn = nullptr
privateinherited

◆ d_init_xspring_on_level_ctx

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

◆ d_init_beam_on_level_fcn

InitBeamDataOnLevel IBAMR::IBRedundantInitializer::d_init_beam_on_level_fcn = nullptr
privateinherited

◆ d_init_beam_on_level_ctx

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

◆ d_init_director_and_rod_on_level_fcn

InitDirectorAndRodOnLevel IBAMR::IBRedundantInitializer::d_init_director_and_rod_on_level_fcn = nullptr
privateinherited

◆ d_init_director_and_rod_on_level_ctx

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

◆ d_init_boundary_mass_on_level_fcn

InitBoundaryMassOnLevel IBAMR::IBRedundantInitializer::d_init_boundary_mass_on_level_fcn = nullptr
privateinherited

◆ d_init_boundary_mass_on_level_ctx

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

◆ d_init_target_pt_on_level_fcn

InitTargetPtOnLevel IBAMR::IBRedundantInitializer::d_init_target_pt_on_level_fcn = nullptr
privateinherited

◆ d_init_target_pt_on_level_ctx

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

◆ d_init_anchor_pt_on_level_fcn

InitAnchorPtOnLevel IBAMR::IBRedundantInitializer::d_init_anchor_pt_on_level_fcn = nullptr
privateinherited

◆ d_init_anchor_pt_on_level_ctx

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

◆ d_init_instrumentation_on_level_fcn

InitInstrumentationOnLevel IBAMR::IBRedundantInitializer::d_init_instrumentation_on_level_fcn = nullptr
privateinherited

◆ d_init_instrumentation_on_level_ctx

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

◆ d_init_source_on_level_fcn

InitSourceOnLevel IBAMR::IBRedundantInitializer::d_init_source_on_level_fcn = nullptr
privateinherited

◆ d_init_source_on_level_ctx

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

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