Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Basic Structures and Types

Basic Types

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 NameSpecification 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.

Mesh Entities

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 NameSpecification 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
Note
The faces (Face) are the N-1 dimensional entities where N is the dimension of the cell. In dimension 2, faces therefore correspond to edges, and in dimension 3 to the faces of a polyhedra. This allows numerical algorithms to traverse the mesh regardless of its dimension. The edge entity (Edge) only exists for 3D meshes and then corresponds to an edge.

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).