This is an old revision of the document!
Table of Contents
Schéma d'intégration dynamique implicite/explicite
Description
Il permet de passer d'un schéma implicite à un schéma explicite et réciproquement.
Jeu de données
Voir schémas dynamiques implicite et explicite pour la description des schémas et pour la définition de la densité et des vitesses initiales.
Il faut en outre définir les paramètres pour gérer le shift.
Paramètres supplémentaires (voir Global Parameters [REMOVED]) :
MDE_SHIM
: schéma implicite utilisé (=MDE_NDYN
)MDE_SHEX
: schéma explicite utilisé
Le shift implicite explicite peut se faire de manière automatique ou manuelle (ou les deux combinées). Une autre application de cet algorithme est de stabiliser les pas explicites.
Shift automatique (méthode 1 ou 2)
Par défaut l'algorithme chosit la méthode à partir d'une erreur d'intégration, de la taille du pas de temps et du temps machine. Il faut alors définir MDE_ICPU = 1
(shift basé sur le temps CPU - sinon, shift bidon pour la batterie). Le changement ne se produit que si les pas de temps évalués (estimation) et critiques (nécessaire pour avoir un gain de temps) sont égaux à une sécurité près. Lors du passage d'une méthode explicite alpha-généralisée vers une méthode implicite, des pas explicites peuvent être calculés avec un rayon de bifurcation nul pour augmenter la dissipation numérique. Cette option est activée par method=1
et n'est pas activée pour method=2
(voir gestion du shift implicite/explicite).
Shift manuel (méthode 3 ou 4)
L'utilisateur peut en outre imposer des instants de changement de méthode (voir commande .sie
). Lors du passage d'une méthode explicite alpha-généralisée vers une méthode implicite, des pas explicites peuvent être calculés avec un rayon de bifurcation nul pour augmenter la dissipation numérique. Cette option est activée par method=3
et n'est pas activée pour method=4
(voir gestion du shift implicite/explicite).
Equilibrage
Lors du passage de l'explicite vers l'implicite, le pas de temps implicite de départ est calculé par une erreur d'intégration (majoré par un changement max de pas multiplié par le pas explicite) en shift automatique et vaut ce changement max de pas multiplié par le pas de temps explicite en shift manuel. De plus l'utilisateur peut imposer un nombre de pas implicite d'équilibrage qui lors du shift de l'explicite vers l'implicite. Un pas implicite d'équilibrage se calcule sur un nombre explicite de pas qui correspond au changement max, ce qui explique le caractère entier de cette valeur.
Equilibrage de tous les pas explicites (méthode 5)
La totalité du calcul se fait avec des pas explicites (method5
). Tous les changements max de pas explicites sont équilibrés par un pas implicite.
Gestion du shift implicite/explicite
La manière de sélectionner les options pour le shift implicite explicite se fait grâce aux commandes :
iesm = metafor.getIeShiftManager() iems.setIeShiftMethod(meth) iesm.setNbOfBalanceSteps(nbbs) iesm.setMaxStepIncrease(msin) iesm.setAutomaticShiftSecurity(secu)
paramètre | défaut | description |
---|---|---|
meth | = IESM_NOSHIFTMETHOD : pas de shift (valeur par défaut) |
|
= IESM_AUTOMATICSHIFTMETHODWITHDISS le shift se fait de manière automatique à partir d'une erreur d'intégration et des temps CPU (nécessite MDE_ICPU=1 ); lors du shift vers une méthode implicite, des pas de temps explicites sont calculés avec dissipation numérique |
||
= IESM_AUTOMATICSHIFTMETHOD : le shift se fait de manière automatique à partir d'une erreur d'intégration et des temps CPU (nécessite MDE_ICPU=1 ); lors du shift vers une méthode implicite, il n'y a pas de pas de temps explicite calculé avec dissipation numérique |
||
= IESM_MANUALSHIFTMETHODWITHDISS : les temps de shift sont imposés par la commande .sie (voir ici plus bas); lors du shift vers une méthode implicite, des pas de temps explicites sont calculés avec dissipation numérique |
||
= IESM_MANUALSHIFTMETHOD : les temps de shift sont imposés par la commande .sie (voir ici plus bas); lors du shift vers une méthode implicite, il n'y a pas de pas de temps explicite calculé avec dissipation numérique |
||
= IESM_BALANCEDEXPLICITMETHOD : il s'agit en fait d'équilibrer tous les msin pas explicites par un pas implicite pour stabiliser le calcul non-linéaire |
||
nbbs | 0 | lors d'un shift vers l'implicite, correspond au nombre de pas d'équilibrage |
msin | 6 | changement maximum de taille du pas de temps; cette valeur est en fait le rapoort entre le pas implicite et le pas explicite pour un changement vers l'implicite ou un équilibrage et est donc entière |
secu | 1.5 | sécurité pour le critère de shift automatique |
Pour le choix d'un changement manuel, l'utilisateur peut, en outre, imposer des temps de changement de méthode. La gestion des temps de shift imposé se fait par les commandes:
metafor.getIeShiftManager().pushTimeOfShiftingToExplicit(time) metafor.getIeShiftManager().pushTimeOfShiftingToImplicit(time)
où
time | temps pour shifter |