Classement des biefs
Les noms des nœuds permettent de décrire l’enchaînement des biefs. La position d’un bief dans le réseau est entièrement définie par la connaissance des noms des nœuds amont et aval. On fixe ainsi en même temps le sens de l’écoulement. On décrit ainsi simplement la topologie du réseau qui est donc représenté sous la forme d’un graphe orienté. Les nœuds sont les sommets et les biefs sont les arcs de ce graphe. Ils sont numérotés automatiquement par le programme en fonction de l’ordre dans lequel ils sont introduits dans le fichier de données.
Un écoulement fluvial étant régi par l’aval, le calcul d’une ligne d’eau s’effectue en remontant l’écoulement, de l’aval vers l’amont. Afin de démarrer le calcul, il faut donc disposer d’une relation reliant la cote et le débit à la condition limite aval.
Un réseau hydraulique peut être représenté par un graphe orienté connexe sans circuit, sur lequel on effectue un parcours à l’aide de l’algorithme suivant :
On cherche un sommet sur lequel n’arrive aucun arc et d’où il ne part qu’un seul arc. On sélectionne ce dernier dans une liste puis on le supprime du graphe. On applique récursivement le procédé sur le sous graphe obtenu tant qu’il existe des sommets ainsi définis. Ensuite soit le problème est terminé, soit il reste des arcs non récupérés. Dans ce cas, on cherche dans le sous-graphe restant un sommet sur lequel n’arrive aucun arc et d’où il part plus d’un arc. On sélectionne ces derniers, puis on les supprime du graphe et on applique récursivement le procédé sur le sous-graphe obtenu tant qu’il existe des sommets ainsi définis. Ensuite soit le problème est terminé, soit il reste des arcs non récupérés. Dans ce cas, on recommence sur le sous-graphe restant l’algorithme depuis le début.
En lisant à l’envers la liste des arcs ainsi obtenue, on trouve une relation d’ordre partiel satisfaisante (Remarque : seuls les nœuds amont de biefs sont concernés par cet algorithme). De la liste, on tire également le repérage des biefs de maille. Ces biefs sont groupés en commençant par la première diffluence (les deux premiers biefs successifs ayant le même nœud amont). Si le modèle a plusieurs conditions aval en cote, alors tous les biefs suivant la première diffluence de la liste appartiennent à la maille. Si, en revanche, la maille se referme, elle s’arrête à la dernière confluence (le dernier bief ayant le même nœud aval qu’un autre bief situé dans la liste et localisé après le début de la maille).
Appliquons le 1er critère :
Le premier sommet sur lequel n’arrive aucun arc et d’où il ne part qu’un seul arc est le sommet DAM. On retient le bief [1] dans la liste et on le supprime du graphe.
On a alors :
- DAM
[1] - DC1 [2] [4]
[-1] - DC2 [3] [6] [-2]
- FC1 [5] [-4]
- FC2 [-5]
- FC3 [-6]
- Liste : [1]
On ne peut plus trouver de nœud étant nœud amont d’un unique bief. On cherche alors un nœud n’ayant jamais été nœud aval, mais étant nœud amont de plusieurs biefs. Le nœud DC1 vérifie ces conditions. Les biefs 2 et 4 sont alors ajoutés à la liste :
- DC1
[2][4][-1] - DC2 [3] [6]
[-2] - FC1 [5]
[-4] - Liste : [1], [2], [4]
Le même algorithme est appliqué à nouveau. On obtient ainsi le nœud DC2 et les biefs 3 et 6 sont ajoutés à la liste.
- DC2
[3][6][-2] - FC1 [5]
[-4] - Liste : [1], [2], [4], [3], [6]
Il n’existe plus de nœud ayant deux biefs aval. On applique alors le premier algorithme. On obtient ainsi le nœud FC1, et le bief 5 est ajouté à la liste.
- Liste : [1], [2], [4], [3], [6], [5]
La maille commence à partir du premier nœud de diffluence (biefs 2 et 4, nœud DC1). Tous les biefs suivants appartiennent à la maille, car cette maille n’est pas fermée (il existe plusieurs conditions limite aval).