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>
53  required_other_postprocessors() const override;
54 
58  static
59  void
60  declare_parameters (ParameterHandler &prm);
61 
65  void
66  parse_parameters (ParameterHandler &prm) override;
67 
71  void initialize() override;
72 
78  double
79  evaluate (const Point<dim> &) const;
80 
81  private:
85  unsigned int max_degree;
86  unsigned int min_degree;
87 
93 
98 
103 
108 
113 
118 
124 
129 
134 
139 
144 
151  std::pair<std::vector<double>,std::vector<double>>
152  to_spherical_harmonic_coefficients(const std::vector<std::vector<double>> &spherical_function) const;
153 
159  std::pair<std::vector<double>,std::vector<double>>
160  density_contribution (const double &outer_radius) const;
161 
171  std::pair<std::pair<double, std::pair<std::vector<double>,std::vector<double>>>, std::pair<double, std::pair<std::vector<double>,std::vector<double>>>>
172  topography_contribution(const double &outer_radius,
173  const double &inner_radius) const;
174 
178  std::vector<double> geoid_coecos;
182  std::vector<double> geoid_coesin;
183  };
184  }
185 }
186 
187 
188 #endif
void parse_parameters(ParameterHandler &prm) override
bool include_CMB_topo_contribution
Definition: geoid.h:133
std::vector< double > geoid_coesin
Definition: geoid.h:182
bool output_density_anomaly_contribution_SH_coes
Definition: geoid.h:112
std::vector< double > geoid_coecos
Definition: geoid.h:178
void initialize() override
unsigned int min_degree
Definition: geoid.h:86
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:102
static void declare_parameters(ParameterHandler &prm)
bool include_surface_topo_contribution
Definition: geoid.h:128
bool use_free_surface_topography
Definition: geoid.h:138
bool output_geoid_anomaly_SH_coes
Definition: geoid.h:97
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:107
unsigned int max_degree
Definition: geoid.h:85