Canoe
Comprehensive Atmosphere N' Ocean Engine
gnomonic_equiangle.hpp
Go to the documentation of this file.
1 #ifndef SRC_EXO3_GNOMONIC_EQUIANGLE_HPP_
2 #define SRC_EXO3_GNOMONIC_EQUIANGLE_HPP_
3 
4 // athena
5 #include <athena/athena.hpp>
6 #include <athena/coordinates/coordinates.hpp>
7 
8 class MeshBlock;
9 class ParameterInput;
10 
12  public:
13  GnomonicEquiangle(MeshBlock *pmb, ParameterInput *pin, bool flag);
14  void Face1Area(const int k, const int j, const int il, const int iu,
15  AthenaArray<Real> &area) final;
16  void Face2Area(const int k, const int j, const int il, const int iu,
17  AthenaArray<Real> &area) final;
18  void Face3Area(const int k, const int j, const int il, const int iu,
19  AthenaArray<Real> &area) final;
20 
21  Real GetFace1Area(const int k, const int j, const int i) final;
22  Real GetFace2Area(const int k, const int j, const int i) final;
23  Real GetFace3Area(const int k, const int j, const int i) final;
24 
25  void VolCenterFace1Area(const int k, const int j, const int il, const int iu,
26  AthenaArray<Real> &area) final;
27  void VolCenterFace2Area(const int k, const int j, const int il, const int iu,
28  AthenaArray<Real> &area) final;
29  void VolCenterFace3Area(const int k, const int j, const int il, const int iu,
30  AthenaArray<Real> &area) final;
31  void CellVolume(const int k, const int j, const int il, const int iu,
32  AthenaArray<Real> &vol);
33  Real GetCellVolume(const int k, const int j, const int i);
34 
35  void CenterWidth1(const int k, const int j, const int il, const int iu,
36  AthenaArray<Real> &dx1);
37  void CenterWidth2(const int k, const int j, const int il, const int iu,
38  AthenaArray<Real> &dx2);
39  void CenterWidth3(const int k, const int j, const int il, const int iu,
40  AthenaArray<Real> &dx3);
41 
42  void CellMetric(const int k, const int j, const int il, const int iu,
44  void Face1Metric(const int k, const int j, const int il, const int iu,
46  void Face2Metric(const int k, const int j, const int il, const int iu,
48  void Face3Metric(const int k, const int j, const int il, const int iu,
50 
51  void PrimToLocal2(const int k, const int j, const int il, const int iu,
52  const AthenaArray<Real> &b1_vals,
53  AthenaArray<Real> &prim_left, AthenaArray<Real> &prim_right,
54  AthenaArray<Real> &bx);
55  void PrimToLocal3(const int k, const int j, const int il, const int iu,
56  const AthenaArray<Real> &b1_vals,
57  AthenaArray<Real> &prim_left, AthenaArray<Real> &prim_right,
58  AthenaArray<Real> &bx);
59 
60  void FluxToGlobal2(const int k, const int j, const int il, const int iu,
61  const AthenaArray<Real> &cons,
62  const AthenaArray<Real> &bbx, AthenaArray<Real> &flux,
64  void FluxToGlobal3(const int k, const int j, const int il, const int iu,
65  const AthenaArray<Real> &cons,
66  const AthenaArray<Real> &bbx, AthenaArray<Real> &flux,
68  void AddCoordTermsDivergence(const Real dt, const AthenaArray<Real> *flux,
69  const AthenaArray<Real> &prim,
70  const AthenaArray<Real> &bcc,
72 };
73 
74 #endif // SRC_EXO3_GNOMONIC_EQUIANGLE_HPP_
void PrimToLocal2(const int k, const int j, const int il, const int iu, const AthenaArray< Real > &b1_vals, AthenaArray< Real > &prim_left, AthenaArray< Real > &prim_right, AthenaArray< Real > &bx)
void Face3Metric(const int k, const int j, const int il, const int iu, AthenaArray< Real > &g, AthenaArray< Real > &g_inv)
void Face2Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
Real GetFace2Area(const int k, const int j, const int i) final
void FluxToGlobal3(const int k, const int j, const int il, const int iu, const AthenaArray< Real > &cons, const AthenaArray< Real > &bbx, AthenaArray< Real > &flux, AthenaArray< Real > &ey, AthenaArray< Real > &ez)
Real GetCellVolume(const int k, const int j, const int i)
void FluxToGlobal2(const int k, const int j, const int il, const int iu, const AthenaArray< Real > &cons, const AthenaArray< Real > &bbx, AthenaArray< Real > &flux, AthenaArray< Real > &ey, AthenaArray< Real > &ez)
void VolCenterFace3Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
void VolCenterFace2Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
Real GetFace3Area(const int k, const int j, const int i) final
void PrimToLocal3(const int k, const int j, const int il, const int iu, const AthenaArray< Real > &b1_vals, AthenaArray< Real > &prim_left, AthenaArray< Real > &prim_right, AthenaArray< Real > &bx)
void AddCoordTermsDivergence(const Real dt, const AthenaArray< Real > *flux, const AthenaArray< Real > &prim, const AthenaArray< Real > &bcc, AthenaArray< Real > &u)
void Face2Metric(const int k, const int j, const int il, const int iu, AthenaArray< Real > &g, AthenaArray< Real > &g_inv)
void VolCenterFace1Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
void Face1Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
Real GetFace1Area(const int k, const int j, const int i) final
void CenterWidth2(const int k, const int j, const int il, const int iu, AthenaArray< Real > &dx2)
void CenterWidth3(const int k, const int j, const int il, const int iu, AthenaArray< Real > &dx3)
void CellMetric(const int k, const int j, const int il, const int iu, AthenaArray< Real > &g, AthenaArray< Real > &g_inv)
void Face1Metric(const int k, const int j, const int il, const int iu, AthenaArray< Real > &g, AthenaArray< Real > &g_inv)
void Face3Area(const int k, const int j, const int il, const int iu, AthenaArray< Real > &area) final
void CenterWidth1(const int k, const int j, const int il, const int iu, AthenaArray< Real > &dx1)
GnomonicEquiangle(MeshBlock *pmb, ParameterInput *pin, bool flag)
void CellVolume(const int k, const int j, const int il, const int iu, AthenaArray< Real > &vol)