ASPECT
geoid.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) 2015-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_postprocess_geoid_h
17 #define _aspect_postprocess_geoid_h
18 
21 
22 
23 namespace aspect
24 {
25  namespace Postprocess
26  {
32  template <int dim>
33  class Geoid : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
34  {
35  public:
39  std::pair<std::string,std::string>
40  execute (TableHandler &statistics) override;
41 
46  std::list<std::string>
47  required_other_postprocessors() const override;
48 
52  static
53  void
55 
59  void
60  parse_parameters (ParameterHandler &prm) override;
61 
65  void initialize() override;
66 
72  double
73  evaluate (const Point<dim> &) const;
74 
75  private:
81  unsigned int max_degree;
82 
87  unsigned int min_degree;
88 
95 
101 
107 
113 
119 
125 
131 
137 
143 
150 
155 
160 
167  std::pair<std::vector<double>,std::vector<double>>
168  to_spherical_harmonic_coefficients(const std::vector<std::vector<double>> &spherical_function) const;
169 
175  std::pair<std::vector<double>,std::vector<double>>
176  density_contribution (const double &outer_radius) const;
177 
187  std::pair<std::pair<double, std::pair<std::vector<double>,std::vector<double>>>, std::pair<double, std::pair<std::vector<double>,std::vector<double>>>>
188  topography_contribution(const double &outer_radius,
189  const double &inner_radius) const;
190 
199  std::vector<double> geoid_coecos;
200 
206  std::vector<double> geoid_coesin;
207  };
208  }
209 }
210 
211 
212 #endif
void parse_parameters(ParameterHandler &prm) override
bool include_CMB_topo_contribution
Definition: geoid.h:149
std::vector< double > geoid_coesin
Definition: geoid.h:206
bool output_density_anomaly_contribution_SH_coes
Definition: geoid.h:118
std::vector< double > geoid_coecos
Definition: geoid.h:199
void initialize() override
unsigned int min_degree
Definition: geoid.h:87
std::pair< std::pair< double, std::pair< std::vector< double >, std::vector< double > > >, std::pair< double, std::pair< std::vector< double >, std::vector< double > > > > topography_contribution(const double &outer_radius, const double &inner_radius) const
bool output_surface_topo_contribution_SH_coes
Definition: geoid.h:106
static void declare_parameters(ParameterHandler &prm)
bool include_surface_topo_contribution
Definition: geoid.h:142
bool use_free_surface_topography
Definition: geoid.h:154
bool output_geoid_anomaly_SH_coes
Definition: geoid.h:100
std::pair< std::vector< double >, std::vector< double > > to_spherical_harmonic_coefficients(const std::vector< std::vector< double >> &spherical_function) const
double evaluate(const Point< dim > &) const
std::pair< std::string, std::string > execute(TableHandler &statistics) override
std::list< std::string > required_other_postprocessors() const override
std::pair< std::vector< double >, std::vector< double > > density_contribution(const double &outer_radius) const
bool output_CMB_topo_contribution_SH_coes
Definition: geoid.h:112
unsigned int max_degree
Definition: geoid.h:81