Personal tools
You are here: Home Description Description of H2D2

Description of H2D2


H2D2 is a scientific software based on the finite element method. In its present form, it enables solving the following equations:

  • The shallow water equations (St. Venant), vertically integrated, with drying-wetting banks. These equations are well suited for rivers and estuaries, for stationary or time variant problems.
  • The advection-diffusion equations with different kinetics:

- Conservative contaminant,

- Colibacteria,

- Heavy metals,

- Suspended matter,

- Water age,

- Water temperature,

  • Bottom sediment transport.

The different equations can be combined in a sequence, allowing for complex problems to be solved. Even more, in a sequence, each member can have its own resolution strategy.

H2D2 is a program in the sense that it does not have a graphic user interface. It is mostly used in a batch processing mode with a command file, but can also be used in an interactive mode for lighter tasks. The command language is Object-Oriented, inspired from Python. It possesses some programming construct but it is not a full-fledged programming language.

Relying on well-established third party libraries like MPI, PtScotch, MUMPS, SuperLU, H2D2 can run on distributed memory cluster and on shared memory computing nodes. Depending on the licence type of a particular library and the type of use, it will be the responsibility of the final user to acquire the licences accordingly with its use.

H2D2 software architecture is modular and extendable, making extensive use of plug-in, and allows for extensions. The structure is Object-Oriented.

H2D2 is mainly written in FORTRAN-77, a procedural language, with some low-level sections in C/C++. It has been compiled and run on different OS (Windows, Unix/Linux), platform, architecture (32/64 bits), with different compilers (gcc, intel, sun). It should be easily portable to a new platform.

The command file

Roughly, the commands can be subdivided in 4 working groups:

  1. Mesh definition: this group includes mesh partitioning, node and element renumbering and the mesh definition;
  2. Simulation data definition: this group allows to define all the data relevant to the problem to be solved: global data, nodal values, boundary conditions, etc...;
  3. Solver definition: this group includes the resolution definition and the resolution itself;
  4. Post-treatment: this group includes all the post-treatments (treatments applied on secondary information).

To these, one has to add the key words of the language and some management functions like logging.

  1. Mesh definition:

The goal of this step is to build a finite element mesh object. The ‘coordinate’ and ‘element’ objects are created with their corresponding data files. Here one has to decide if the mesh (and so the computation) is partitioned on more than one computational node and/or renumbered.

  1. Simulation data definition:

The goal of this second step is to define all the properties, parameters necessary to build the simulation: the global properties, the nodal properties, the elemental properties, the sollicitations, the boundary conditions and the degrees of freedom (unknowns). One has then to assemble them in the global simulation data object.

  1. Solver definition:

In this third part, one defines the sequence of the problem to solve as well as the resolution strategy. Once all the aspects are created, solving is a matter of combining a strategy to a sequence.

  1. Post-treatment:

The goal of this last step is to analyse the solution, in terms of residuum, approximation errors, etc. and to extract derived variables like discharges, depth, Froude numbers, etc.

Chapitre: contenu_description_en ( 2 / 3 )

Document Actions