IOSS 2.0
Loading...
Searching...
No Matches
shell_interface.h
Go to the documentation of this file.
1/*
2 * Copyright(C) 1999-2024 National Technology & Engineering Solutions
3 * of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
4 * NTESS, the U.S. Government retains certain rights in this software.
5 *
6 * See packages/seacas/LICENSE for details
7 */
8#pragma once
9
10#include <iosfwd>
11#include <limits>
12#include <string>
13#include <vector>
14
15#include "Ioss_GetLongOpt.h"
16
17/** \brief A special namespace for the io_shell demonstration program interFace.
18 */
19namespace IOShell {
21 {
22 public:
23 explicit Interface(std::string app_version);
24
25 bool parse_options(int argc, char **argv, int my_processor);
26
27 //! Dumps representation of data in this class to cerr
28
29 void enroll_options();
30
32
33 std::vector<std::string> inputFile;
34 std::string version{};
35 std::string outputFile;
36 std::string inFiletype{"unknown"};
37 std::string outFiletype{"unknown"};
38 std::string groupName;
39 std::string decomp_method;
40 std::string decomp_extra{"processor_id"};
41 std::string compose_output{"default"};
42 std::string customField{};
43 double maximum_time{std::numeric_limits<double>::max()};
44 double minimum_time{-std::numeric_limits<double>::max()};
45 double append_time{std::numeric_limits<double>::max()};
46 double time_scale{1.0};
47 double time_offset{0.0};
48 double timestep_delay{0.0};
49 double rel_tolerance{0.0};
50 double abs_tolerance{0.0};
51 double tol_floor{0.0};
52 int append_step{std::numeric_limits<int>::max()};
59
60 //! If non-empty, then it is a list of times that should be transferred to the output file.
61 std::vector<double> selected_times{};
62
63 //! If non-empty, then it is a list of element blocks, nodesets,
64 //! sidesets that should be omitted from the output file
65 std::vector<std::string> omitted_blocks{};
66 std::vector<std::string> omitted_sets{};
67
68 //! If non-zero, then put `split_times` timesteps in each file. Then close file and start new
69 //! file.
70 // If `split_cyclic == 0`, then filenames will be
71 // filename.e-s000X; if `split_cyclic > 0`, then filenames will be
72 // filename.e.{A|B|C...}
74 //! If non-zero, then the `split_times` timesteps will be put into
75 // `split_cyclic` files and then recycle filenames. For example:
76 // `split_times=1` and `split_cyclic=3`, t=1 ->file.A, t=2
77 // ->file.B, t=3 -> file.C, t=4 -> file.A If `split_times=2` and
78 // `split_cyclic=2`, then t=1,2 -> file.A, t=3,4 -> file.B, t=5,6
79 // -> file.A, t=7,8 -> file.B
81 bool shuffle{false};
82 bool zlib{false};
83 bool szip{false};
84 bool zstd{false};
85 bool bz2{false};
86 bool quant{false};
87 bool debug{false};
88 bool detect_nans{false};
89 bool statistics{false};
90 bool memory_statistics{false};
92 bool ints_64_bit{false};
93 bool ints_32_bit{false};
94 bool reals_32_bit{false};
95 bool netcdf3{false};
96 bool netcdf4{false};
97 bool netcdf5{false};
98 bool quiet{false};
99 bool in_memory_read{false};
100 bool in_memory_write{false};
102 bool delete_timesteps{false};
106 // Put transient data for each timestep in separate file (EXPERIMENTAL)
107 bool file_per_state{false};
108 // Testing CGNS - defines zones in reverse order from input file.
109 bool reverse{false};
111 bool boundary_sideset{false};
112 bool compare{false};
113 bool ignore_qa_info{false};
114 bool ignore_node_map{false};
115 bool ignore_elem_map{false};
116 bool ignore_edge_map{false};
117 bool ignore_face_map{false};
118 bool delete_qa{false};
119 bool delete_info{false};
120 bool line_decomp{false};
122 };
123} // namespace IOShell
Definition shell_interface.h:21
bool quiet
Definition shell_interface.h:98
int split_times
Definition shell_interface.h:73
std::string compose_output
Definition shell_interface.h:41
char fieldSuffixSeparator
Definition shell_interface.h:121
bool ignore_edge_map
Definition shell_interface.h:116
bool delete_timesteps
Definition shell_interface.h:102
double time_offset
Definition shell_interface.h:47
std::string outFiletype
Definition shell_interface.h:37
bool memory_statistics
Definition shell_interface.h:90
double rel_tolerance
Definition shell_interface.h:49
bool bz2
Definition shell_interface.h:85
bool ignore_qa_info
Definition shell_interface.h:113
bool minimize_open_files
Definition shell_interface.h:103
bool reverse
Definition shell_interface.h:109
std::string groupName
Definition shell_interface.h:38
bool ints_64_bit
Definition shell_interface.h:92
bool netcdf4
Definition shell_interface.h:96
bool zlib
Definition shell_interface.h:82
bool ignore_elem_map
Definition shell_interface.h:115
bool boundary_sideset
Definition shell_interface.h:111
int flush_interval
Definition shell_interface.h:58
bool statistics
Definition shell_interface.h:89
double minimum_time
Definition shell_interface.h:44
double time_scale
Definition shell_interface.h:46
int surface_split_type
Definition shell_interface.h:53
int split_cyclic
If non-zero, then the split_times timesteps will be put into.
Definition shell_interface.h:80
bool delete_info
Definition shell_interface.h:119
bool in_memory_read
Definition shell_interface.h:99
std::string version
Definition shell_interface.h:34
std::string inFiletype
Definition shell_interface.h:36
std::vector< std::string > omitted_blocks
Definition shell_interface.h:65
bool szip
Definition shell_interface.h:83
std::string decomp_method
Definition shell_interface.h:39
double maximum_time
Definition shell_interface.h:43
bool ints_32_bit
Definition shell_interface.h:93
int compression_level
Definition shell_interface.h:55
Ioss::GetLongOption options_
Definition shell_interface.h:31
bool parse_options(int argc, char **argv, int my_processor)
Definition shell_interface.C:395
std::vector< std::string > inputFile
Definition shell_interface.h:33
bool do_transform_fields
Definition shell_interface.h:91
bool delete_qa
Definition shell_interface.h:118
double abs_tolerance
Definition shell_interface.h:50
bool retain_empty_blocks
Definition shell_interface.h:105
bool ignore_face_map
Definition shell_interface.h:117
std::string customField
Definition shell_interface.h:42
Interface(std::string app_version)
Definition shell_interface.C:22
double tol_floor
Definition shell_interface.h:51
bool netcdf5
Definition shell_interface.h:97
bool zstd
Definition shell_interface.h:84
bool line_decomp
Definition shell_interface.h:120
int quantize_nsd
Definition shell_interface.h:56
double timestep_delay
Definition shell_interface.h:48
double append_time
Definition shell_interface.h:45
void enroll_options()
Dumps representation of data in this class to cerr.
Definition shell_interface.C:27
std::vector< std::string > omitted_sets
Definition shell_interface.h:66
bool debug
Definition shell_interface.h:87
std::vector< double > selected_times
If non-empty, then it is a list of times that should be transferred to the output file.
Definition shell_interface.h:61
int data_storage_type
Definition shell_interface.h:54
std::string decomp_extra
Definition shell_interface.h:40
bool ignore_node_map
Definition shell_interface.h:114
bool in_memory_write
Definition shell_interface.h:100
bool reals_32_bit
Definition shell_interface.h:94
bool lower_case_variable_names
Definition shell_interface.h:101
bool quant
Definition shell_interface.h:86
bool detect_nans
Definition shell_interface.h:88
bool add_processor_id_field
Definition shell_interface.h:110
bool shuffle
Definition shell_interface.h:81
bool netcdf3
Definition shell_interface.h:95
bool disable_field_recognition
Definition shell_interface.h:104
bool compare
Definition shell_interface.h:112
int serialize_io_size
Definition shell_interface.h:57
std::string outputFile
Definition shell_interface.h:35
bool file_per_state
Definition shell_interface.h:107
int append_step
Definition shell_interface.h:52
A database of program command line and environment variable options and methods for manipulating them...
Definition Ioss_GetLongOpt.h:25
A special namespace for the io_shell demonstration program interFace.
Definition shell_interface.h:19