ASPECT
katz2003_mantle_melting.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2024 - 2026 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_reaction_model_katz2003_mantle_melting_h
22 #define _aspect_material_model_reaction_model_katz2003_mantle_melting_h
23 
27 #include <aspect/melt.h>
28 
29 namespace aspect
30 {
31  namespace MaterialModel
32  {
33  namespace ReactionModel
34  {
35 
47  template <int dim>
49  {
50  public:
54  static
55  void
57 
61  void
63 
69  double
70  melt_fraction (const double temperature,
71  const double pressure) const;
72 
81  double
82  entropy_change (const double temperature,
83  const double pressure,
84  const double maximum_melt_fraction,
85  const NonlinearDependence::Dependence dependence) const;
86 
93  void
95  typename Interface<dim>::MaterialModelOutputs &out) const;
96 
105  void
108  const double reference_T) const;
109 
113  double
115 
116  private:
123 
127  double xi_0;
128 
133 
138 
142  double alpha_phi;
143 
148 
153 
158 
163 
168 
173 
178 
183 
189  double A1;
190 
196  double A2;
197 
203  double A3;
204 
210  double B1;
211 
217  double B2;
218 
224  double B3;
225 
231  double C1;
232 
238  double C2;
239 
245  double C3;
246 
252  double r1;
253 
259  double r2;
260 
266  double M_cpx;
267 
273  double beta;
274 
281  };
282  }
283 
284  }
285 }
286 
287 #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