Arcane is a development environment for parallel numerical calculation codes. It supports the architectural aspects of a calculation code such as data structures for the mesh, parallelism, but also aspects more related to the environment, such as dataset configuration.
Arcane can be used in two ways:
The installation procedure is described here
The public API of Arcane contains the following header directories:
Arcane uses the following components of Arccore. They usually do not need to be included directly by the user:
The other directories are considered internal to Arcane and should not be used.
A simulation code, whatever it may be, can be seen as a system that takes certain values as input and provides output values by performing operations. Since it is impossible to handle all types of simulation codes, Arcane is restricted to calculation codes having the following properties:
Each of the terms described above has its own terminology in Arcane:
In general, a simulation code can be decomposed into several distinct parts. For example, the numerical calculation itself and the part performing outputs for post-processing. Similarly, a code can use multiple physics: hydrodynamics, thermal, ... To ensure the modularity of a code, Arcane provides what is called a module which groups all the entry points and variables corresponding to a given part of the code.
Finally, modules often need to leverage certain functionalities. For example, a thermal module and a hydrodynamic module may want to use the same numerical scheme. To ensure code capitalization, Arcane provides what is called a service
The 4 concepts described above (entry point, variable, module, and service) are the basic concepts of Arcane. They are described in more detail in the document Fundamental Types. Nevertheless, before seeing in more detail how these three objects work, one must know the basic concepts presented in the chapters of this document.