#include <tutorial/microhydro/MicroHydroModule.h>
Fonctions membres publiques | |
MicroHydroModule (const ModuleBuildInfo &mbi) | |
~MicroHydroModule () | |
virtual void | hydroStartInit () |
virtual void | computePressureForce () |
virtual void | computeVelocity () |
virtual void | applyBoundaryCondition () |
virtual void | moveNodes () |
virtual void | computeGeometricValues () |
virtual void | updateDensity () |
virtual void | applyEquationOfState () |
virtual void | computeDeltaT () |
virtual VersionInfo | versionInfo () const |
Représente un module d'hydrodynamique lagrangienne très simplifié :
La liste des opérations effectuées par le module est la suivante :
Définition à la ligne 31 du fichier MicroHydroModule.h.
|
inline |
Constructeur de la classe
Définition à la ligne 36 du fichier MicroHydroModule.h.
|
inline |
Destructeur de la classe
Définition à la ligne 39 du fichier MicroHydroModule.h.
|
virtual |
Applique les conditions aux limites. Les conditions aux limites dépendent des options du jeu de données. Dans cette implémentation, une condition aux limites possède les propriétés suivantes :
Appliquer les conditions aux limites consiste donc à fixer une composante d'un vecteur vitesse pour chaque noeud de chaque face de chaque surface sur laquelle on impose une condition aux limites.
Définition à la ligne 86 du fichier MicroHydroModule.cc.
Références ENUMERATE_FACE, Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::node(), TypesMicroHydro::Unknown, TypesMicroHydro::VelocityX, TypesMicroHydro::VelocityY, TypesMicroHydro::VelocityZ, Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
|
virtual |
Ce point d'entrée calcule l'énergie interne, la pression et la vitesse du son dans la maille en faisant appel au service d'équation d'état.
Définition à la ligne 215 du fichier MicroHydroModule.cc.
Références ENUMERATE_CELL.
|
virtual |
Détermine la valeur du pas de temps pour l'itération suivante. Le pas de temps est contraint par :
deltatMin()
et deltatMax()
du jeu de données,finalTime()
). Définition à la ligne 236 du fichier MicroHydroModule.cc.
Références ENUMERATE_CELL.
|
virtual |
Ce point d'entrée regroupe l'ensemble des calculs géométriques utiles pour le schéma. Dans notre cas, il s'agit pour chaque maille :
Pour optimiser le calcul (utilisation du cache), à chaque itération sur une maille, sont stockées localement les coordonnées de ses noeuds et celles du centre de ses faces.
Définition à la ligne 141 du fichier MicroHydroModule.cc.
Références Arcane::Real3::abs(), ENUMERATE_CELL, et Arcane::ItemWithNodes::nodes().
Référencé par hydroStartInit().
|
virtual |
Calcule la contribution des forces de pression par noeud au temps courant \(t^{n}\). Pour chaque noeud de chaque maille, il s'agit de la pression multipliée par la résultante en ce noeud. Calcule les forces de pression au temps courant \(t^{n}\).
Définition à la ligne 48 du fichier MicroHydroModule.cc.
Références ENUMERATE_CELL, et Arcane::ItemWithNodes::nodes().
|
virtual |
Calcule la force (m_force
) qui s'applique aux noeuds en ajoutant l'éventuelle contribution de la pseudo-viscosité. Calcule ensuite la nouvelle vitesse (m_velocity
) aux noeuds.
Définition à la ligne 67 du fichier MicroHydroModule.cc.
Références ENUMERATE_NODE.
|
virtual |
Initialise le module. L'initialisation comporte deux parties distinctes:
m_cell_cqs
et m_viscosity_force
, qui sont toutes deux des variables aux mailles possédant une valeur pour chaque noeud de chaque maille. Comme on ne supporte que les héxaèdres, il y a 8 valeurs par maille,Pressure
, Density
et AdiabaticCst
, c'est ARCANE qui les initialisent directement à partir du jeu de donnée. La variable NodeCoord
est aussi initialisée par l'architecture lors de la lecture du maillage. Les autres variables sont calculées comme suit :Définition à la ligne 13 du fichier MicroHydroModule.cc.
Références computeGeometricValues(), ENUMERATE_CELL, et Arcane::ItemWithNodes::nodes().
|
virtual |
Modifie les coordonnées (m_node_coord
) des noeuds d'après la valeur du vecteur vitesse et du pas de temps.
Définition à la ligne 128 du fichier MicroHydroModule.cc.
Références ENUMERATE_NODE.
|
virtual |
Calcule la nouvelle valeur de la densité des mailles, en considérant que la masse d'une maille est constante au cours du temps. Dans ce cas, la nouvelle densité est égale à la masse divisée par le nouveau volume.
Définition à la ligne 199 du fichier MicroHydroModule.cc.
Références ENUMERATE_CELL.
|
inlinevirtual |
Retourne le numéro de version du module
Définition à la ligne 153 du fichier MicroHydroModule.h.