Arcane provides a set of basic types, corresponding either to an existing C++ type (such as int, double) or to a class (such as Real2). These types are used for all common operations as well as for variables. For example, when you want to declare an integer, you must use Integer instead of int or long. This allows you to change the size of these types (for example, using 8-byte integers instead of 4) without modifying the source code.
The basic types are:
| Class Name | Specification Mapping |
| Integer | 32-bit signed integer |
| Int16 | 16-bit signed integer |
| Int32 | 32-bit signed integer |
| Int64 | 64-bit signed integer |
| Byte | represents an 8-bit character |
| Real | IEEE 754 real |
| Real2 | 2D coordinate, vector of two reals |
| Real3 | 3D coordinate, vector of three reals |
| Real2x2 | 2D tensor, vector of four reals |
| Real3x3 | 3D tensor, vector of nine reals |
| String | UTF-8 formatted character string |
The floats (Real, Real2, Real2x2, Real3, Real3x3) use double-precision IEEE 754 reals and are stored in 8 bytes.
There are 4 types of basic entities in a mesh: nodes, edges, faces, and cells. Each of these types corresponds to a C++ class in Arcane. For each entity type, there is a group type that manages a set of entities of that type. The class that manages a group of an entity is named after the entity with the suffix Group. For example, for nodes, this is NodeGroup.
| Class Name | Specification Mapping |
| Node | a node |
| Cell | a cell |
| Face | a 3D face, a 2D edge |
| Edge | a 3D edge |
| Particle | a particle |
| DoF | a degree of freedom |
| NodeGroup | a group of nodes |
| CellGroup | a group of cells |
| FaceGroup | a group of faces |
| EdgeGroup | a group of edges |
| ParticleGroup | a group of particles |
| DoFGroup | a group of degrees of freedom |
Each mesh entity corresponds to an instance of a class. For example, if the mesh contains 15 cells, there are 15 instances of the Cell type. Each class provides a certain number of operations allowing instances to be linked together. For example, the Cell::node(Int32) method of the Cell class allows you to retrieve the i-th node of this cell. Similarly, the Cell::nbNode() method allows you to retrieve the number of nodes in the cell. For more information on the supported operations, you need to refer to the online documentation of the corresponding classes (Node, Edge, Face, Cell, Particle, DoF).