Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
What is Arcane?

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 framework mode. This is the classic mode in which Arcane manages all the elements of a calculation code. This mode is described in chapter Usage in a Simulation Code. In this mode, Arcane automatically manages the calculation initialization, the time loop, the post-processing, and the safeguards/recovery.
  • the standalone mode. In this mode, Arcane is used as a simple library offering functionalities for parallelism, mesh management, or accelerator management. This mode is described in chapter Direct Execution Launch

Installation

The installation procedure is described here

Public API

The public API of Arcane contains the following header directories:

arcane/utils
arcane/core/*
arcane/geometry
arcane/accelerator/core
arcane/accelerator
arcane/launcher
arcane/materials
arcane/hdf5
arcane/cartesianmesh

Arcane uses the following components of Arccore. They usually do not need to be included directly by the user:

arccore/base
arccore/collections
arccore/concurrency
arccore/message_passing
arccore/serialize
arccore/trace

The other directories are considered internal to Arcane and should not be used.

Usage in a Simulation Code

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:

  • the execution flow can be described as a repetition of a sequence of operations, each execution of the sequence of operations being called an iteration;
  • The simulation domain is discretized in space into a set of elements, the mesh. This mesh can be 1D, 2D, or 3D. A mesh consists of at most four types of elements: nodes, edges, faces, and cells. The values manipulated by the code are based on one of these element types.

Each of the terms described above has its own terminology in Arcane:

  • a code operation is called an entry point.
  • The description of the sequence of operations is called the time loop
  • the manipulated values are called variables. For example, temperature and pressure are variables.

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.