ASPECT
initial_lithostatic_pressure.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_boundary_traction_initial_lithospheric_pressure_h
17 #define _aspect_boundary_traction_initial_lithospheric_pressure_h
18 
21 
22 
23 namespace aspect
24 {
25  namespace BoundaryTraction
26  {
33  template <int dim>
34  class InitialLithostaticPressure : public Interface<dim>, public SimulatorAccess<dim>
35  {
36  public:
37 
44  void initialize () override;
45 
46 
53  boundary_traction (const types::boundary_id boundary_indicator,
54  const Point<dim> &position,
55  const Tensor<1,dim> &normal_vector) const override;
56 
57 
61  static
62  void
64 
65 
69  void
70  parse_parameters (ParameterHandler &prm) override;
71 
72  private:
73 
79  unsigned int n_points;
80 
84  double delta_z;
85 
86  /*
87  * The user-specified point where to calculate the pressure profile.
88  * The vertical coordinate/radius is ignored.
89  */
91 
95  std::vector<double> pressure;
96 
101  double interpolate_pressure (const Point<dim> &p) const;
102 
107 
115  };
116  }
117 }
118 
119 
120 #endif
double interpolate_pressure(const Point< dim > &p) const
void parse_parameters(ParameterHandler &prm) override
Tensor< 1, dim > boundary_traction(const types::boundary_id boundary_indicator, const Point< dim > &position, const Tensor< 1, dim > &normal_vector) const override
static void declare_parameters(ParameterHandler &prm)