12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #ifndef GEOMETRY_HPP
- #define GEOMETRY_HPP
- #include <iostream>
- #include <limits>
- using namespace std;
- using Func = double (*)(double);
- extern double inf;
- //! The Geometry class contains all geometric parameters of the domain.
- class Geometry{
- public:
- //! Geometry constructor
- Geometry(double lX,size_t nX,size_t nZ,Func hsoil,Func dhsoil,Func hbot,Func dhbot);
-
- //! Horizontal length of the domain
- double lX;
- //! Number of horizontal steps
- size_t nX;
- //! Horizontal step
- double dX;
- //! Level of the soil depending on X, e.g, hsoil[k]=level of the soil at X=k*dX.
- //! Vector of size nX.
- double* hsoil;
- //! Derivative of the soil depending on X, vector of size nX.
- double* dhsoil;
- //! Level of the bottom depending on X, e.g, hbot[k]=level of the bottom at X=k*dX.
- //! Vector of size nX.
- double* hbot;
- //! Derivative of the bottom depending on X, vector of size nX.
- double* dhbot;
- //! Number of vertical step at a given X, vector of size nX.
- size_t* nZ;
-
- //! Vertical step at a given X, vector of size nX.
- double* dZ;
- //! Vertical considered positions at a given X, vector of vectors of size nX. For each k, Z[k] is a vector of size nZ[k]
- double** Z;
-
- };
- #endif
|