www.mooseframework.org
Exodus.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // MOOSE includes
13 #include "OversampleOutput.h"
14 
15 // libMesh forward declarations
16 namespace libMesh
17 {
18 class ExodusII_IO;
19 }
20 
24 class Exodus : public OversampleOutput
25 {
26 public:
28 
29  enum class OutputDimension : int
30  {
31  DEFAULT,
32  ONE,
33  TWO,
34  THREE,
36  };
37 
42 
47  virtual void output() override;
48 
52  virtual void initialSetup() override;
53 
57  virtual void meshChanged() override;
58 
67  virtual void outputSetup();
68 
77  virtual void sequence(bool state);
78 
84  void setOutputDimension(unsigned int dim);
85 
93  static void
94  setOutputDimensionInExodusWriter(ExodusII_IO & exodus_io,
95  const MooseMesh & mesh,
97 
99  void clear();
100 
101 protected:
105  virtual void outputNodalVariables() override;
106 
110  virtual void outputElementalVariables() override;
111 
115  virtual void outputPostprocessors() override;
116 
120  virtual void outputScalarVariables() override;
121 
125  virtual void outputInput() override;
126 
130  virtual void outputReporters() override;
131 
135  virtual void customizeFileOutput();
136 
142  virtual std::string filename() override;
143 
145  std::unique_ptr<ExodusII_IO> _exodus_io_ptr;
146 
148  std::vector<Real> _global_values;
149 
151  std::vector<std::string> _global_names;
152 
166 
169 
171  bool _sequence;
172 
174  unsigned int & _exodus_num;
175 
176 private:
179 
186  void outputEmptyTimestep();
187 
190 
192  std::vector<std::string> _input_record;
193 
196 
199 
202 
205 
208 
211 };
Based class for providing re-positioning and oversampling support to output objects.
virtual void outputReporters() override
Writes the Reporter values to the ExodusII output.
Definition: Exodus.C:362
std::vector< std::string > _input_record
Storage for input file record; this is written to the file only after it has been initialized...
Definition: Exodus.h:192
virtual void sequence(bool state)
Set the sequence state When the sequence state is set to true then the outputSetup() method is called...
Definition: Exodus.C:173
virtual void meshChanged() override
Set flag indicating that the mesh has changed.
Definition: Exodus.C:163
virtual void output() override
Overload the OutputBase::output method, this is required for ExodusII output due to the method utiliz...
Definition: Exodus.C:439
bool _write_hdf5
Flag to output HDF5 format (when available) in Exodus.
Definition: Exodus.h:207
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
virtual std::string filename() override
Returns the current filename, this method handles the -s000 suffix common to ExodusII files...
Definition: Exodus.C:494
bool _overwrite
Flag for overwriting timesteps.
Definition: Exodus.h:195
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
void clear()
Reset Exodus output.
Definition: Exodus.C:524
bool _side_discontinuous
Flag to output added disjoint fictitious sides for side_discontinuous variables.
Definition: Exodus.h:204
virtual void outputNodalVariables() override
Outputs nodal, nonlinear variables.
Definition: Exodus.C:310
OutputDimension
Definition: Exodus.h:29
OutputDimension _output_dimension
Enum for the output dimension.
Definition: Exodus.h:198
bool _discontinuous
Flag to output discontinuous format in Exodus.
Definition: Exodus.h:201
bool _exodus_initialized
Flag for indicating the status of the ExodusII file that is being written.
Definition: Exodus.h:165
static InputParameters validParams()
Definition: Exodus.C:27
bool _mesh_contiguous_numbering
whether the mesh is contiguously numbered (exodus output will force that)
Definition: Exodus.h:210
void setOutputDimension(unsigned int dim)
Force the output dimension programatically.
Definition: Exodus.C:130
bool _recovering
Flag indicating MOOSE is recovering via –recover command-line option.
Definition: Exodus.h:189
bool & _exodus_mesh_changed
A flag indicating to the Exodus object that the mesh has changed.
Definition: Exodus.h:168
Class for output data to the ExodusII format.
Definition: Exodus.h:24
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
std::vector< std::string > _global_names
Storage for names of the above scalar values.
Definition: Exodus.h:151
Exodus(const InputParameters &parameters)
Class constructor.
Definition: Exodus.C:93
std::vector< Real > _global_values
Storage for scalar values (postprocessors and scalar AuxVariables)
Definition: Exodus.h:148
unsigned int & _exodus_num
Count of outputs per exodus file.
Definition: Exodus.h:174
bool _sequence
Sequence flag, if true each timestep is written to a new file.
Definition: Exodus.h:171
static void setOutputDimensionInExodusWriter(ExodusII_IO &exodus_io, const MooseMesh &mesh, OutputDimension output_dim=OutputDimension::DEFAULT)
Helper method to change the output dimension in the passed in Exodus writer depending on the dimensio...
Definition: Exodus.C:277
virtual void outputElementalVariables() override
Outputs elemental, nonlinear variables.
Definition: Exodus.C:333
void outputEmptyTimestep()
A helper function for &#39;initializing&#39; the ExodusII output file, see the comments for the _initialized ...
Definition: Exodus.C:509
virtual void outputSetup()
Performs the necessary deletion and re-creating of ExodusII_IO object.
Definition: Exodus.C:179
virtual void outputInput() override
Writes the input file to the ExodusII output.
Definition: Exodus.C:427
const InputParameters & parameters() const
Get the parameters of the object.
virtual void outputScalarVariables() override
Writes scalar AuxVariables to global output parameters.
Definition: Exodus.C:378
virtual void customizeFileOutput()
Customizes file output settings.
Definition: Exodus.C:268
std::unique_ptr< ExodusII_IO > _exodus_io_ptr
Pointer to the libMesh::ExodusII_IO object that performs the actual data output.
Definition: Exodus.h:145
virtual void outputPostprocessors() override
Writes postprocessor values to global output parameters.
Definition: Exodus.C:347
void ErrorVector unsigned int
void handleExodusIOMeshRenumbering()
Handle the call to mesh renumbering in libmesh&#39;s ExodusIO on non-contiguously numbered meshes...
Definition: Exodus.C:530
virtual void initialSetup() override
Performs basic error checking and initial setup of ExodusII_IO output object.
Definition: Exodus.C:137