GEOS
ImplicitQDRateAndState.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 #ifndef GEOS_PHYSICSSOLVERS_INDUCEDSEISMICITY_IMPLICITQDRATEANDSTATE_HPP
17 #define GEOS_PHYSICSSOLVERS_INDUCEDSEISMICITY_IMPLICITQDRATEANDSTATE_HPP
18 
19 #include "QDRateAndStateBase.hpp"
20 
21 namespace geos
22 {
23 
25 {
26 public:
29 
31  ImplicitQDRateAndState( const string & name,
32  Group * const parent );
33 
35  virtual ~ImplicitQDRateAndState() override;
36 
37  static string derivedSolverPrefix() { return "Implicit";};
38 
40  {
42  constexpr static char const * targetSlipIncrementString() { return "targetSlipIncrement"; }
43  };
44 
45  virtual real64 setNextDt( real64 const & currentDt,
46  DomainPartition & domain ) override final;
47 
52  void updateSlip( ElementSubRegionBase & subRegion, real64 const dt ) const;
53 
54  virtual real64 solverStep( real64 const & time_n,
55  real64 const & dt,
56  integer const cycleNumber,
57  DomainPartition & domain ) override final;
58 protected:
59 
60  void solveRateAndStateEquations( real64 const time_n,
61  real64 const dt,
62  DomainPartition & domain ) const;
63 
66 };
67 
68 } /* namespace geos */
69 
70 #endif /* GEOS_PHYSICSSOLVERS_INDUCEDSEISMICITY_IMPLICITQDRATEANDSTATE_HPP */
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
void updateSlip(ElementSubRegionBase &subRegion, real64 const dt) const
save the old state
ImplicitQDRateAndState()=delete
The default nullary constructor is disabled to avoid compiler auto-generation:
ImplicitQDRateAndState(const string &name, Group *const parent)
The constructor needs a user-defined "name" and a parent Group (to place this instance in the tree st...
real64 m_targetSlipIncrement
target slip rate
virtual real64 solverStep(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override final
entry function to perform a solver step
virtual ~ImplicitQDRateAndState() override
Destructor.
virtual real64 setNextDt(real64 const &currentDt, DomainPartition &domain) override final
function to set the next time step size
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:82
constexpr static char const * targetSlipIncrementString()
target slip increment