Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
L'application "MicroHydro"

Le troisième exemple de cette formation permet le développement d'un module hydrodynamique lagrangienne très simplifié :

  • le seul type de maille supporté est l'hexaèdre,
  • pas de pseudo viscosité supportée,
  • le seul type de calcul de longueur caractéristique supporté est celui utilisant les médianes,
  • le seul type de condition aux limites supporté est d'imposer une composante de la vitesse sur une surface,
  • la masse nodale est supposée constante et n'est pas recalculée à chaque itération,
  • aucun test de cohérence des valeurs (pression positive, volume positif, ...) n'est effectué.

La liste des opérations effectuées par le module est la suivante :

  • calcul des forces de pression,
  • calcul de l'impulsion,
  • prise en compte des conditions aux limites,
  • déplacement des noeuds,
  • calcul des nouvelles valeurs géométriques : volume des mailles, longueur caractéristique des mailles, resultantes aux sommets de chaque maille,
  • calcul de la densité,
  • calcul de la pression et de l'énergie par l'équation d'état. Ce calcul est effectué par un service ARCANE. Deux implémentations sont disponibles pour le service : gaz parfait, et "stiffened" gaz.
  • calcul du nouveau pas de temps.

La liste des valeurs manipulées par le module est la suivante :

NomElémentTypeDescription
Density Maille Réel Densité par maille
Pressure Maille Réel Pression par maille
CellMass Maille Réel Masse par maille
InternalEnergy Maille Réel Energie interne par maille
CellVolume Maille Réel Volume de la maille
OldCellVolume Maille Réel Volume de la maille à l'itération précédente
Force Noeud Coordonnée Force aux noeuds
Velocity Noeud Coordonnée Vitesse aux noeuds
NodeMass Noeud Réel Masse nodale
AdiabaticCst Maille Réel Constante adiabatique par maille
CaracteristicLength Maille Réel Longueur caractéristique par maille
SoundSpeed Maille Réel Vitesse du son dans la maille
NodeCoord Noeud Coordonnée Coordonnées des noeuds
CellCQs Maille Tableau de coordonnéesRésultante aux sommets

Conception de l'application

Prérequis
Actions à réaliser
A partir de l'énoncé de l'exercice et de la documentation des méthodes de la classe MicroHydroModule :
  • Ecrire le descripteur du module :
    • Fournir la liste des points d'entrée. Chaque opération citée précédemment devient un point d'entrée et un point d'entrée d'initialisation est ajouté,
    • Fournir la liste des variables,
    • Compléter les options de configuration pour les conditions aux limites conformément au jeu de données MicroHydro.arc
  • Décrire ensuite l'enchainement des points d'entrée dans le fichier de configuration de l'application MicroHydro.config.

Service d'équation d'état

Prérequis
Actions à réaliser
Faire un service capable de calculer l'équation d'état pour un groupe de mailles donné :
  • Regarder l'interface du service dans le fichier IEquationOfState et les implémentations perfect gas et stiffened gas,
  • Enregistrer les 2 implémentations dans ARCANE à l'aide à la macro,
  • Dans le descripteur du module (MicroHydro.axl), saisir les options de configuration pour le service d'équation d'état conformément au jeu de données MicroHydro.arc,
  • Ecrire le code pour le service d'équation d'état du gaz parfait dans le fichier PerfectGasEOSService.cc. Les formules sont :

    \[P = (\gamma - 1) \rho e\]

    \[s = \sqrt{\gamma P / \rho} \]

    avec \(P\) = pression, \(e\) = énergie interne, \(s\) = vitesse du son, \(\gamma\) = constante adiabatique, et \(\rho\) = densité
  • Ecrire le code pour le service d'équation d'état "stiffened gas" dans le fichier StiffenedGasEOSService.cc. Les formules sont :

    \[P = ((\gamma - 1) \rho e) - (\gamma P_0)\]

    \[s = \sqrt{(\gamma / \rho)(P+P_0)} \]

    avec \(P\) = pression, \(P_0\) = tension limite, \(e\) = énergie interne, \(s\) = vitesse du son, \(\gamma\) = constante adiabatique, et \(\rho\) = densité
  • Compléter les appels au service d'équation d'état dans le fichier MicroHydroModule.cc
  • Compiler
  • Choisir le service d'équation d'état voulu dans le jeu de données MicroHydro.arc. Ne pas oublier de préciser la tension limite dans le cas du service "stiffened gas".
  • Exécuter en séquentiel et en parallèle et regarder les résultats.

Prise en compte des protections/reprises

Prérequis
Ce module n'utilisant pas de structure de données interne autre que les variables, il n'a rien à faire pour prendre en compte les protections reprises.
Actions à réaliser
  • Editer le fichier MicroHydro.config et ajouter le module ArcaneCheckpoint permettant d'écrire des protections.
  • Exécuter le code pendant 100 itérations : option -arcane_opt max_iteration 100.
  • Reprendre l'exécution : option -arcane_opt continue.
  • Ne plus sauvegarder le volume des mailles et ajouter un nouveau point d'entrée d'initialisation de reprise permettant de calculer le volume des mailles à partir de la position des noeuds.