Différences entre versions de « MORA »
(23 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 | + | 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]]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Langage de programmation == | == Langage de programmation == | ||
− | Chaque langage de programmation utilise une structure et une syntaxe qui lui est propre. Certains langages devront être | + | 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 ==== | ||
− | + | 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 === | ||
− | + | [[NEMO@POLR]] | |
− | + | ||
=== CICE === | === CICE === | ||
Caractéristiques | Caractéristiques | ||
paramètres | paramètres | ||
− | =Déterminer la grille | + | ==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==== |
− | Les questions liées à la référence verticale des données bathymétriques sont un | + | |
− | Un | + | =====Niveau de référence===== |
− | ===Sources de données disponibles=== | + | Les questions liées à la référence verticale des données bathymétriques sont un enjeu important en régions côtières. |
− | Il existe plusieurs sources de données: | + | 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. |
− | 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 | + | =====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 ([http://www.gebco.net/ GEBCO], par exemple). Ces données deviennent beaucoup moins fiables près des cotes où 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. | ||
+ | * Certains groupes comme [http://www.omg.unb.ca/ 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 [http://www.ismer.ca/Senneville-Simon Simon Senneville] pour plus de détails à ce sujet. | |
− | === | + | ===== Irrégulière ===== |
− | |||
− | |||
− | |||
− | ==Conditions | + | ===Conditions initiales=== |
− | === | + | ====Océaniques==== |
− | Salinité | + | 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. |
− | Température | + | *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. | |
− | |||
− | |||
− | |||
− | |||
[[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
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
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.