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

Class LSiloDataWriter provides functionality to output Lagrangian data for visualization via the VisIt visualization tool in the Silo data format. More...

#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/LSiloDataWriter.h>

Inheritance diagram for IBTK::LSiloDataWriter:
Inheritance graph
[legend]

Public Member Functions

 LSiloDataWriter (std::string object_name, std::string dump_directory_name, bool register_for_restart=true)
 Constructor. More...
 
 ~LSiloDataWriter ()
 Destructor.
 

Methods to set the hierarchy and range of levels.

void setPatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)
 Reset the patch hierarchy over which operations occur.
 
void resetLevels (int coarsest_ln, int finest_ln)
 Reset range of patch levels over which operations occur.
 
void registerMarkerCloud (const std::string &name, int nmarks, int first_lag_idx, int level_number)
 Register or update a range of Lagrangian indices that are to be visualized as a cloud of marker particles. More...
 
void registerLogicallyCartesianBlock (const std::string &name, const SAMRAI::hier::IntVector< NDIM > &nelem, const SAMRAI::hier::IntVector< NDIM > &periodic, int first_lag_idx, int level_number)
 Register or update a range of Lagrangian indices that are to be treated as a logically Cartesian block. More...
 
void registerLogicallyCartesianMultiblock (const std::string &name, const std::vector< SAMRAI::hier::IntVector< NDIM > > &nelem, const std::vector< SAMRAI::hier::IntVector< NDIM > > &periodic, const std::vector< int > &first_lag_idx, int level_number)
 Register or update several ranges of Lagrangian indices that are to be treated as logically Cartesian blocks. More...
 
void registerUnstructuredMesh (const std::string &name, const std::multimap< int, std::pair< int, int > > &edge_map, int level_number)
 Register or update an unstructured mesh. More...
 
void registerCoordsData (SAMRAI::tbox::Pointer< LData > coords_data, int level_number)
 Register the coordinates of the curvilinear mesh with the Silo data writer.
 
void registerVariableData (const std::string &var_name, SAMRAI::tbox::Pointer< LData > var_data, int level_number)
 Register a variable for plotting with the Silo data writer.
 
void registerVariableData (const std::string &var_name, SAMRAI::tbox::Pointer< LData > var_data, int start_depth, int var_depth, int level_number)
 Register a variable for plotting with the Silo data writer with a specified starting depth and data depth.
 
void registerLagrangianAO (AO &ao, int level_number)
 Register or update a single Lagrangian AO (application ordering) objects with the Silo data writer. More...
 
void registerLagrangianAO (std::vector< AO > &ao, int coarsest_ln, int finest_ln)
 Register or update a collection of Lagrangian AO (application ordering) objects with the Silo data writer. More...
 
void writePlotData (int time_step_number, double simulation_time)
 Write the plot data to disk.
 
void putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override
 

Detailed Description

Class LSiloDataWriter provides functionality to output Lagrangian data for visualization via the VisIt visualization tool in the Silo data format.

For more information about Silo, see the Silo manual here.

Constructor & Destructor Documentation

◆ LSiloDataWriter()

IBTK::LSiloDataWriter::LSiloDataWriter ( std::string  object_name,
std::string  dump_directory_name,
bool  register_for_restart = true 
)

Constructor.

Parameters
object_nameString used for error reporting.
dump_directory_nameString indicating the directory where visualization data is to be written.
register_for_restartBoolean indicating whether to register this object with the restart manager.

Member Function Documentation

◆ putToDatabase()

void IBTK::LSiloDataWriter::putToDatabase ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
overridevirtual

Write out object state to the given database.

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

Implements SAMRAI::tbox::Serializable.

◆ registerLagrangianAO() [1/2]

void IBTK::LSiloDataWriter::registerLagrangianAO ( AO &  ao,
int  level_number 
)

Register or update a single Lagrangian AO (application ordering) objects with the Silo data writer.

These AO objects are used to map between (fixed) Lagrangian indices and (time-dependent) PETSc indices. Each time that the AO objects are reset (e.g., during adaptive regridding), the new AO objects must be supplied to the Silo data writer.

◆ registerLagrangianAO() [2/2]

void IBTK::LSiloDataWriter::registerLagrangianAO ( std::vector< AO > &  ao,
int  coarsest_ln,
int  finest_ln 
)

Register or update a collection of Lagrangian AO (application ordering) objects with the Silo data writer.

These AO objects are used to map between (fixed) Lagrangian indices and (time-dependent) PETSc indices. Each time that the AO objects are reset (e.g., during adaptive regridding), the new AO objects must be supplied to the Silo data writer.

◆ registerLogicallyCartesianBlock()

void IBTK::LSiloDataWriter::registerLogicallyCartesianBlock ( const std::string name,
const SAMRAI::hier::IntVector< NDIM > &  nelem,
const SAMRAI::hier::IntVector< NDIM > &  periodic,
int  first_lag_idx,
int  level_number 
)

Register or update a range of Lagrangian indices that are to be treated as a logically Cartesian block.

Note
This method is not collective over all MPI processes. A particular block of indices must be registered on only one MPI process.

◆ registerLogicallyCartesianMultiblock()

void IBTK::LSiloDataWriter::registerLogicallyCartesianMultiblock ( const std::string name,
const std::vector< SAMRAI::hier::IntVector< NDIM > > &  nelem,
const std::vector< SAMRAI::hier::IntVector< NDIM > > &  periodic,
const std::vector< int > &  first_lag_idx,
int  level_number 
)

Register or update several ranges of Lagrangian indices that are to be treated as logically Cartesian blocks.

Note
This method is not collective over all MPI processes. A particular block of indices must be registered on only one MPI process.

◆ registerMarkerCloud()

void IBTK::LSiloDataWriter::registerMarkerCloud ( const std::string name,
int  nmarks,
int  first_lag_idx,
int  level_number 
)

Register or update a range of Lagrangian indices that are to be visualized as a cloud of marker particles.

Note
This method is not collective over all MPI processes. A particular cloud of markers must be registered on only one MPI process.

◆ registerUnstructuredMesh()

void IBTK::LSiloDataWriter::registerUnstructuredMesh ( const std::string name,
const std::multimap< int, std::pair< int, int > > &  edge_map,
int  level_number 
)

Register or update an unstructured mesh.

Note
This method is not collective over all MPI processes. A particular collection of indices must be registered on only one MPI process.

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