ASPECT
visco_plastic.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 #ifndef _aspect_material_model_visco_plastic_h
16 #define _aspect_material_model_visco_plastic_h
17 
22 
24 
25 namespace aspect
26 {
27  namespace MaterialModel
28  {
177  template <int dim>
179  {
180  public:
185  void
186  initialize () override;
187 
189  MaterialModel::MaterialModelOutputs<dim> &out) const override;
190 
201  bool is_compressible () const override;
202 
203  static
204  void
206 
207  void
208  parse_parameters (ParameterHandler &prm) override;
209 
210  void
212 
213  double get_min_strain_rate() const;
214 
220  bool
221  is_yielding (const MaterialModelInputs<dim> &in) const;
222 
223  private:
224 
236  std::unique_ptr<Rheology::ViscoPlastic<dim>> rheology;
237 
241  std::vector<double> thermal_diffusivities;
242 
249 
253  std::vector<double> thermal_conductivities;
254 
259 
263  unsigned int n_phases;
264 
269 
274 
281 
285  std::unique_ptr<MaterialUtilities::PhaseFunctionDiscrete<dim>> phase_function_discrete;
286 
290  std::vector<unsigned int> reaction_progress_mapping;
291 
292  };
293 
294  }
295 }
296 
297 #endif
MaterialUtilities::PhaseFunction< dim > phase_function
std::vector< unsigned int > n_phase_transitions_for_each_chemical_composition
bool is_yielding(const MaterialModelInputs< dim > &in) const
std::unique_ptr< Rheology::ViscoPlastic< dim > > rheology
static void declare_parameters(ParameterHandler &prm)
void parse_parameters(ParameterHandler &prm) override
EquationOfState::MulticomponentIncompressible< dim > equation_of_state
bool is_compressible() const override
std::vector< double > thermal_diffusivities
void evaluate(const MaterialModel::MaterialModelInputs< dim > &in, MaterialModel::MaterialModelOutputs< dim > &out) const override
void create_additional_named_outputs(MaterialModel::MaterialModelOutputs< dim > &out) const override
std::unique_ptr< MaterialUtilities::PhaseFunctionDiscrete< dim > > phase_function_discrete
std::vector< double > thermal_conductivities
std::vector< unsigned int > reaction_progress_mapping