www.mooseframework.org
XDA.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 
15 // MOOSE includes
16 #include "XDA.h"
17 #include "MooseApp.h"
18 #include "FEProblem.h"
19 #include "MooseMesh.h"
20 
21 template <>
24 {
25  // Get the base class parameters
27 
28  // Add description for the XDA class
29  params.addClassDescription("Object for outputting data in the XDA/XDR format");
30 
31  /* Set a private parameter for controlling the output type (XDR = binary), the value
32  of this parameter is set by the AddOutputAction*/
33  params.addPrivateParam<bool>("_binary", false);
34 
35  // Return the InputParameters
36  return params;
37 }
38 
39 XDA::XDA(const InputParameters & parameters)
40  : OversampleOutput(parameters), _binary(getParam<bool>("_binary"))
41 {
42 }
43 
44 void
45 XDA::output(const ExecFlagType & /*type*/)
46 {
47  // Strings for the two filenames to be written
48  std::string es_name = filename();
49  std::string mesh_name = es_name;
50 
51  // Make sure the filename has an extension
52  if (es_name.size() < 4)
53  mooseError("Unacceptable filename, you must include an extension (.xda or .xdr).");
54 
55  // Insert the mesh suffix
56  mesh_name.insert(mesh_name.size() - 4, "_mesh");
57 
58  // Set the binary flag
59  XdrMODE mode = _binary ? ENCODE : WRITE;
60 
61  // Write the files
62  _mesh_ptr->getMesh().write(mesh_name);
63  _es_ptr->write(
64  es_name, mode, EquationSystems::WRITE_DATA | EquationSystems::WRITE_ADDITIONAL_DATA);
65  _file_num++;
66 }
67 
68 std::string
70 {
71  // Append the padded time step to the file base
72  std::ostringstream output;
73  output << _file_base << "_" << std::setw(_padding) << std::setprecision(0) << std::setfill('0')
74  << std::right << _file_num;
75 
76  if (_binary)
77  output << ".xdr";
78  else
79  output << ".xda";
80  return output.str();
81 }
Based class for providing re-positioning and oversampling support to output objects.
MooseMesh * _mesh_ptr
A convenience pointer to the current mesh (reference or displaced depending on "use_displaced") ...
virtual std::string filename() override
Returns the current filename, this method handles adding the timestep suffix.
Definition: XDA.C:69
void addPrivateParam(const std::string &name, const T &value)
These method add a parameter to the InputParameters object which can be retrieved like any other para...
bool _binary
Flag for binary output.
Definition: XDA.h:53
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
std::string _file_base
The base filename from the input paramaters.
Definition: FileOutput.h:87
InputParameters validParams< OversampleOutput >()
InputParameters validParams< XDA >()
Definition: XDA.C:23
unsigned int _padding
Number of digits to pad the extensions.
Definition: FileOutput.h:93
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:2355
EquationSystems * _es_ptr
Reference the the libMesh::EquationSystems object that contains the data.
Definition: Output.h:180
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void mooseError(Args &&...args) const
Definition: MooseObject.h:80
unsigned int & _file_num
A file number counter, initialized to 0 (this must be controlled by the child class, see Exodus)
Definition: FileOutput.h:90
virtual void output(const ExecFlagType &type) override
Overload the Output::output method, this is required for XDA output due to the method utlized for out...
Definition: XDA.C:45
ExecFlagType
Execution flags - when is the object executed/evaluated.
Definition: MooseTypes.h:90
XDA(const InputParameters &parameters)
Class consturctor.
Definition: XDA.C:39