#include <Grid.h>
Public Member Functions | |
Grid (SystemInterface &interFace) | |
void | set_extent (size_t extent_i, size_t extent_j, size_t) |
UnitCellMap & | unit_cells () |
Cell & | get_cell (size_t i, size_t j) |
size_t | II () const |
Return I extent of the grid / lattice. | |
size_t | JJ () const |
Return J extent of the grid / lattice. | |
size_t | size () const |
Return total number of cells in the grid / lattice. | |
int | parallel_size () const |
void | set_start_rank (int start_rank) |
Set the rank that the should start processing and outputting (used for subcycling) | |
void | handle_file_count () |
bool | equivalence_nodes () const |
Are nodes at the boundaries of the unit cells equivalenced. | |
bool | initialize (size_t i, size_t j, const std::string &key) |
Create a Cell object referencing the UnitCell specified by key at location (i,j) | |
void | add_unit_cell (const std::string &key, const std::string &unit_filename, bool ints32bit) |
void | set_coordinate_offsets () |
Specify the X and Y location of each grid cell in the overall grid space. | |
void | generate_sidesets () |
template<typename INT > | |
void | process (SystemInterface &interFace, INT) |
void | decompose (const std::string &method) |
const Ioss::ParallelUtils & | util () const |
Ioss::Region * | output_region (int rank=0) |
bool | minimize_open_files (Minimize type) |
unsigned int | get_generated_sidesets () |
void | set_sideset_names (const std::string &names) |
Public Attributes | |
std::array< std::string, 6 > | generated_surface_names |
Private Member Functions | |
template<typename INT > | |
void | output_model (INT) |
Output node coordinates and element block connectivities for the output mesh. | |
void | internal_process () |
void | create_output_regions (SystemInterface &interFace) |
void | categorize_processor_boundaries () |
void | output_nodal_coordinates (const Cell &cell) |
template<typename INT > | |
void | output_block_connectivity (Cell &cell, const std::vector< INT > &node_map) |
template<typename INT > | |
void | output_nodal_communication_map (Cell &cell, const std::vector< INT > &node_map) |
template<typename INT > | |
void | output_element_map (Cell &cell, INT) |
template<typename INT > | |
void | output_node_map (const Cell &cell, INT) |
template<typename INT > | |
void | output_surfaces (Cell &cell, INT) |
template<typename INT > | |
void | output_generated_surfaces (Cell &cell, INT) |
Private Attributes | |
UnitCellMap | m_unitCells |
std::vector< std::unique_ptr< Ioss::Region > > | m_outputRegions |
std::vector< Cell > | m_grid {} |
Ioss::ParallelUtils | m_pu {} |
size_t | m_gridI {0} |
size_t | m_gridJ {0} |
vector3d | m_offset {0.0, 0.0, 0.0} |
double | m_scaleFactor {1.0} |
int | m_parallelSize {1} |
int | m_rankCount {1} |
Number of ranks to decompose for. | |
int | m_startRank {0} |
Number of ranks to process at a time. | |
bool | m_equivalenceNodes {true} |
Which rank to start outputting... | |
bool | m_useInternalSidesets {true} |
bool | m_subCycle {false} |
Minimize | m_minimizeOpenFiles {Minimize::NONE} |
unsigned int | m_generatedSideSets {0} |
grid
stores the data for the tessellation of size IxJ
index
Tk
values for padding)
|
explicit |
Create an empty grid of size extent_i
x extent_j
. The output mesh will be written to the exodus database in the Ioss::Region region
void Grid::add_unit_cell | ( | const std::string & | key, |
const std::string & | unit_filename, | ||
bool | ints32bit | ||
) |
|
private |
|
private |
void Grid::decompose | ( | const std::string & | method | ) |
|
inline |
Are nodes at the boundaries of the unit cells equivalenced.
void Grid::generate_sidesets | ( | ) |
|
inline |
Return a reference to the Cell cell at location (i,j)
. Does not check that i
and j
are in bounds.
|
inline |
void Grid::handle_file_count | ( | ) |
Determine if can keep all files open at all times, or if we need to close some/all after access...
|
inline |
Return I
extent of the grid / lattice.
bool Grid::initialize | ( | size_t | i, |
size_t | j, | ||
const std::string & | key | ||
) |
|
private |
|
inline |
Return J
extent of the grid / lattice.
|
inline |
|
private |
|
private |
|
private |
|
private |
Output node coordinates and element block connectivities for the output mesh.
|
private |
|
private |
|
private |
|
inline |
|
private |
|
inline |
void Grid::process | ( | SystemInterface & | interFace, |
INT | |||
) |
Once all Cell objects have been initialized, Determine the coordinate extents and offsets of each cell, the size of the output mesh, the node and element id offsets for each cell, the number of nodes and elements in the output mesh and initialize the output mesh.
void Grid::set_coordinate_offsets | ( | ) |
Specify the X and Y location of each grid cell in the overall grid space.
void Grid::set_extent | ( | size_t | extent_i, |
size_t | extent_j, | ||
size_t | |||
) |
void Grid::set_sideset_names | ( | const std::string & | names | ) |
|
inline |
Set the rank that the should start processing and outputting (used for subcycling)
|
inline |
Return total number of cells in the grid / lattice.
|
inline |
|
inline |
std::array<std::string, 6> Grid::generated_surface_names |
|
private |
Which rank to start outputting...
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Number of ranks to decompose for.
|
private |
|
private |
Number of ranks to process at a time.
|
private |
|
private |
|
private |