/*! \page MEDCouplingUMeshPage Unstructured mesh An unstructured mesh in \ref medcoupling MEDCoupling is defined by : - a point cloud where the explicit coordinates of each point must be specified (inherited from \ref MEDCouplingPointSetPage "MEDCouplingPointSet class"). - nodal connectivity that specifies for each cell, the points in the previous point cloud that constitutes the cell. As unstructured mesh is dynamically defined enough, this class is also used by MEDCoupling to instantiate degenerated meshes as : - point cloud only meshes. This type of mesh will have mesh dimension 0. - abstract meshes containing only one cell that covers a potentially infinite space. This abstract mesh is used as support of fields containing only one integrated value. This is typically used to represent fields used by system code. This type of mesh will have mesh dimension equal to -1. The norm used for cells connectivity of different types, is the same as specified in MED file except that connectivities are represented in \b C \b format and \b not \b in \b FORTRAN \b format ! The class that incarnates the described concept is : ParaMEDMEM::MEDCouplingUMesh. \n This class inherits from ParaMEDMEM::MEDCouplingPointSet abstract class. \n So \ref MEDCouplingUMeshPage "MEDCouplingUMesh" inherits from all \ref MEDCouplingPointSetPage "point set features". \section MEDCouplingUMeshStdBuild Standard building of an unstructured mesh from scratch The described method here is called standard, because no special knowledge of underneath nodal connectivity is needed here. This method of building unstructured mesh is easiest but not the most CPU/memory efficient one. All of examples given here make the assumption that the \ref ParaMEDMEM "ParaMEDMEM namespace" is visible ( by calling for example \c using \c namespace \c ParaMEDMEM; ). Here we will create a mesh with spacedim==3 and meshdim==2. \b mesh contains 5 cells (with geometric type INTERP_KERNEL::NORM_TRI3, INTERP_KERNEL::NORM_QUAD4) and 9 nodes. You can notice that it is possible to mix cell types as long as the dimension of the cell is exactly equal to meshDim to respect \ref MEDCouplingMeshes "this rule". \ref medcouplingcppexamplesUmeshStdBuild1 "Here is the C++ implementation." \ref medcouplingpyexamplesUmeshStdBuild1 "Here is the Python implementation." \section MEDCouplingUMeshNodalConnectivity How MEDCouplingUMesh stores its nodal connectivity \ref ParaMEDMEM::MEDCouplingUMesh "MEDCouplingUMesh class" stores its nodal connectivity into 2 arrays. - The first one, the biggest is ParaMEDMEM::MEDCouplingUMesh::_nodal_connectivity. - The second one, the less big is ParaMEDMEM::MEDCouplingUMesh::_nodal_connectivity_index. \image html MEDCouplingUMeshConn.png "Nodal connectivity storage into MEDCouplingUMesh class" \image latex MEDCouplingUMeshConn.eps "Nodal connectivity storage into MEDCouplingUMesh class" \note The last value of the nodal connectivity index points to an invalid memory place. It is not an error, simply as for standard C++, all ranges are given in format [\b begin,\b end) where \b begin is included and \b end excluded. \section MEDCouplingUMeshAdvBuild Advanced building of an unstructured mesh from scratch Here we are going to build the mesh in a more advanced manner. This method expects that the user knows the storage format underlying ParaMEDMEM::MEDCouplingUMesh. The same mesh than \ref MEDCouplingUMeshStdBuild "in the standard section above" is going to be implemented using advanced method. \ref medcouplingcppexamplesUmeshAdvBuild1 "Here the C++ implementation." \ref medcouplingpyexamplesUmeshAdvBuild1 "Here the Python implementation." */