ASPECT
geoid.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2015 - 2022 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 
22 #ifndef _aspect_postprocess_geoid_h
23 #define _aspect_postprocess_geoid_h
24 
27 
28 
29 namespace aspect
30 {
31  namespace Postprocess
32  {
38  template <int dim>
39  class Geoid : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
40  {
41  public:
45  std::pair<std::string,std::string>
46  execute (TableHandler &statistics) override;
47 
52  std::list<std::string>
54 
58  static
59  void
61 
65  void
67 
71  void initialize() override;
72 
78  double
79  evaluate (const Point<dim> &) const;
80 
81  private:
87  unsigned int max_degree;
88 
93  unsigned int min_degree;
94 
101 
107 
113 
119 
125 
131 
137 
143 
149 
156 
161 
166 
173  std::pair<std::vector<double>,std::vector<double>>
174  to_spherical_harmonic_coefficients(const std::vector<std::vector<double>> &spherical_function) const;
175 
181  std::pair<std::vector<double>,std::vector<double>>
182  density_contribution (const double &outer_radius) const;
183 
193  std::pair<std::pair<double, std::pair<std::vector<double>,std::vector<double>>>, std::pair<double, std::pair<std::vector<double>,std::vector<double>>>>
194  topography_contribution(const double &outer_radius,
195  const double &inner_radius) const;
196 
205  std::vector<double> geoid_coecos;
206 
212  std::vector<double> geoid_coesin;
213  };
214  }
215 }
216 
217 
218 #endif
unsigned int max_degree
Definition: geoid.h:87
std::pair< std::vector< double >, std::vector< double > > density_contribution(const double &outer_radius) const
std::vector< double > geoid_coesin
Definition: geoid.h:212
static void declare_parameters(ParameterHandler &prm)
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
std::pair< std::vector< double >, std::vector< double > > to_spherical_harmonic_coefficients(const std::vector< std::vector< double >> &spherical_function) const
bool use_free_surface_topography
Definition: geoid.h:160
double evaluate(const Point< dim > &) const
bool output_geoid_anomaly_SH_coes
Definition: geoid.h:106
std::vector< double > geoid_coecos
Definition: geoid.h:205
bool include_CMB_topo_contribution
Definition: geoid.h:155
std::list< std::string > required_other_postprocessors() const override
void initialize() override
unsigned int min_degree
Definition: geoid.h:93
bool output_density_anomaly_contribution_SH_coes
Definition: geoid.h:124
bool output_surface_topo_contribution_SH_coes
Definition: geoid.h:112
bool output_CMB_topo_contribution_SH_coes
Definition: geoid.h:118
void parse_parameters(ParameterHandler &prm) override
std::pair< std::string, std::string > execute(TableHandler &statistics) override
bool include_surface_topo_contribution
Definition: geoid.h:148