Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
4.5 KiB

2 years ago
/*
* Copyright(C) 1999-2020, 2022 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
* See packages/seacas/LICENSE for details
*/
#pragma once
#include <string>
#include <vector>
/*********** rf_io_const.h -- constants for external IO purposes**************/
/* Restart structure */
template <typename T> struct Restart_Description
{
Restart_Description() = default;
int Flag{-1}; /* Indicates whether restart info is to be processed */
int Num_Times{-1}; /* The number of time indices to spread */
std::vector<int> Time_Idx{}; /* Time indices to read, need to keep track of all */
T Time{}; /* time value */
int NVar_Glob{-1}; /* Number of global variables read */
int NVar_Elem{-1}; /* Number of elemental variables read */
int NVar_Node{-1}; /* Number of nodal variables read */
int NVar_Nset{-1}; /* Number of nodeset variables read */
int NVar_Sset{-1}; /* Number of sideset variables read */
std::vector<int> GElem_TT{}; /* Global Elemental variable truth table */
std::vector<int> GNset_TT{}; /* Global Elemental variable truth table */
std::vector<int> GSset_TT{}; /* Global Elemental variable truth table */
/*
* To be able to support single or double precision exodus files,
* need to have both float and double pointers here.
*/
std::vector<T> Glob_Vals{}; /* Global variable values, only one per variable *
* and processor */
std::vector<std::vector<T>> Elem_Vals; /* Element variable values for each processor */
std::vector<std::vector<T>> Node_Vals; /* Nodal variable values for each processor */
std::vector<std::vector<T>> Nset_Vals; /* Nodeset variable values for each processor */
std::vector<std::vector<T>> Sset_Vals; /* Sideset variable values for each processor */
char **NV_Name{nullptr}; /* Names of the nodal variables */
char **EV_Name{nullptr}; /* Names of the elemental variables */
char **GV_Name{nullptr}; /* Names of the global variables */
char **NSV_Name{nullptr}; /* Names of the nodeset variables */
char **SSV_Name{nullptr}; /* Names of the sideset variables */
};
/*****************************************************************************/
/* EXTERN STATEMENTS for GLOBALS USED IN I/O ROUTINES */
/*****************************************************************************/
/**Extern statements for parameters in rf_io.h */
extern std::string ExoFile; /* Exodus II File containing problem definition. */
/* This name is the root name. */
extern std::string Output_File_Base_Name; /* Base name of output file. If it has a suffix, it will
be stripped */
extern std::string Exo_LB_File;
/* Exodus II file containing the mesh load-balance */
/* information */
extern std::string Exo_Res_File;
/* Exodus II file containing the mesh result */
/* information */
extern int Debug_Flag; /* Flag to specify debug info is to be printed out.
The value of this flag determines the level of
diagnostic info which is printed to stdout
Debug_Flag == 0 No output
.
.
9 maximum output */
extern int Gen_Flag; /* Flag used by nem_join to determine if the user
wants to use an existing genesis file rather
than generating one from the parallel files */
extern int Num_Nod_Var; /* The number of nodal variables to reserve */
/* space in the output file for. */
extern int Num_Elem_Var; /* The number of elemental variables to */
/* reserve space in the output file for. */
extern int Num_Glob_Var; /* The number of global variables to reserve */
/* space in the output file for. */
extern int Num_Nset_Var; /* The number of nodeset variables to reserve */
/* space in the output file for. */
extern int Num_Sset_Var; /* The number of sideset variables to reserve */
/* space in the output file for. */