-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathaether.h
More file actions
142 lines (101 loc) · 3.11 KB
/
Copy pathaether.h
File metadata and controls
142 lines (101 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// Copyright 2020, the Aether Development Team (see doc/dev_team.md for members)
// Full license can be found in License.md
#ifndef INCLUDE_AETHER_H_
#define INCLUDE_AETHER_H_
/// The armadillo library is to allow the use of 3d cubes and other
/// array types, with array math built in. This eliminates loops!
#include <armadillo>
/// This is used for timing and the random seed generator:
#include <chrono>
/// This is for generating random numbers:
#include <random>
//This is to look into bits for flagging nans and infs
#include <cstdint>
// Types
// Precision compile-time aliasing
#ifdef AETHER_USE_PRECISION_DOUBLE
/// Precision type chosen to be `double` through `AETHER_USE_PRECISION_DOUBLE`
using precision_t = double;
#else
/// Precision type compile-time default to float.
using precision_t = float;
#endif
/// Armadillo type vector (single column) with compile-time precision.
using arma_vec = arma::Col<precision_t>;
/// Armadillo type matrix (two dimension) with compile-time precision.
using arma_mat = arma::Mat<precision_t>;
/// Armadillo type cube (three dimension) with compile-time precision.
using arma_cube = arma::Cube<precision_t>;
#include <nlohmann/json.hpp>
using json = nlohmann::json;
// This is for manipulating IO
#include <iomanip>
// This is for manipulating strings
#include <sstream>
// Contains all information about time in the code and wall time:
#include "times.h"
// Contains a reporting system for the model include verbose level and timing:
#include "report.h"
// not done
#include "inputs.h"
// Defines physical and conversion constants
#include "constants.h"
// Needs to be eliminated (but not right now!)
#include "sizes.h"
// These are functions that convert time between different systems.
#include "time_conversion.h"
// Functions that assist in the reading of files.
#include "file_input.h"
// A class for keeping track of indices (1d vectors w/time)
#include "indices.h"
// Read indices (f107, omni) file types
#include "read_indices_files.h"
// A class for keeping track of all of the planetary characteristics
#include "planets.h"
// not done
#include "cubesphere.h"
#include "sphere.h"
#include "quadtree.h"
// not done
#include "grid.h"
// Contains the neutral states and derived quantities
#include "neutrals.h"
// not done
#include "ions.h"
// not done
#include "bfield.h"
// Contains the electrodynamic states (potential and aurora)
#include "electrodynamics.h"
// not done
#include "aurora.h"
// Defines the Extreme Ultraviolet radiation above the atmosphere
#include "euv.h"
// Contains the collision frequency calculation
#include "collisions.h"
// not done
#include "calc_euv.h"
// not done
#include "chemistry.h"
// Reads collision frequency from csv table
#include "read_collision_file.h"
// not done
#include "output.h"
//not done
#include "logfile.h"
// not done
#include "advance.h"
// not done
#include "solvers.h"
// not done
#include "tools.h"
// not done
#include "transform.h"
// not done
#include "calc_grid_derived.h"
// not done
#include "parallel.h"
// not done
#include "calc_momentum_friction.h"
// not commented
#include "external_msis.h"
#endif // INCLUDE_AETHER_H_