GEOSX
BlueprintOutput.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 Total, S.A
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOSX_MANAGERS_OUTPUTS_BLUEPRINTOUTPUT_HPP_
20 #define GEOSX_MANAGERS_OUTPUTS_BLUEPRINTOUTPUT_HPP_
21 
23 
24 namespace geosx
25 {
26 
28 class MeshLevel;
29 class NodeManager;
30 class ElementRegionManager;
31 
37 {
38 public:
39 
45  BlueprintOutput( std::string const & name,
46  Group * const parent );
47 
51  virtual ~BlueprintOutput() override
52  {}
53 
58  static string CatalogName() { return "Blueprint"; }
59 
64  virtual void Execute( real64 const time_n,
65  real64 const dt,
66  integer const cycleNumber,
67  integer const eventCounter,
68  real64 const eventProgress,
69  dataRepository::Group * domain ) override;
70 
75  virtual void Cleanup( real64 const time_n,
76  integer const cycleNumber,
77  integer const eventCounter,
78  real64 const eventProgress,
79  dataRepository::Group * domain ) override
80  { Execute( time_n, 0, cycleNumber, eventCounter, eventProgress, domain ); }
81 
82 private:
83 
91  void addNodalData( NodeManager const & nodeManager,
92  conduit::Node & coordset,
93  conduit::Node & topologies,
94  conduit::Node & fields );
95 
103  void addElementData( ElementRegionManager const & elemRegionManager,
104  conduit::Node & coordset,
105  conduit::Node & topologies,
106  conduit::Node & fields,
107  dataRepository::Group & averagedElementData );
108 
116  void writeOutWrappersAsFields( Group const & group,
117  conduit::Node & fields,
118  std::string const & topology,
119  std::string const & prefix="" );
120 
121  void writeOutConstitutiveData( dataRepository::Group const & constitutiveModel,
122  conduit::Node & fields,
123  std::string const & topology,
124  dataRepository::Group & averagedElementData );
125 
128 
130  int m_outputFullQuadratureData = 0;
131 };
132 
133 
134 }
135 
136 #endif
virtual void Execute(real64 const time_n, real64 const dt, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, dataRepository::Group *domain) override
Writes out a Blueprint plot file.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data...
Definition: NodeManager.hpp:47
Write to plot when plotLevel>=1 is specified in input.
virtual void Cleanup(real64 const time_n, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, dataRepository::Group *domain) override
Writes out a Blueprint plot file at the end of the simulation.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
virtual ~BlueprintOutput() override
Destructor.
static string CatalogName()
Get the name used to register this object in an XML file.
BlueprintOutput(std::string const &name, Group *const parent)
Construct a new BlueprintOutput object.
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:122
std::string string
String type.
Definition: DataTypes.hpp:131
A class for creating Conduit blueprint-based outputs.
The ElementRegionManager class provides an interface to ObjectManagerBase in order to manage ElementR...