// 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 "CJ_CodeTypes.h" #include "GetLongOpt.h" // for GetLongOption #include // for ostream #include // for string namespace Excn { class SystemInterface { public: SystemInterface(); ~SystemInterface(); bool parse_options(int argc, char **argv); int debug() const { return debugLevel_; } int screen_width() const { return screenWidth_; } int compress_data() const { return compressionLevel_; } bool zlib() const { return zlib_; } bool szip() const { return szip_; } bool omit_nodesets() const { return omitNodesets_; } bool omit_sidesets() const { return omitSidesets_; } bool ints_64_bit() const { return ints64Bit_; } bool ignore_coordinates() const { return ignoreCoordinates_; } bool use_netcdf4() const { return useNetcdf4_; } bool sort_times() const { return sortTimes_; } double alive_value() const { return aliveValue_; } double interpart_minimum_time_delta() const { return interpartMinimumTimeDelta_; } StringIdVector global_var_names() const { return globalVarNames_; } StringIdVector node_var_names() const { return nodeVarNames_; } StringIdVector elem_var_names() const { return elemVarNames_; } StringIdVector nset_var_names() const { return nsetVarNames_; } StringIdVector sset_var_names() const { return ssetVarNames_; } const std::string &element_status_variable() const { return elementStatusVariable_; } const std::string &nodal_status_variable() const { return nodalStatusVariable_; } const std::string &combined_mesh_status_variable() const { return meshCombineStatusVariable_; } //! Dumps representation of data in this class to cerr void dump(std::ostream &str) const; static void show_version(); // Make this private eventually... StringVector inputFiles_{}; std::string outputName_{}; private: void enroll_options(); GetLongOption options_{}; //!< Options parsing int debugLevel_{0}; int screenWidth_{0}; int compressionLevel_{0}; bool zlib_{true}; bool szip_{false}; bool omitNodesets_{false}; bool omitSidesets_{false}; bool ints64Bit_{false}; bool ignoreCoordinates_{false}; bool useNetcdf4_{false}; bool sortTimes_{false}; double aliveValue_{-1.0}; double interpartMinimumTimeDelta_{0.0}; std::string elementStatusVariable_{}; std::string nodalStatusVariable_{}; // Mesh status variable to combine with elementStatusVariable_ std::string meshCombineStatusVariable_{}; StringIdVector globalVarNames_{}; StringIdVector nodeVarNames_{}; StringIdVector elemVarNames_{}; StringIdVector nsetVarNames_{}; StringIdVector ssetVarNames_{}; }; } // namespace Excn