#include <tutorial/microhydro/MicroHydroModule.h>
Public Member Functions | |
| 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 :
Definition at line 31 of file MicroHydroModule.h.
|
inline |
Constructeur de la classe
Definition at line 36 of file MicroHydroModule.h.
|
inline |
Destructeur de la classe
Definition at line 39 of file 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.
Definition at line 86 of file MicroHydroModule.cc.
References ENUMERATE_FACE, Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::node(), TypesMicroHydro::Unknown, TypesMicroHydro::VelocityX, TypesMicroHydro::VelocityY, TypesMicroHydro::VelocityZ, Arcane::Real3POD::x, Arcane::Real3POD::y, and 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.
Definition at line 215 of file MicroHydroModule.cc.
References 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()). Definition at line 236 of file MicroHydroModule.cc.
References ENUMERATE_CELL, and Arcane::Parallel::ReduceMin.
|
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.
Definition at line 141 of file MicroHydroModule.cc.
References Arcane::Real3::abs(), ENUMERATE_CELL, Arcane::ItemWithNodes::nodes(), and Arcane::math::scaMul().
Referenced by 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}\).
Definition at line 48 of file MicroHydroModule.cc.
References ENUMERATE_CELL, and 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.
Definition at line 67 of file MicroHydroModule.cc.
References 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 :Definition at line 13 of file MicroHydroModule.cc.
References computeGeometricValues(), ENUMERATE_CELL, and 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.
Definition at line 128 of file MicroHydroModule.cc.
References 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.
Definition at line 199 of file MicroHydroModule.cc.
References ENUMERATE_CELL.
|
inlinevirtual |
Retourne le numéro de version du module
Definition at line 153 of file MicroHydroModule.h.