
/**

@namespace sofa
@brief Main SOFA namespace


@namespace sofa::helper
@brief Utility helper classes that we need, but that are not the core of the
plateform.


@namespace sofa::helper::io
@brief Image and Mesh I/O.


@namespace sofa::helper::gl
@brief GL drawing helper classes, no actual visual models.


@namespace sofa::helper::system
@brief OS-specific classes


@namespace sofa::helper::system::thread
@brief Portable multithreading helper classes (thread, mutex, ...).


@namespace sofa::defaulttype
@brief Default data types for the most common cases (1D/2D/3D vectors, rigid frames).

Users can define other types, but it is best to try to use these when
applicable, as many components are already instanciated with them.  It is
however not a requirement (nothing prevents a user to define his own Vec3 class
for instance).


@namespace sofa::core
@brief Base standardized classes.

Classes in the root sofa::core namespace define the 'high-level' sofa models.


@namespace sofa::core::objectmodel
@brief SOFA Object Model.

Specifies how generic objects and context are handled, as well as the basic
functionnalities of all objects (name, fields, ...).


@namespace sofa::core::componentmodel
@brief SOFA Component Model.

A composent is defined as an object with a specific role in a Sofa simulation.


@namespace sofa::core::behavior
@brief Abstract API of components related to the behavior of simulated objects.

Simulated bodies in SOFA are split into components storing the current state
(MechanicalState), handling mass properties (Mass), computing forces
(ForceField) and constraints (Constraint), and managing the integration
algorithm (AnimationLoop, OdeSolver).

Depending on the solvers used, two modes of computations are used :

- <i>vector</i> mode : computations are done directly in the vectors stored in
  MechanicalState (used for explicit schemes or iterative solvers such as
  conjugate gradient).

- <i>matrix</i> mode : matrices corresponding to the mechanical system of
  equations are constructed, and then inversed to compute the new state.

Not all components support the matrix mode of computation, as it is rather
new and not yet finalized.


@namespace sofa::core::collision
@brief Abstract API of components related to collision handling.


@namespace sofa::core::topology
@brief Abstract API of components related to topologies.


@namespace sofa::component
@brief Implementation of components.


@namespace sofa::simulation
@brief Simulation data structure and scheduling (scene-graph, multithread support).


@namespace sofa::simulation::tree
@brief Default implementation of the simulation data structure using a tree.
sa sofa::simulation::graph


@namespace sofa::simulation::graph
@brief New implementation of the simulation data structure using a directed acyclic graph.
This is necessary for nodes with multiple parents and MultiMappings.


@namespace sofa::simulation::xml
@brief XML I/O classes.

*/
