Différences entre versions de « MORA »

De POLR
Sauter à la navigation Sauter à la recherche
 
(19 versions intermédiaires par un autre utilisateur non affichées)
Ligne 8 : Ligne 8 :
 
'''''Modélisation océanographique régionale appliquée'''''
 
'''''Modélisation océanographique régionale appliquée'''''
  
Cette page vise à intégrer un survol de l'ensemble des informations nécessaires pour produire et analyser une simulation océanique régionale sur la grappe de calcul Mingan.
+
Cette page survole l'ensemble des informations nécessaires pour produire et analyser une simulation océanique régionale sur la grappe de calcul Mingan.
  
 
== Système d’exploitation ==
 
== Système d’exploitation ==
Ligne 14 : Ligne 14 :
 
La grappe de calcul [[:Category:Mingan | Mingan ]] ainsi que les terminaux pour y accéder ont un système d’exploitation Linux.
 
La grappe de calcul [[:Category:Mingan | Mingan ]] ainsi que les terminaux pour y accéder ont un système d’exploitation Linux.
 
Une formation de base peut être trouvée [[Introduction_au_système_d%27exploitation_UNIX/LINUX | ici]].
 
Une formation de base peut être trouvée [[Introduction_au_système_d%27exploitation_UNIX/LINUX | ici]].
 
==Codes sources==
 
Un code source est un ensemble d’instruction liée à un langage de programmation.
 
===Documentation du code et bonne pratique de programmation===
 
Quel que soit le langage utilisé (Fortran, C, MAtlab ou autre), la documentation du code, en plus d'utiliser des gabarits et suivre de bonnes pratiques de programmation, facilitera les usages subséquents de ce code. 
 
==== Maltab ====
 
[[Guide_des_bonnes_pratiques_de_codage_Matlab | Guide des bonnes pratiques de codage Matlab]]
 
 
===Gestion de codes sources===
 
Au POLR, la gestion des codes sources est faite à l'aide de SVN ou GIT. Des introductions aux concepts ainsi qu'une formation de base sont disponibles pour [https://dev.nozav.org/intro_svn.html SVN], de même que pour [https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git GIT].
 
  
 
== Langage de programmation ==
 
== Langage de programmation ==
Chaque langage de programmation utilise une structure et une syntaxe qui lui est propre. Certains langages devront être compilés (Fortran, C, etc.) et d'autres sont interprétés (MAtlab, Python, etc.). Il est divisé en plusieurs catégories: programme, sous-routine, fonction, module et autres.
+
Chaque langage de programmation utilise une structure et une syntaxe qui lui est propre. Certains langages devront être compilés (Fortran, C, etc.) et d'autres sont interprétés (Matlab, Python, etc.). Il est divisé en plusieurs catégories: programme, sous-routine, fonction, module et autres.
 
=== Compilé ===
 
=== Compilé ===
 
Les langages compilés sont plus performants que les langages interprétés. Les instructions sont compilées par un compilateur en instruction compréhensible par les processeurs. Ils peuvent exécuter des tâches nécessitant BEAUCOUP de calcul.  
 
Les langages compilés sont plus performants que les langages interprétés. Les instructions sont compilées par un compilateur en instruction compréhensible par les processeurs. Ils peuvent exécuter des tâches nécessitant BEAUCOUP de calcul.  
 
==== Fortran ====
 
==== Fortran ====
Certains sites offrent des formations en Fortran comme [https://fortran.developpez.com/cours/hunsinger-cours-complet/ celui-ci]. Il existe aussi des [https://www.math.u-bordeaux.fr/~lmieusse/PAGE_WEB/ENSEIGNEMENT/correction_tp_f90.pdf exercices] de base afin de bien comprendre les concepts.
+
Des sites externes offrent des formations en Fortran (par exemple [https://fortran.developpez.com/cours/hunsinger-cours-complet/ celui-ci]. Certains sites offrent également des [http://cregut.perso.enseeiht.fr/ENS/2012-apad-algo1/algo1-apad-2012-s1-serie2__Algo-F-corrige.pdf exercices] de base afin de bien comprendre les concepts. Ces sites vous sont proposés à titre d'exemple.
  
 
Sur la grappe de Mingan, nous disposons de deux compilateurs Fortran qui peuvent être utilisés: ''gfortran'' et ''ifort'' de Intel.
 
Sur la grappe de Mingan, nous disposons de deux compilateurs Fortran qui peuvent être utilisés: ''gfortran'' et ''ifort'' de Intel.
Ligne 38 : Ligne 28 :
 
==== Matlab ====
 
==== Matlab ====
 
C'est en "matlabant" qu'un devient "Matlabeur"! Tapez ''demo'' à votre première ouverture de Matlab. Vous aurez ainsi une grande gamme des possibilités offertes par Matlab. La communauté qui l'utilise est vaste, servez-vous-en.
 
C'est en "matlabant" qu'un devient "Matlabeur"! Tapez ''demo'' à votre première ouverture de Matlab. Vous aurez ainsi une grande gamme des possibilités offertes par Matlab. La communauté qui l'utilise est vaste, servez-vous-en.
 +
==== Python ====
 +
C'est en "pythonant" qu'on devient "Pythoneur" ! Remarquez l'absence du mot '''labeur''' dans "Pythoneur".
 +
 +
==Codes sources==
 +
Un code source est un ensemble d’instruction liée à un langage de programmation.
 +
===Documentation du code et bonne pratique de programmation===
 +
Quel que soit le langage utilisé (Fortran, C, MAtlab ou autre), la documentation du code, en plus d'utiliser des gabarits et suivre de bonnes pratiques de programmation, facilitera les usages subséquents de ce code. 
 +
==== Maltab ====
 +
[[Guide_des_bonnes_pratiques_de_codage_Matlab | Guide des bonnes pratiques de codage Matlab]]
 +
===Gestion de codes sources===
 +
Au POLR, la gestion des codes sources est faite à l'aide de SVN ou GIT. Des introductions aux concepts ainsi qu'une formation de base sont disponibles pour [https://dev.nozav.org/intro_svn.html SVN], de même que pour [https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git GIT]. Ces sites vous sont proposés à titre d'exemple.
  
 
==Théorie : physique==
 
==Théorie : physique==
Ligne 62 : Ligne 63 :
 
==Modèle numérique==
 
==Modèle numérique==
 
=== MOR ===
 
=== MOR ===
[[MOR_-_Modèle_Océanique_Régional]]
+
[[MOR_-_Modèle_Océanique_Régional|MOR - Modèle Océanique Régional]]
  
 
=== NEMO ===
 
=== NEMO ===
Caractéristiques
+
[[NEMO@POLR]]
paramètres
+
 
 
=== CICE ===
 
=== CICE ===
 
Caractéristiques
 
Caractéristiques
 
paramètres
 
paramètres
  
=Déterminer la grille et les paramètres du modèle=
+
==Déterminer la grille, les paramètres du modèle et les intrants==
 
Avant d’appliquer un modèle à une région, nous devons premièrement nous demander : «Quels sont les phénomènes que nous voulons étudier ?». Cette section servira donc à construire notre plan, à répondre à des questions qui influencent toute les étapes subséquentes.  
 
Avant d’appliquer un modèle à une région, nous devons premièrement nous demander : «Quels sont les phénomènes que nous voulons étudier ?». Cette section servira donc à construire notre plan, à répondre à des questions qui influencent toute les étapes subséquentes.  
 
Donc à ce moment, nous faisons l’hypothèse que notre modèle est capable de résoudre le problème qui nous intéresse (équation et approximation) et que nous avons les capacités de calculs suffisantes.  
 
Donc à ce moment, nous faisons l’hypothèse que notre modèle est capable de résoudre le problème qui nous intéresse (équation et approximation) et que nous avons les capacités de calculs suffisantes.  
  
==Grille bathymétrique==
+
===Grille bathymétrique===
=== Données ===
+
Cette première question peu d’abord sembler simple, mais elle englobe plusieurs autres questions auxquelles nous devons avoir réfléchi comme la disponibilité des données bathymétriques ou le choix des frontières latérales de notre domaine, par exemple.
===Niveau de référence===
+
====Données bathymétriques====
 +
 
 +
=====Niveau de référence=====
 
Les questions liées à la référence verticale des données bathymétriques sont un enjeu important en régions côtières.
 
Les questions liées à la référence verticale des données bathymétriques sont un enjeu important en régions côtières.
 
Un enjeu majeur est lié au fait que nous voulons démarrer notre simulation avec un bassin aux repos. Dans la nature, une tel chose n’existe pas. Il faut donc prendre certaines précautions pour déterminer les profondeurs de notre bassin.
 
Un enjeu majeur est lié au fait que nous voulons démarrer notre simulation avec un bassin aux repos. Dans la nature, une tel chose n’existe pas. Il faut donc prendre certaines précautions pour déterminer les profondeurs de notre bassin.
===Sources de données disponibles===
+
=====Sources de données disponibles=====
Il existe plusieurs sources de données: données altimétriques par satellite, échosondeurs, sondage historique, carte électronique pour la navigation, données de base des services hydrographiques ou la numérisation de carte bathymétrique papier.  
+
Il existe plusieurs sources de données, en voici quelques-unes: des satellites, des échosondeurs, des sondages historiques, des cartes électroniques pour la navigation, des données de base des services hydrographiques ou de la numérisation de carte bathymétrique papier.  
 
Afin de jumeler différents jeux de données, vous devez toujours vous assurer qu'ils ont la même référence verticale. Soyez prudent, même s'ils sont tous référés aux zéros des cartes, cette référence est habituellement déterminée localement et donc pas compatible si la hauteur dynamique d'eau n'est pas négligeable.
 
Afin de jumeler différents jeux de données, vous devez toujours vous assurer qu'ils ont la même référence verticale. Soyez prudent, même s'ils sont tous référés aux zéros des cartes, cette référence est habituellement déterminée localement et donc pas compatible si la hauteur dynamique d'eau n'est pas négligeable.
  
*Les données bathymétriques satellitaires sont très intéressantes pour obtenir des barymétries sur de grande surface relativement loin des cotes ([http://www.gebco.net/ GEBCO], par exemple). Ces données deviennent beaucoup moins fiables près des cotes ou les marées sont importantes.   
+
*Les données bathymétriques satellitaires sont très intéressantes pour obtenir des batymétriques sur de grande surface relativement loin des cotes ([http://www.gebco.net/ GEBCO], par exemple). Ces données deviennent beaucoup moins fiables près des cotes les marées sont importantes.   
 
*[http://www.charts.gc.ca/copyright-droitdauteur/index-fra.asp Les Services Hydrographiques Canadiens] (SHC) détiennent beaucoup de produits différents (Carte bathymétrique papier, électronique, point de sondage, échosondeur). Avant d'utiliser ces données afin de produire des grilles bathymétriques, vous devez les contacter afin d'obtenir une licence.
 
*[http://www.charts.gc.ca/copyright-droitdauteur/index-fra.asp Les Services Hydrographiques Canadiens] (SHC) détiennent beaucoup de produits différents (Carte bathymétrique papier, électronique, point de sondage, échosondeur). Avant d'utiliser ces données afin de produire des grilles bathymétriques, vous devez les contacter afin d'obtenir une licence.
* Certains groupes comme [http://www.omg.unb.ca/ Ocean Mapping group] partage leurs données.
+
* Certains groupes comme [http://www.omg.unb.ca/ Ocean Mapping group] partagent leurs données.
  
=== Outils de génération de grille ===
+
==== Outils de génération de grille ====
==== Régulière ====
+
===== Régulière =====
 
Au POLR, des outils ont été développés pour fabriquer des grilles bathymétriques. Plusieurs des données utilisées pour générer ces grilles sont sous licences, contacter [http://www.ismer.ca/Senneville-Simon Simon Senneville] pour plus de détails à ce sujet.
 
Au POLR, des outils ont été développés pour fabriquer des grilles bathymétriques. Plusieurs des données utilisées pour générer ces grilles sont sous licences, contacter [http://www.ismer.ca/Senneville-Simon Simon Senneville] pour plus de détails à ce sujet.
  
==== Irrégulière ====
+
===== Irrégulière =====
  
==Conditions initiales==
+
===Conditions initiales===
===Océanique===
+
====Océaniques====
Tel que mentionné précédemment, l'unicité de la solution d'un système d'équations dépend de la condition initiale et les conditions frontières. Pour MOR, nous aurons besoin d'une condition initiale de salinité et de température. Comme le système démarre au repos, les niveaux d'eau et les courants sont initialisés à zéro.
+
Tel que mentionné précédemment, l'unicité de la solution d'un système d'équations dépend de la condition initiale et des conditions frontières. Par exemple, pour MOR, nous aurons besoin d'une condition initiale de salinité et de température. Comme ce système démarre au repos, les niveaux d'eau et les courants sont initialisés à zéro.  
 
*Contruction de condition initiale
 
*Contruction de condition initiale
 
:*Salinité
 
:*Salinité
 
:*Température
 
:*Température
 +
===Conditions frontières ouvertes===
 +
====Océaniques====
 
*Construction de condition frontière ouverte
 
*Construction de condition frontière ouverte
 
:*Niveau d'eau
 
:*Niveau d'eau
Ligne 105 : Ligne 110 :
 
:*Température
 
:*Température
  
===Hydrologique===
+
===Autres forçages===
Dans MOR, les débits rivières sont tenues en compte. Quand les données ne sont pas disponibles, des climatologies de ces rivières sont utilisées. Elles seront également mises à l'échelle pour tenir compte des portions de bassin versant non jaugées.  
+
====Hydrologiques====
===Atmosphérique===
+
Dans MOR, les débits rivières sont tenues en compte. Quand les données ne sont pas disponibles, des climatologies de ces rivières sont utilisées. Elles sont également mises à l'échelle pour tenir compte des portions de bassin versant non jaugées.  
 +
====Atmosphériques====
 
Les forçages atmosphériques fournissent les flux d'eau douce et de momentum à l'océan. Contrairement à la réalité, il ne s'agit pas d'un système couplé dans MOR.  
 
Les forçages atmosphériques fournissent les flux d'eau douce et de momentum à l'océan. Contrairement à la réalité, il ne s'agit pas d'un système couplé dans MOR.  
===Cryogénique===  
+
====Cryogéniques====  
 
Nous commençons habituellement nos simulations sans glace. Les conditions frontières de glace peuvent être fournies par des solutions de systèmes à plus grande échelle.
 
Nous commençons habituellement nos simulations sans glace. Les conditions frontières de glace peuvent être fournies par des solutions de systèmes à plus grande échelle.
  
==Exercises Pratiques==
+
 
===Ocean modelling for beginners, Kämpf, 2009===
 
  
 
[[Category:Formation]]
 
[[Category:Formation]]

Version actuelle datée du 14 mars 2019 à 13:43


EN CONSTRUCTION



Modélisation océanographique régionale appliquée

Cette page survole l'ensemble des informations nécessaires pour produire et analyser une simulation océanique régionale sur la grappe de calcul Mingan.

Système d’exploitation

Linux

La grappe de calcul Mingan ainsi que les terminaux pour y accéder ont un système d’exploitation Linux. Une formation de base peut être trouvée ici.

Langage de programmation

Chaque langage de programmation utilise une structure et une syntaxe qui lui est propre. Certains langages devront être compilés (Fortran, C, etc.) et d'autres sont interprétés (Matlab, Python, etc.). Il est divisé en plusieurs catégories: programme, sous-routine, fonction, module et autres.

Compilé

Les langages compilés sont plus performants que les langages interprétés. Les instructions sont compilées par un compilateur en instruction compréhensible par les processeurs. Ils peuvent exécuter des tâches nécessitant BEAUCOUP de calcul.

Fortran

Des sites externes offrent des formations en Fortran (par exemple celui-ci. Certains sites offrent également des exercices de base afin de bien comprendre les concepts. Ces sites vous sont proposés à titre d'exemple.

Sur la grappe de Mingan, nous disposons de deux compilateurs Fortran qui peuvent être utilisés: gfortran et ifort de Intel.

Interprété

Le langage interprété est généralement plus simple. Il bénéficie d'un interpréteur des commandes. Bien que moins performant pour le calcul, il permet une visualisation graphique évoluée des résultats.

Matlab

C'est en "matlabant" qu'un devient "Matlabeur"! Tapez demo à votre première ouverture de Matlab. Vous aurez ainsi une grande gamme des possibilités offertes par Matlab. La communauté qui l'utilise est vaste, servez-vous-en.

Python

C'est en "pythonant" qu'on devient "Pythoneur" ! Remarquez l'absence du mot labeur dans "Pythoneur".

Codes sources

Un code source est un ensemble d’instruction liée à un langage de programmation.

Documentation du code et bonne pratique de programmation

Quel que soit le langage utilisé (Fortran, C, MAtlab ou autre), la documentation du code, en plus d'utiliser des gabarits et suivre de bonnes pratiques de programmation, facilitera les usages subséquents de ce code.

Maltab

Guide des bonnes pratiques de codage Matlab

Gestion de codes sources

Au POLR, la gestion des codes sources est faite à l'aide de SVN ou GIT. Des introductions aux concepts ainsi qu'une formation de base sont disponibles pour SVN, de même que pour GIT. Ces sites vous sont proposés à titre d'exemple.

Théorie : physique

Équation Navier-Stokes

Approximation Incompressibilité Hydrostatique Turbulence Modèle K Modèle K-ɛ

Glace

Dynamique Thermodynamique

Théorie : calcul numérique

Solution analytique

Solution numérique

Discrétisation

Résolution spatiale et temporelle

Schéma d’intégration

Explicite
Implicite

Modèle numérique

MOR

MOR - Modèle Océanique Régional

NEMO

NEMO@POLR

CICE

Caractéristiques paramètres

Déterminer la grille, les paramètres du modèle et les intrants

Avant d’appliquer un modèle à une région, nous devons premièrement nous demander : «Quels sont les phénomènes que nous voulons étudier ?». Cette section servira donc à construire notre plan, à répondre à des questions qui influencent toute les étapes subséquentes. Donc à ce moment, nous faisons l’hypothèse que notre modèle est capable de résoudre le problème qui nous intéresse (équation et approximation) et que nous avons les capacités de calculs suffisantes.

Grille bathymétrique

Cette première question peu d’abord sembler simple, mais elle englobe plusieurs autres questions auxquelles nous devons avoir réfléchi comme la disponibilité des données bathymétriques ou le choix des frontières latérales de notre domaine, par exemple.

Données bathymétriques

Niveau de référence

Les questions liées à la référence verticale des données bathymétriques sont un enjeu important en régions côtières. Un enjeu majeur est lié au fait que nous voulons démarrer notre simulation avec un bassin aux repos. Dans la nature, une tel chose n’existe pas. Il faut donc prendre certaines précautions pour déterminer les profondeurs de notre bassin.

Sources de données disponibles

Il existe plusieurs sources de données, en voici quelques-unes: des satellites, des échosondeurs, des sondages historiques, des cartes électroniques pour la navigation, des données de base des services hydrographiques ou de la numérisation de carte bathymétrique papier. Afin de jumeler différents jeux de données, vous devez toujours vous assurer qu'ils ont la même référence verticale. Soyez prudent, même s'ils sont tous référés aux zéros des cartes, cette référence est habituellement déterminée localement et donc pas compatible si la hauteur dynamique d'eau n'est pas négligeable.

  • Les données bathymétriques satellitaires sont très intéressantes pour obtenir des batymétriques sur de grande surface relativement loin des cotes (GEBCO, par exemple). Ces données deviennent beaucoup moins fiables près des cotes où les marées sont importantes.
  • Les Services Hydrographiques Canadiens (SHC) détiennent beaucoup de produits différents (Carte bathymétrique papier, électronique, point de sondage, échosondeur). Avant d'utiliser ces données afin de produire des grilles bathymétriques, vous devez les contacter afin d'obtenir une licence.
  • Certains groupes comme Ocean Mapping group partagent leurs données.

Outils de génération de grille

Régulière

Au POLR, des outils ont été développés pour fabriquer des grilles bathymétriques. Plusieurs des données utilisées pour générer ces grilles sont sous licences, contacter Simon Senneville pour plus de détails à ce sujet.

Irrégulière

Conditions initiales

Océaniques

Tel que mentionné précédemment, l'unicité de la solution d'un système d'équations dépend de la condition initiale et des conditions frontières. Par exemple, pour MOR, nous aurons besoin d'une condition initiale de salinité et de température. Comme ce système démarre au repos, les niveaux d'eau et les courants sont initialisés à zéro.

  • Contruction de condition initiale
  • Salinité
  • Température

Conditions frontières ouvertes

Océaniques

  • Construction de condition frontière ouverte
  • Niveau d'eau
  • Salinité
  • Température

Autres forçages

Hydrologiques

Dans MOR, les débits rivières sont tenues en compte. Quand les données ne sont pas disponibles, des climatologies de ces rivières sont utilisées. Elles sont également mises à l'échelle pour tenir compte des portions de bassin versant non jaugées.

Atmosphériques

Les forçages atmosphériques fournissent les flux d'eau douce et de momentum à l'océan. Contrairement à la réalité, il ne s'agit pas d'un système couplé dans MOR.

Cryogéniques

Nous commençons habituellement nos simulations sans glace. Les conditions frontières de glace peuvent être fournies par des solutions de systèmes à plus grande échelle.