ASPECT
strain_dependent.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2019 - 2024 by the authors of the ASPECT code.
3 
4  This file is part of ASPECT.
5 
6  ASPECT is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2, or (at your option)
9  any later version.
10 
11  ASPECT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with ASPECT; see the file LICENSE. If not see
18  <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef _aspect_material_model_rheology_strain_dependent_h
22 #define _aspect_material_model_rheology_strain_dependent_h
23 
24 #include <aspect/global.h>
27 
30 
31 namespace aspect
32 {
33  namespace MaterialModel
34  {
35  namespace Rheology
36  {
47  {
55  };
56 
66  {
69  };
70 
71  template <int dim>
73  {
74  public:
78  static
79  void
81 
85  void
87 
97  std::array<double, 3>
98  compute_strain_weakening_factors(const std::vector<double> &composition,
99  const unsigned int j) const;
100 
106  std::array<double, 3>
107  compute_strain_weakening_factors(const unsigned int j,
108  const std::vector<double> &composition) const;
109 
114  std::array<double, 3>
115  apply_temperature_dependence_to_strain_weakening_factors(const std::array<double, 3> &weakening_factors,
116  const double temperature,
117  const unsigned int j) const;
118 
122  double
124  const unsigned int j) const;
125 
131  std::pair<double, double>
132  calculate_plastic_weakening (const double strain_ii,
133  const unsigned int j) const;
134 
140  double
141  calculate_viscous_weakening (const double strain_ii,
142  const unsigned int j) const;
143 
150 
164  const int i,
165  const double min_strain_rate,
166  const bool plastic_yielding,
168 
174 
180 
186 
187  private:
188 
193 
198 
205 
212 
219 
227 
234 
241 
247  std::vector<double> viscous_strain_weakening_factors;
248 
261  std::vector<double> viscous_strain_weakening_T0;
265  std::vector<double> viscous_strain_weakening_T1;
269  std::vector<double> viscous_strain_weakening_T2;
273  std::vector<double> viscous_strain_weakening_T3;
274 
280 
287 
294  mutable std::unique_ptr<FEPointEvaluation<dim, dim>> evaluator;
295  mutable std::vector<std::unique_ptr<FEPointEvaluation<1, dim>>> composition_evaluators;
296  };
297  }
298  }
299 }
300 #endif
DEAL_II_DEPRECATED std::array< double, 3 > compute_strain_weakening_factors(const unsigned int j, const std::vector< double > &composition) const
void parse_parameters(ParameterHandler &prm)
std::array< double, 3 > apply_temperature_dependence_to_strain_weakening_factors(const std::array< double, 3 > &weakening_factors, const double temperature, const unsigned int j) const
std::vector< std::unique_ptr< FEPointEvaluation< 1, dim > > > composition_evaluators
void fill_reaction_outputs(const MaterialModel::MaterialModelInputs< dim > &in, const int i, const double min_strain_rate, const bool plastic_yielding, MaterialModel::MaterialModelOutputs< dim > &out) const
double calculate_viscous_weakening(const double strain_ii, const unsigned int j) const
void compute_finite_strain_reaction_terms(const MaterialModel::MaterialModelInputs< dim > &in, MaterialModel::MaterialModelOutputs< dim > &out) const
std::unique_ptr< FEPointEvaluation< dim, dim > > evaluator
static void declare_parameters(ParameterHandler &prm)
double calculate_strain_healing(const MaterialModel::MaterialModelInputs< dim > &in, const unsigned int j) const
WeakeningMechanism get_weakening_mechanism() const
std::array< double, 3 > compute_strain_weakening_factors(const std::vector< double > &composition, const unsigned int j) const
std::pair< double, double > calculate_plastic_weakening(const double strain_ii, const unsigned int j) const
#define DEAL_II_DEPRECATED
@ plastic_weakening_with_plastic_strain_and_viscous_weakening_with_viscous_strain