ASPECT
gravity_point_values.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2018 - 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_gravity_point_values_h
23 #define _aspect_postprocess_gravity_point_values_h
24 
27 
28 
29 namespace aspect
30 {
31  namespace Postprocess
32  {
33 
56  template <int dim>
57  class GravityPointValues : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
58  {
59  public:
64 
68  void initialize() override;
69 
73  std::pair<std::string,std::string> execute (TableHandler &) override;
74 
78  static
79  void
80  declare_parameters (ParameterHandler &prm);
81 
85  void
86  parse_parameters (ParameterHandler &prm) override;
87 
92  template <class Archive>
93  void serialize (Archive &ar, const unsigned int version);
94 
98  void save (std::map<std::string, std::string> &status_strings) const override;
99 
103  void load (const std::map<std::string, std::string> &status_strings) override;
104 
105  private:
110 
116 
121 
126  unsigned int last_output_timestep;
127 
132  unsigned int output_file_number;
133 
138  double end_time;
139 
148  void set_last_output_time (const double current_time);
149 
154  unsigned int precision;
155 
163 
167  unsigned int n_points_spiral;
168 
175  unsigned int n_points_radius;
176 
183  unsigned int n_points_longitude;
184 
191  unsigned int n_points_latitude;
192 
199 
207 
213 
220 
226 
233 
242 
247  {
251  } sampling_scheme;
252 
258  std::vector<double> radius_list;
259 
265  std::vector<double> longitude_list;
266 
272  std::vector<double> latitude_list;
273 
274  // ------------ the following variables are not set from parameters,
275  // but are instead computed up front from input
276  // parameters and other parts of the overall model
279 
284  std::vector<std::array<double,dim>> satellite_positions_spherical;
285  std::vector<Point<dim>> satellite_positions_cartesian;
286  };
287  }
288 }
289 
290 
291 #endif
void load(const std::map< std::string, std::string > &status_strings) override
enum aspect::Postprocess::GravityPointValues::SamplingScheme sampling_scheme
std::vector< std::array< double, dim > > satellite_positions_spherical
std::pair< std::string, std::string > execute(TableHandler &) override
void set_last_output_time(const double current_time)
void parse_parameters(ParameterHandler &prm) override
void save(std::map< std::string, std::string > &status_strings) const override
void serialize(Archive &ar, const unsigned int version)
static void declare_parameters(ParameterHandler &prm)
std::vector< Point< dim > > satellite_positions_cartesian