18 #ifndef GEOS_PHYSICSSOLVERS_INDUCEDSEISMICITY_SPRINGSLIDER_HPP 
   19 #define GEOS_PHYSICSSOLVERS_INDUCEDSEISMICITY_SPRINGSLIDER_HPP 
   21 #include "physicsSolvers/inducedSeismicity/ImplicitQDRateAndState.hpp" 
   28 template< 
typename RSSOLVER_TYPE = ImplicitQDRateAndState >
 
   41   static string catalogName() { 
return RSSOLVER_TYPE::derivedSolverPrefix() + 
"SpringSlider"; }
 
   52                                  const int cycleNumber,
 
   55   template< 
typename FRICTION_TYPE >
 
   57                             FRICTION_TYPE & frictionLaw,
 
   62   class SpringSliderParameters
 
   69       springStiffness( 0.0 )
 
   71       real64 const criticalStiffness = normalTraction * (b - a) / Dc;
 
   72       springStiffness = 0.9 * criticalStiffness;
 
   76     SpringSliderParameters( SpringSliderParameters 
const & ) = 
default;
 
   79     SpringSliderParameters( SpringSliderParameters && ) = 
default;
 
   82     SpringSliderParameters() = 
delete;
 
   85     SpringSliderParameters & 
operator=( SpringSliderParameters 
const & ) = 
delete;
 
   88     SpringSliderParameters & 
operator=( SpringSliderParameters && ) =  
delete;
 
   96 template< 
typename RSSOLVER_TYPE >
 
   97 template< 
typename FRICTION_TYPE >
 
   98 void SpringSlider< RSSOLVER_TYPE >::updateShearTraction( SurfaceElementSubRegion & subRegion,
 
   99                                                          FRICTION_TYPE & frictionLaw,
 
  102   arrayView2d< real64 const > 
const deltaSlip = subRegion.getField< fields::contact::deltaSlip >();
 
  103   arrayView2d< real64 > 
const shearTraction   = subRegion.getField< fields::rateAndState::shearTraction >();
 
  104   arrayView2d< real64 > 
const shearTraction_n = subRegion.getField< fields::rateAndState::shearTraction_n >();
 
  106   arrayView1d< real64 > 
const normalTraction  = subRegion.getField< fields::rateAndState::normalTraction >();
 
  109     SpringSliderParameters springSliderParameters = SpringSliderParameters( normalTraction[k],
 
  110                                                                             frictionLaw.getACoefficient( k ),
 
  111                                                                             frictionLaw.getBCoefficient( k ),
 
  112                                                                             frictionLaw.getDcCoefficient( k ) );
 
  116     shearTraction[k][0] = shearTraction_n[k][0] + springSliderParameters.tauRate * dt
 
  117                           - springSliderParameters.springStiffness * deltaSlip[k][0];
 
  118     shearTraction[k][1] = shearTraction_n[k][1] + springSliderParameters.tauRate * dt
 
  119                           - springSliderParameters.springStiffness * deltaSlip[k][1];
 
#define GEOS_HOST_DEVICE
Marks a host-device function.
 
#define GEOS_DEVICE
Marks a device-only function.
 
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
 
PhysicsSolverBase & operator=(PhysicsSolverBase const &)=delete
Deleted copy assignment operator.
 
virtual string getCatalogName() const override
 
virtual ~SpringSlider() override
Destructor.
 
virtual void registerDataOnMesh(dataRepository::Group &meshBodies) override
This method ties properties with their supporting mesh.
 
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.
 
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).