Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2015:11_18

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
commit:2015:11_18 [2015/11/18 18:50] – [Erreur d'intégration temporelle] wauteletcommit: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, j'en ai profité pour faire un nettoyage des différentes classes visitées. 
  
 ==== Pas de temps constant ====  ==== Pas de temps constant ==== 
Line 23: Line 25:
 </code> </code>
  
-Si les itérations NR ne convergent pas ou si il y a un jacobien négatif, nous avons l'arrêt de l'intégration temporelle à ce step là !+**Remarques importantes :**  
 +  * Si les itérations de la procédure de Newton Raphson ne convergent pas ou si il y a un jacobien négatif, nous avons l'arrêt de l'intégration temporelle au pas de temps donné ! 
 +  * Cette méthode peut être utilisée avec tous les types de schéma d'intégration de Metafor.  
 +  * On peut préciser un pas de temps initial et un pas de temps maximal différent pour la branche d'intégration temporelle entre t0 et t1. 
  
-On peut préciser un pas de temps initial et un pas de temps maximal différent pour la branche d'intégration temporelle entre t0 et t1.  
  
-Il peut être utiliser avec tous les types de schéma d'intégration de Metafor.  
  
 ==== Pas de temps critique ==== ==== Pas de temps critique ====
Line 45: Line 48:
  
 Il est possible de faire l'intégration temporelle avec pas de temps déterminé à partir du nombre d'itérations de la procédure itérative de Newton Raphson.  Il est possible de faire l'intégration temporelle avec pas de temps déterminé à partir du nombre d'itérations de la procédure itérative de Newton Raphson. 
 +
 +Le pas de temps est mis à jour sur base d'un nombre d'itérations optimal. Si le nombre d'itérations dépasse cette valeur, le pas de temps de diminué. Dans le cas contraire, le pas de temps est augmenté.
 +
 +Voici une représentation schématique des deux algorithmes disponibles :
 +<WRAP group>
 +<WRAP centeralign half column>
 +1er cas :
 +{{:commit:2015:timestepratiovsnumberofiterationsfirstalgogeneral.png?400|}}
 +</WRAP>
 +<WRAP centeralign half column>
 +2ième cas :
 +{{:commit:2015:timestepratiovsnumberofiterationssecondalgogeneral.png?400|}}
 +</WRAP>
 +</WRAP>
 +
 +Voici deux exemples :
 +
 +<WRAP group>
 +<WRAP centeralign half column>
 +1er cas :
 +{{:commit:2015:timestepratiovsnumberofiterationsfirstalgo.png?400 |}}
 +Le nombre maximum d'itération est de 7 et le nombre optimum d'itération est de 4.
 +</WRAP>
 +<WRAP centeralign half column>
 +2ième cas :
 +{{:commit:2015:timestepratiovsnumberofiterationssecondalgo.png?400 |}}
 +Le nombre maximum d'itération est de 10 et le nombre optimum d'itération est de 4, ainsi que le nombre d'itération pour adapter le pas de temps est de 6.
 +</WRAP>
 +</WRAP>
 +
  
 On distincte les différents cas suivants :  On distincte les différents cas suivants : 
  
 === Schéma d'intégration mécanique === === Schéma d'intégration mécanique ===
 +
 +Le nombre d'itérations correspond au nombre d'itérations mécaniques :
 +
 <code> <code>
-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)
 </code> </code>
 +
 === Schéma d'intégration thermo-mécanique étagé === === Schéma d'intégration thermo-mécanique étagé ===
 +
 +Le nombre d'itérations correspond au maximum entre les nombres d'itérations mécaniques et thermiques  :
 +
 <code> <code>
-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)
 </code> </code>
 +
 === Schéma d'intégration thermo-mécanique couplé === === Schéma d'intégration thermo-mécanique couplé ===
 +
 +Le nombre d'itérations correspond au nombre d'itérations thermomécaniques  :
 +
 <code> <code>
-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)
 </code> </code>
 +
 === Schéma d'intégration mécanique avec Lagrangien Augmenté === === Schéma d'intégration mécanique avec Lagrangien Augmenté ===
 +
 +Le nombre d'itérations correspond au nombre d'itérations mécaniques à l'augmentation n°0 :
 +
 <code> <code>
-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)
 </code> </code>
Line 79: Line 135:
 ==== Erreur d'intégration temporelle ==== ==== Erreur d'intégration temporelle ====
  
-Il est possible de faire l'intégration temporelle avec un pas de temps déterminé à partir de l'erreur d'intégration temporelle du pas courant +Il est possible de faire l'intégration temporelle avec un pas de temps déterminé à partir de l'erreur d'intégration temporelle du pas courant
 + 
 +Le pas de temps courant est résolu jusqu'à ce que l'erreur d'intégration temporelle soit inférieure à celle prescrite. Si ce n'est pas le cas, le pas de temps est refusé et le pas de temps est recommencé avec un pas de temps tel que l'erreur d'intégration temporelle soit égale à celle prescrite. 
 + 
 +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'erreur d'intégration temporelle.
  
 On distincte les différents cas suivants :  On distincte les différents cas suivants : 
Line 119: Line 179:
 </code> </code>
  
-^      Paramètre        ^  Défaut ^        Description  ^                                    +**Remarques importantes :**  
 + 
 +  * Ces méthodes de mise à jour du pas de temps n'ont pas été testées dans le cas d'un schéma d'intégration thermo-mécanique ! 
 +  * Si il y a un jacobien négatif durant un pas de temps, nous avons l'arrêt de l'intégration temporelle à ce pas de temps là dans le cas du schéma d'intégration explicite !  
 + 
 +==== Paramètres ==== 
 + 
 +^      Paramètre        ^  Défaut ^        Description  
 +| ''maxNbOfIteInAdaptOfTimeStep''  | 0 | Nombre d'itérations maximales pour faire diminuer le pas de temps si le nombre d'itérations est supérieur au nombre d'itérations optimales |  
 +| ''nbOptiIte''  | 4  | Nombre d'itérations optimales |                                    
 | ''timeStepDivisionFactor''  | 3.0 | Facteur de division du pas de temps en cas de problème durant la résolution du step   |   | ''timeStepDivisionFactor''  | 3.0 | Facteur de division du pas de temps en cas de problème durant la résolution du step   |  
 | ''minimumTimeStep''  | 1.0E-10 | Pas de temps en dessous duquel on arrête l'intégration temporelle  |   | ''minimumTimeStep''  | 1.0E-10 | Pas de temps en dessous duquel on arrête l'intégration temporelle  |  
Line 125: Line 194:
 | ''initialExplicitTimeStepSecurity''  | 2.0/3.0 | Facteur de sécurité initial du pas de temps critique | | ''initialExplicitTimeStepSecurity''  | 2.0/3.0 | Facteur de sécurité initial du pas de temps critique |
 | ''nbOfStepsForCriticalTimeStepUpdate''  | 1 | Nombre de pas de temps entre chaque mise à jour du pas de temps critique | | ''nbOfStepsForCriticalTimeStepUpdate''  | 1 | Nombre de pas de temps entre chaque mise à jour du pas de temps critique |
-**Remarques importantes :**  
- 
-  * Ces méthodes de mise à jour du pas de temps n'ont pas été testées dans le cas d'un schéma d'intégration thermo-mécanique ! 
- 
  
 +==== Méthode par défaut de chaque schéma d'intégration ====
 +^      Intégration temporelle        ^  Défaut ^                                   
 +| ''Quasi-statique Mechanical Time Integration''  | "NbOfMechNRIterationsTimeStepComputationMethod" |
 +| ''Implicit Mechanical Time Integration''  | "NbOfMechNRIterationsTimeStepComputationMethod" |
 +| ''Explicit Mechanical Time Integration''  | "CriticalTimeStepComputationMethod"
 +| ''Combined Implicit/Explicit Mechanical Time Integration''  | "IeIntegrationErrorTimeStepComputationMethod"
 +| ''Coupled ThermoMechanical Time Integration''  | "NbOfCoupledTmNRIterationsTimeStepComputationMethod" |
 +| ''Staggered ThermoMechanical Time Integration''  | "NbOfStaggeredTmNRIterationsTimeStepComputationMethod" |
  
 ===== Divers =====  ===== Divers ===== 
commit/2015/11_18.1447869059.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki