ASPECT
katz2003_mantle_melting.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) 2024-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_reaction_model_katz2003_mantle_melting_h
16 #define _aspect_material_model_reaction_model_katz2003_mantle_melting_h
17 
21 #include <aspect/melt.h>
22 
23 namespace aspect
24 {
25  namespace MaterialModel
26  {
27  namespace ReactionModel
28  {
29 
41  template <int dim>
43  {
44  public:
48  static
49  void
51 
55  void
57 
63  double
64  melt_fraction (const double temperature,
65  const double pressure) const;
66 
75  double
76  entropy_change (const double temperature,
77  const double pressure,
78  const double maximum_melt_fraction,
79  const NonlinearDependence::Dependence dependence) const;
80 
87  void
89  typename Interface<dim>::MaterialModelOutputs &out) const;
90 
99  void
102  const double reference_T) const;
103 
107  double
109 
110  private:
117 
121  double xi_0;
122 
127 
132 
136  double alpha_phi;
137 
142 
147 
152 
157 
162 
167 
172 
177 
183  double A1;
184 
190  double A2;
191 
197  double A3;
198 
204  double B1;
205 
211  double B2;
212 
218  double B3;
219 
225  double C1;
226 
232  double C2;
233 
239  double C3;
240 
246  double r1;
247 
253  double r2;
254 
260  double M_cpx;
261 
267  double beta;
268 
275  };
276  }
277 
278  }
279 }
280 
281 #endif
double entropy_change(const double temperature, const double pressure, const double maximum_melt_fraction, const NonlinearDependence::Dependence dependence) const
static void declare_parameters(ParameterHandler &prm)
void calculate_reaction_rate_outputs(const typename Interface< dim >::MaterialModelInputs &in, typename Interface< dim >::MaterialModelOutputs &out) const
double melt_fraction(const double temperature, const double pressure) const
void calculate_fluid_outputs(const typename Interface< dim >::MaterialModelInputs &in, typename Interface< dim >::MaterialModelOutputs &out, const double reference_T) const