Sémantique temporelle
Sémantique temporelle du solveur explicite#
Cette page définit la signification temporelle des principales grandeurs nodales utilisées par le solveur explicite. Elle complète la présentation théorique du schéma de résolution par le contrat de temporalité utilisé par l’implémentation.
Comfor utilise un schéma de différences centrées à pas variable sous forme leapfrog :
- les positions, déplacements, rotations, efforts et accélérations vivent aux
instants entiers
t^n - la vitesse principale est décalée sur les demi-pas
t^{n-1/2}ett^{n+1/2}
Contexte d’incrément#
L’incrément courant est représenté par :
time_n: temps courant du solveurt^ndt_forward: intervalle de dérive avantΔt^{n+1/2}dt_backward: intervalle de dérive précédentΔt^{n-1/2}
Deux quantités dérivées sont utilisées en permanence :
et
La première quantité est l’intervalle de kick utilisé pour mettre à jour la vitesse décalée. La seconde est l’instant auquel les conditions limites de vitesse au demi-pas sont appliquées.
Temporalité des champs nodaux#
Le solveur explicite utilise l’interprétation suivante :
| Grandeur | Signification | Instant |
|---|---|---|
position, displacement, rotation |
configuration courante | t^n |
velocity_half |
vitesse décalée | t^{n-1/2} à l’entrée, t^{n+1/2} après le kick |
velocity_at_n |
vitesse reconstruite au pas entier | t^n |
acceleration |
accélération de kick utilisée par le solveur | t^n |
internal_force, external_force, contact_force, total_force |
efforts nodaux assemblés | t^n |
champs historiques *_prev |
valeurs au pas précédent | t^{n-1} |
La distinction entre velocity_half et velocity_at_n est essentielle :
velocity_halfest utilisée par l’intégrateur explicite et par les mises à jour constitutives dépendantes du tauxvelocity_at_nest utilisée pour les sorties nodales et pour l’énergie cinétique
Un incrément explicite#
Un appel à ExplicitSolver::solve() fait avancer la solution de t^n à
t^{n+1}.
La séquence est la suivante :
- choisir la valeur courante de
dt_forward - assembler les efforts nodaux sur la configuration courante
d^n - calculer les accélérations nodales à
t^n - reconstruire la vitesse au pas entier
v^n - évaluer les diagnostics d’énergie courants
- sauvegarder l’état convergé au pas
n, nécessaire pour l’incrément suivant - effectuer le kick de la vitesse au demi-pas avec
Δt^n - appliquer les conditions limites de vitesse prescrites à
t^{n+1/2} - dériver la configuration jusqu’à
d^{n+1}avecΔt^{n+1/2} - sauvegarder l’historique des efforts
- avancer l’horloge du solveur à
t^{n+1}
Temporalité des lois de comportement#
Les mises à jour constitutives suivent deux schémas fréquents.
Voie basée sur la configuration#
Les matériaux et sections qui dépendent de la géométrie courante ou du gradient
de déformation sont évalués sur la configuration d^n. Ils assemblent donc
les contraintes et les efforts internes à l’instant t^n.
Voie basée sur le taux#
Les formulations dépendantes du taux utilisent la vitesse décalée à l’entrée de l’incrément :
v^{n-1/2}- avec
Δt^{n-1/2}
Cela définit l’incrément de déformation qui se ferme à t^n, puis sert à
assembler l’état d’effort f^n.
Conventions de vitesse#
velocity_halfest la grandeur cinématique principale de la mise à jour explicitevelocity_at_nest la vitesse reconstruite au pas entier utilisée pour les sorties et l’évaluation énergétique
Il convient d’éviter d’introduire une grandeur velocity non qualifiée si sa
localisation temporelle n’est pas explicite.
État initial#
Avant le premier incrément :
- l’état nodal est réinitialisé sur la configuration de référence
- les conditions limites de vitesse prescrites à
t = 0sont appliquées - les conditions limites d’accélération prescrites à
t = 0sont appliquées
Le premier état écrit correspond à cette configuration initialisée.
Les chargements pilotés par une accélération, comme la gravité, sont assemblés
pendant le premier incrément. La sortie écrite à t = 0 correspond donc à un
état de référence initialisé, et non à un état dynamique entièrement assemblé
pour ces chargements.
Temporalité des sorties#
Comfor écrit :
- une sortie initiale à
t = 0 - une sortie après chaque incrément résolu, selon la fréquence configurée
Chaque état écrit est étiqueté avec son temps convergé réel.
Les trackers de vitesse nodale utilisent la vitesse reconstruite au pas entier
v^n, et non la vitesse décalée au demi-pas.
Diagnostics d’énergie#
Le solveur explicite suit :
- l’énergie interne
- l’énergie externe
- l’énergie cinétique
- des indicateurs de résidu et de balance
Ces quantités sont utiles, mais la dissipation par amortissement et le travail associé aux conditions cinématiques prescrites ne sont pas encore isolés comme termes séparés.
Résumé#
Le contrat du solveur explicite peut être résumé ainsi :
- la géométrie et les efforts sont évalués aux instants entiers
t^n - la vitesse principale est stockée sur des demi-pas décalés
- un incrément assemble sur
d^n, effectue le kick de la vitesse au demi-pas, puis dérive jusqu’àd^{n+1} - les mises à jour dépendantes du taux utilisent
v^{n-1/2}etΔt^{n-1/2} - les sorties de vitesse nodale utilisent la vitesse reconstruite au pas entier
v^n - les sorties après résolution sont étiquetées avec le temps convergé réel de l’état