ASPECT
shear_heating.h
Go to the documentation of this file.
1 // ------------------------------------------------------
2 //
3 // SPDX-License-Identifier: GPL-2.0-or-later
4 //
5 // SPDX-FileCopyrightText: Copyright (C) 2011-2026 by the ASPECT authors.
6 //
7 // This file is part of ASPECT.
8 //
9 // Detailed license information governing the source code and
10 // contributions can be found in the folder LICENSES and in
11 // LICENSE and CONTRIBUTING.md at the top level directory.
12 //
13 // ------------------------------------------------------
14 
15 
16 #ifndef _aspect_heating_model_shear_heating_h
17 #define _aspect_heating_model_shear_heating_h
18 
22 
23 namespace aspect
24 {
25  namespace HeatingModel
26  {
39  template <int dim>
40  class ShearHeating : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
41  {
42  public:
46  void
47  evaluate (const MaterialModel::MaterialModelInputs<dim> &material_model_inputs,
48  const MaterialModel::MaterialModelOutputs<dim> &material_model_outputs,
49  HeatingModel::HeatingModelOutputs &heating_model_outputs) const override;
50 
54  void
56 
62  get_required_properties () const override;
63 
67  static
68  void
70 
74  void
75  parse_parameters (ParameterHandler &prm) override;
76 
77  private:
93  double cohesion;
99  };
100 
101 
110  template <int dim>
112  {
113  public:
114  ShearHeatingOutputs(const unsigned int n_points);
115 
116  std::vector<double> get_nth_output(const unsigned int idx) const override;
117 
124  std::vector<double> shear_heating_work_fractions;
125  };
126 
135  template <int dim>
137  {
138  public:
139  PrescribedShearHeatingOutputs(const unsigned int n_points);
140 
141  std::vector<double> get_nth_output(const unsigned int idx) const override;
142 
149  std::vector<double> prescribed_shear_heating_rates;
150  };
151  }
152 }
153 
154 
155 #endif
static void declare_parameters(ParameterHandler &prm)
void parse_parameters(ParameterHandler &prm) override
void evaluate(const MaterialModel::MaterialModelInputs< dim > &material_model_inputs, const MaterialModel::MaterialModelOutputs< dim > &material_model_outputs, HeatingModel::HeatingModelOutputs &heating_model_outputs) const override
MaterialModel::Rheology::DruckerPrager< dim > drucker_prager_plasticity
Definition: shear_heating.h:98
std::vector< double > shear_heating_work_fractions
MaterialModel::MaterialProperties::Property get_required_properties() const override
void create_additional_material_model_outputs(MaterialModel::MaterialModelOutputs< dim > &material_model_outputs) const override