GEOS
SolidMechanicsStatistics.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 Total, S.A
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
20 #ifndef SRC_CORECOMPONENTS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSSTATISTICS_HPP_
21 #define SRC_CORECOMPONENTS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSSTATISTICS_HPP_
22 
24 
25 namespace geos
26 {
27 
28 class SolidMechanicsLagrangianFEM;
29 
35 class SolidMechanicsStatistics : public FieldStatisticsBase< SolidMechanicsLagrangianFEM >
36 {
37 public:
38 
44  SolidMechanicsStatistics( const string & name,
45  Group * const parent );
46 
48  static string catalogName() { return "SolidMechanicsStatistics"; }
49 
57  virtual bool execute( real64 const time_n,
58  real64 const dt,
59  integer const cycleNumber,
60  integer const eventCounter,
61  real64 const eventProgress,
62  DomainPartition & domain ) override;
63 
70  void computeNodeStatistics( MeshLevel & mesh, real64 const time ) const;
71 
72 private:
73 
75 
79  struct viewKeyStruct
80  {
82  constexpr static char const * nodeStatisticsString() { return "nodeStatistics"; }
83  };
84 
85  struct NodeStatistics
86  {
88  array1d< real64 > minDisplacement;
90  array1d< real64 > maxDisplacement;
91  };
92 
93  void registerDataOnMesh( Group & meshBodies ) override;
94 
95 };
96 
97 
98 } /* namespace geos */
99 
100 #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:42
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.
Group()=delete
Deleted default constructor.
virtual bool execute(real64 const time_n, real64 const dt, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override
Main extension point of executable targets.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:82