GEOSX
SolidMechanicsStatistics.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 TotalEnergies
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 SRC_CORECOMPONENTS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSSTATISTICS_HPP_
20 #define SRC_CORECOMPONENTS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSSTATISTICS_HPP_
21 
22 #include "physicsSolvers/FieldStatisticsBase.hpp"
23 
24 namespace geos
25 {
26 
27 class SolidMechanicsLagrangianFEM;
28 
34 class SolidMechanicsStatistics : public FieldStatisticsBase< SolidMechanicsLagrangianFEM >
35 {
36 public:
37 
43  SolidMechanicsStatistics( const string & name,
44  Group * const parent );
45 
47  static string catalogName() { return "SolidMechanicsStatistics"; }
48 
56  virtual bool execute( real64 const time_n,
57  real64 const dt,
58  integer const cycleNumber,
59  integer const eventCounter,
60  real64 const eventProgress,
61  DomainPartition & domain ) override;
62 
69  void computeNodeStatistics( MeshLevel & mesh, real64 const time ) const;
70 
71 private:
72 
73  using Base = FieldStatisticsBase< SolidMechanicsLagrangianFEM >;
74 
78  struct viewKeyStruct
79  {
81  constexpr static char const * nodeStatisticsString() { return "nodeStatistics"; }
82  };
83 
84  struct NodeStatistics
85  {
87  array1d< real64 > minDisplacement;
89  array1d< real64 > maxDisplacement;
90  };
91 
92  void registerDataOnMesh( Group & meshBodies ) override;
93 
94 };
95 
96 
97 } /* namespace geos */
98 
99 #endif /* SRC_CORECOMPONENTS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSSTATISTICS_HPP_ */
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Class facilitating the representation of a multi-level discretization of a MeshBody.
Definition: MeshLevel.hpp:41
void computeNodeStatistics(MeshLevel &mesh, real64 const time) const
Compute node-based statistics on the reservoir.
static string catalogName()
Accessor for the catalog name.
SolidMechanicsStatistics(const string &name, Group *const parent)
Constructor for the statistics class.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:139
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:122