GEOS
QuasiDynamicEarthQuake.hpp
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 TotalEnergies
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 
16 
17 #ifndef GEOS_PHYSICSSOLVERS_INDUCED_QUASIDYNAMICEARTHQUAKE_HPP
18 #define GEOS_PHYSICSSOLVERS_INDUCED_QUASIDYNAMICEARTHQUAKE_HPP
19 
20 #include "ImplicitQDRateAndState.hpp"
21 
22 namespace geos
23 {
24 
25 template< typename RSSOLVER_TYPE = ImplicitQDRateAndState >
26 class QuasiDynamicEarthQuake : public RSSOLVER_TYPE
27 {
28 public:
29 
32 
34  QuasiDynamicEarthQuake( const string & name,
35  dataRepository::Group * const parent );
36 
38  virtual ~QuasiDynamicEarthQuake() override;
39 
40  static string catalogName() { return RSSOLVER_TYPE::derivedSolverPrefix() + "QuasiDynamicEQ"; }
41 
45  virtual string getCatalogName() const override { return catalogName(); }
46 
47  struct viewKeyStruct : public RSSOLVER_TYPE::viewKeyStruct
48  {
50  static constexpr char const * stressSolverNameString() { return "stressSolverName"; }
51  };
52 
53  void postInputInitialization() override final;
54 
55  void setTargetDispJump( DomainPartition & domain ) const;
56 
57  virtual real64 updateStresses( real64 const & time_n,
58  real64 const & dt,
59  const int cycleNumber,
60  DomainPartition & domain ) const override final;
61 
62 private:
63 
64  string m_stressSolverName;
65 
66  PhysicsSolverBase * m_stressSolver;
67 
68 };
69 
70 } /* namespace geos */
71 
72 #endif /* GEOS_PHYSICSSOLVERS_INDUCED_QUASIDYNAMICEQBASE_HPP */
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Base class for all physics solvers.
QuasiDynamicEarthQuake()=delete
The default nullary constructor is disabled to avoid compiler auto-generation:
QuasiDynamicEarthQuake(const string &name, dataRepository::Group *const parent)
The constructor needs a user-defined "name" and a parent Group (to place this instance in the tree st...
void postInputInitialization() override final
virtual string getCatalogName() const override
virtual ~QuasiDynamicEarthQuake() override
Destructor.
virtual real64 updateStresses(real64 const &time_n, real64 const &dt, const int cycleNumber, DomainPartition &domain) const override final
Compute stresses and update tractions on the fault.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
static constexpr char const * stressSolverNameString()
stress solver name