... | ... | @@ -125,11 +125,11 @@ The code of the class **ClassName** is usually dispatched between a header file |
|
|
Utilities are in the *utils* directory.
|
|
|
|
|
|
## Main classes
|
|
|
In order inportance, which is subjective.
|
|
|
In order importance, which is subjective.
|
|
|
|
|
|
### [ScalarField](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1ScalarField.html).
|
|
|
### [ScalarField](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1ScalarField.html)
|
|
|
|
|
|
The most part of the program is spent manipulating **ScalarField** instances. A scalar field is basically a 3D field of continuous floating point data organized on a grid with as `[nr radial][ni layer][ns sector]` (if we use $`nr*ni*ns`$ grids) dispatched other an MPI communicator. 2D fields are just flat 3D fields ($`ni \equal 1`$).
|
|
|
The most part of the program is spent manipulating **ScalarField** instances. A scalar field is basically a 3D field of continuous floating point data organized on a grid with as `[nr radial][ni layer][ns sector]` (if we use $`nr*ni*ns`$ grids) dispatched other an MPI communicator. 2D fields are just flat 3D fields ($`ni == 1`$).
|
|
|
This object store the data as a [std::valarray<double>](http://www.cplusplus.com/reference/valarray/) object field, but also export it as an old fashioned C pointer[^3].
|
|
|
|
|
|
**ScalarField** are use to represent any kind of gas properties like density, energy, temperature etc..
|
... | ... | @@ -140,6 +140,21 @@ Used to represent think la velocities, they are mostly a triplet of **[ScalarFie |
|
|
|
|
|
## [Disk](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1Disk.html)
|
|
|
|
|
|
A **Disk** object represent the state of the system. It keep track of the gas state through a set of **ScalarField**s representing the density, energy, temperature, velocity etc... of the gas.
|
|
|
|
|
|
Part of this description is optional and will only exists if required by the physic considered in a given simulation.
|
|
|
|
|
|
## [PlanetarySystem](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1PlanetarySystem.html)
|
|
|
|
|
|
## [DiskPhysic](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1DiskPhysic.html)
|
|
|
|
|
|
This is a read only object representing the physical caracteristic of the simulation. There is typically only one instance in the whole program (since all the actors are considering the same physic... for now).
|
|
|
It mimic quite closely the configuration file provided by the user.
|
|
|
|
|
|
## [Simulation](https://disc.pages.oca.eu/fargOCA/public/doxy/classfargOCA_1_1Simulation.html)
|
|
|
|
|
|
This is the "engine" of the simulation.
|
|
|
|
|
|
The disk geometry and physic configuration are described through a set of classes that are almost (almost) a [Singleton](https://en.wikipedia.org/wiki/Singleton_pattern) (because we do not need many of them). All object that need to have access to those information do so by referencing the appropriate instances.
|
|
|
|
|
|
The "almost" is important, as in the mid/long term, it will allow close to trivial implementation of multi-grid decomposition by providing one instance by sub-domain.
|
... | ... | |