commit:2015:11_18
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| commit:2015:11_18 [2015/11/18 18:40] – [Erreur d'intégration temporelle] wautelet | commit:2015:11_18 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 13: | Line 13: | ||
| ===== Time Step Computation Method ===== | ===== Time Step Computation Method ===== | ||
| + | |||
| + | Lors de mon refactoring, | ||
| ==== Pas de temps constant ==== | ==== Pas de temps constant ==== | ||
| Line 23: | Line 25: | ||
| </ | </ | ||
| - | Si les itérations | + | **Remarques importantes :** |
| + | * Si les itérations | ||
| + | * Cette méthode peut être utilisée avec tous les types de schéma d' | ||
| + | * On peut préciser un pas de temps initial et un pas de temps maximal différent pour la branche d' | ||
| - | On peut préciser un pas de temps initial et un pas de temps maximal différent pour la branche d' | ||
| - | Il peut être utiliser avec tous les types de schéma d' | ||
| ==== Pas de temps critique ==== | ==== Pas de temps critique ==== | ||
| Line 45: | Line 48: | ||
| Il est possible de faire l' | Il est possible de faire l' | ||
| + | |||
| + | Le pas de temps est mis à jour sur base d'un nombre d' | ||
| + | |||
| + | Voici une représentation schématique des deux algorithmes disponibles : | ||
| + | <WRAP group> | ||
| + | <WRAP centeralign half column> | ||
| + | 1er cas : | ||
| + | {{: | ||
| + | </ | ||
| + | <WRAP centeralign half column> | ||
| + | 2ième cas : | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Voici deux exemples : | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP centeralign half column> | ||
| + | 1er cas : | ||
| + | {{: | ||
| + | Le nombre maximum d' | ||
| + | </ | ||
| + | <WRAP centeralign half column> | ||
| + | 2ième cas : | ||
| + | {{: | ||
| + | Le nombre maximum d' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| On distincte les différents cas suivants : | On distincte les différents cas suivants : | ||
| === Schéma d' | === Schéma d' | ||
| + | |||
| + | Le nombre d' | ||
| + | |||
| < | < | ||
| - | tscm = CriticalTimeStepComputationMethod(metafor) | + | tscm = NbOfMechNRIterationsTimeStepComputationMethod(metafor) |
| - | tscm.setExplicitTimeStepSecurity(_explicitTimeStepSecurity) | + | tscm.setTimeStepDivisionFactor(_timeStepDivisionFactor) |
| - | tscm.setNbOfStepsForCriticalTimeStepUpdate(_nbOfStepsForCriticalTimeStepUpdate) | + | tscm.setMinimumTimeStep(_minimumTimeStep) |
| + | tscm.setMaxNbOfIteInAdaptOfTimeStep(_maxNbOfIteInAdaptOfTimeStep) | ||
| + | tscm.setNbOptiIte(_nbOptiIte) | ||
| tsm.setTimeStepComputationMethod(tscm) | tsm.setTimeStepComputationMethod(tscm) | ||
| </ | </ | ||
| + | |||
| === Schéma d' | === Schéma d' | ||
| + | |||
| + | Le nombre d' | ||
| + | |||
| < | < | ||
| - | tscm = CriticalTimeStepComputationMethod(metafor) | + | tscm = NbOfStaggeredTmNRIterationsTimeStepComputationMethod(metafor) |
| - | tscm.setExplicitTimeStepSecurity(_explicitTimeStepSecurity) | + | tscm.setTimeStepDivisionFactor(_timeStepDivisionFactor) |
| - | tscm.setNbOfStepsForCriticalTimeStepUpdate(_nbOfStepsForCriticalTimeStepUpdate) | + | tscm.setMinimumTimeStep(_minimumTimeStep) |
| + | tscm.setMaxNbOfIteInAdaptOfTimeStep(_maxNbOfIteInAdaptOfTimeStep) | ||
| + | tscm.setNbOptiIte(_nbOptiIte) | ||
| tsm.setTimeStepComputationMethod(tscm) | tsm.setTimeStepComputationMethod(tscm) | ||
| </ | </ | ||
| + | |||
| === Schéma d' | === Schéma d' | ||
| + | |||
| + | Le nombre d' | ||
| + | |||
| < | < | ||
| - | tscm = CriticalTimeStepComputationMethod(metafor) | + | tscm = NbOfCoupledTmNRIterationsTimeStepComputationMethod(metafor) |
| - | tscm.setExplicitTimeStepSecurity(_explicitTimeStepSecurity) | + | tscm.setTimeStepDivisionFactor(_timeStepDivisionFactor) |
| - | tscm.setNbOfStepsForCriticalTimeStepUpdate(_nbOfStepsForCriticalTimeStepUpdate) | + | tscm.setMinimumTimeStep(_minimumTimeStep) |
| + | tscm.setMaxNbOfIteInAdaptOfTimeStep(_maxNbOfIteInAdaptOfTimeStep) | ||
| + | tscm.setNbOptiIte(_nbOptiIte) | ||
| tsm.setTimeStepComputationMethod(tscm) | tsm.setTimeStepComputationMethod(tscm) | ||
| </ | </ | ||
| + | |||
| === Schéma d' | === Schéma d' | ||
| + | |||
| + | Le nombre d' | ||
| + | |||
| < | < | ||
| - | tscm = CriticalTimeStepComputationMethod(metafor) | + | tscm = NbOfAugLagMechNRIterationsTimeStepComputationMethod(metafor) |
| - | tscm.setExplicitTimeStepSecurity(_explicitTimeStepSecurity) | + | tscm.setTimeStepDivisionFactor(_timeStepDivisionFactor) |
| - | tscm.setNbOfStepsForCriticalTimeStepUpdate(_nbOfStepsForCriticalTimeStepUpdate) | + | tscm.setMinimumTimeStep(_minimumTimeStep) |
| + | tscm.setMaxNbOfIteInAdaptOfTimeStep(_maxNbOfIteInAdaptOfTimeStep) | ||
| + | tscm.setNbOptiIte(_nbOptiIte) | ||
| tsm.setTimeStepComputationMethod(tscm) | tsm.setTimeStepComputationMethod(tscm) | ||
| </ | </ | ||
| Line 79: | Line 135: | ||
| ==== Erreur d' | ==== Erreur d' | ||
| - | Il est possible de faire l' | + | Il est possible de faire l' |
| + | |||
| + | Le pas de temps courant est résolu jusqu' | ||
| + | |||
| + | Si le pas de temps est accepté, on diminue, on garde, ou on augmente le pas de temps sur base de la valeur de l' | ||
| On distincte les différents cas suivants : | On distincte les différents cas suivants : | ||
| - | === Schéma d' | + | === Schéma d' |
| < | < | ||
| tscm = QuasiStaticIntegrationErrorTimeStepComputationMethod(metafor) | tscm = QuasiStaticIntegrationErrorTimeStepComputationMethod(metafor) | ||
| Line 95: | Line 155: | ||
| < | < | ||
| tscm = ExplicitIntegrationErrorTimeStepComputationMethod(metafor) | tscm = ExplicitIntegrationErrorTimeStepComputationMethod(metafor) | ||
| - | tscm.setTimeStepDivisionFactor(_timeStepDivisionFactor) | ||
| - | tscm.setMinimumTimeStep(_minimumTimeStep) | ||
| tscm.setInitialIntegrationErrorTolerance(_initialIntegrationErrorTolerance) | tscm.setInitialIntegrationErrorTolerance(_initialIntegrationErrorTolerance) | ||
| tscm.setInitialExplicitTimeStepSecurity(_initialExplicitTimeStepSecurity) | tscm.setInitialExplicitTimeStepSecurity(_initialExplicitTimeStepSecurity) | ||
| Line 124: | Line 182: | ||
| * Ces méthodes de mise à jour du pas de temps n'ont pas été testées dans le cas d'un schéma d' | * Ces méthodes de mise à jour du pas de temps n'ont pas été testées dans le cas d'un schéma d' | ||
| + | * Si il y a un jacobien négatif durant un pas de temps, nous avons l' | ||
| + | |||
| + | ==== Paramètres ==== | ||
| + | |||
| + | ^ Paramètre | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Méthode par défaut de chaque schéma d' | ||
| + | ^ Intégration temporelle | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| ===== Divers ===== | ===== Divers ===== | ||
| Line 131: | Line 210: | ||
| ==== Integration Error ==== | ==== Integration Error ==== | ||
| - | Il y a pas mal de lignes de code sans documentation (Articles, Thèses, ...) qui servent à éviter une augmentation ou une diminution trop forte du pas de temps, ainsi que pour limiter le pas de temps lorsqu' | + | Il y a pas mal de lignes de code sans documentation (Articles, Thèses, ...) qui servent à éviter une augmentation ou une diminution trop forte du pas de temps, ainsi que pour limiter le pas de temps lorsqu' |
| ==== Détermination du pas de temps critique ==== | ==== Détermination du pas de temps critique ==== | ||
commit/2015/11_18.1447868400.txt.gz · Last modified: (external edit)
