ASPECT
geoid.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2015 - 2019 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
61 
65  void
66  parse_parameters (ParameterHandler &prm) override;
67 
73  double
74  evaluate (const Point<dim> &) const;
75 
76  private:
80  unsigned int max_degree;
81  unsigned int min_degree;
82 
88 
93 
98 
103 
108 
113 
119 
124 
131  std::pair<std::vector<double>,std::vector<double> >
132  to_spherical_harmonic_coefficients(const std::vector<std::vector<double> > &spherical_function) const;
133 
139  std::pair<std::vector<double>,std::vector<double> >
140  density_contribution (const double &outer_radius) const;
141 
149  std::pair<std::pair<double, std::pair<std::vector<double>,std::vector<double> > >, std::pair<double, std::pair<std::vector<double>,std::vector<double> > > >
150  dynamic_topography_contribution(const double &outer_radius,
151  const double &inner_radius) const;
152 
156  std::vector<double> geoid_coecos;
160  std::vector<double> geoid_coesin;
161  };
162  }
163 }
164 
165 
166 #endif
void parse_parameters(ParameterHandler &prm) override
bool also_output_CMB_dynamic_topo_contribution_SH_coes
Definition: geoid.h:102
std::vector< double > geoid_coesin
Definition: geoid.h:160
bool also_output_gravity_anomaly
Definition: geoid.h:112
std::vector< double > geoid_coecos
Definition: geoid.h:156
bool also_output_surface_dynamic_topo_contribution_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
unsigned int min_degree
Definition: geoid.h:81
static void declare_parameters(ParameterHandler &prm)
bool include_dynamic_topo_contribution
Definition: geoid.h:123
Definition: compat.h:53
bool also_output_density_anomaly_contribution_SH_coes
Definition: geoid.h:107
double evaluate(const Point< dim > &) const
bool also_output_geoid_anomaly_SH_coes
Definition: geoid.h:92
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
unsigned int max_degree
Definition: geoid.h:80
std::pair< std::pair< double, std::pair< std::vector< double >, std::vector< double > > >, std::pair< double, std::pair< std::vector< double >, std::vector< double > > > > dynamic_topography_contribution(const double &outer_radius, const double &inner_radius) const