MORA

De POLR
Révision datée du 14 mars 2019 à 13:43 par Caveenj (discussion | contributions) (→‎Langage de programmation)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

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.