Presentation¶
The Tolosa computational software is developed around the Tolosa-lib library to numerically solve PDE on unstructured meshes in a CPU MPI parallel environment. It is used to derive numerical resolution of some models in other repertories using the git submodule feature.
Every Tolosa model is developped around Tolosa-lib. This library contains a set of tools, structures, and variables to ease the development of numerically resolved models. Therefore, Tolosa-lib is not a model.
Note
Still, a set of simple examples have been developped around this library and can be read and run. See Run a Tolosa-lib example.
Tolosa-lib manages a number of features:
- A Mesh structure
type(msh)
and routines to:- load 2D unstructured meshes in gmsh format (triangle, quadrangle, or mixed).
- or generate structured meshes in an unstructured view.
- generate mesh partitionning to use MPI for parallel computation using the Scotch library.
- generate all MPI subdomain local connectivities, including the boundaries with periodic possibility, with special attention on spatial and temporal localities to maximize computational efficiency when performing loops on the 3 basic geometrical elements of a mesh: the nodes, the cells and the edges.
- A Structure
type(cli)
to manage arguments such passing a default value, loading them in a text file, or overriding the same arguments at the command line interface (example:./exe -nx 1000 -ny 100 -ts 1.
). - A Structure
type(yaml_file)
to read and write YAML files in order to read complex configuration files. - A Stucture
type(vec2d)
for vectors and a structuretype(tens2d)
for tensors in order to enhance numerical implementation facilities and lisibility. - A Structure
type(timer)
to track the computational times in routines. - Passing a mesh according to the structure
type(msh)
and some fields associated, some structures to write genetically:type(VTK_file)
for VTK format in ASCII or binary format.type(Tecplot_file)
Tecplot format in ASCII or binary format.
Note
The library has been developed largely on the basis of what can be found as open and free software addressing some problems in Fortran: