Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:integration:scheme:dynimplexpl

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
doc:user:integration:scheme:dynimplexpl [2014/10/07 18:21] jorisdoc:user:integration:scheme:dynimplexpl [2016/03/30 15:23] (current) – external edit 127.0.0.1
Line 6: Line 6:
  
 ===== Data set ===== ===== Data set =====
 +
 +==== Old Metafor Version <= 2422 ====
  
 See dynamic [[doc:user:integration:scheme:dynimpl|implicit]] and [[doc:user:integration:scheme:dynexpl|explicit]] for a description of schemes and the definition of density and initial velocities. See dynamic [[doc:user:integration:scheme:dynimpl|implicit]] and [[doc:user:integration:scheme:dynexpl|explicit]] for a description of schemes and the definition of density and initial velocities.
Line 15: Line 17:
  
 Shifting can be done automatically or manually or both. Another application of this algorithm is to stabilize explicit steps.  Shifting can be done automatically or manually or both. Another application of this algorithm is to stabilize explicit steps. 
 +
 +==== New Metafor Version > 2422 ====
 +
 +<code>
 +ti = IeTimeIntegration(metafor)
 +ti.setExplicitTimeIntegration(tiExp)
 +ti.setImplicitTimeIntegration(tiImp)
 +ti.setCurrentDynamicTimeIntegration(tiImp)
 +</code>
 +
 +where tiExp and tiImp are the references towards the explicit and implicit time integration scheme respectively.
  
 ===== Automatic Shift (method 1 or 2) ===== ===== Automatic Shift (method 1 or 2) =====
  
-By default, the algorithm chooses the method based on an integration error, the time step and the machine time. The definition ''MDE_ICPU = 1'' must be done (shift based on CPU time, otherwise dummy shift for the battery). The shift is done only if estimated and critical time steps are equal (to a safety factor). When shifting from an explicit alpha-generalized method, explicit time steps can be calculated with a bifurcation radius equal to zero to increase numerical dissipation. The option is activated for ''method=1'' but not for ''method=2'' (see [[#Implicit/explicit shift management]]).+By default, the algorithm chooses the method based on an integration error, the time step and the machine time. The definition ''MDE_ICPU = 1'' must be done (shift based on CPU time, otherwise dummy shift for the battery). The shift is done only if estimated and critical time steps are equal (to a safety factor). When shifting from an explicit alpha-generalized method, explicit time steps can be computed with a bifurcation radius equal to zero to increase numerical dissipation. The option is activated for ''method=1'' but not for ''method=2'' (see [[#Implicit/explicit shift management]]).
  
 ===== Manual Shift (method 3 or 4) ===== ===== Manual Shift (method 3 or 4) =====
  
-The user can impose shifts (see command ''.sie''). When shifting from an explicit alpha-generalized method, explicit time steps can be calculated with a bifurcation radius equal to zero to increase numerical dissipation. The option is activated for ''method=3'' but not for ''method=4'' (see [[#Implicit/explicit shift management]]).+The user can impose shifts (see command ''.sie''). When shifting from an explicit alpha-generalized method, explicit time steps can be computed with a bifurcation radius equal to zero to increase numerical dissipation. The option is activated for ''method=3'' but not for ''method=4'' (see [[#Implicit/explicit shift management]]).
  
 ===== Balancing===== ===== Balancing=====
  
-When shifting from explicit to implicit, the first implicit time step is calculated based on an integration error (majored by a value equal to the maximal change of step times the explicit step) in automatic shift and is equal to this value (maximal change of step times the explicit step) in manual shift. In addition, the user can impose a number of implicit balancing time steps when shifting from explicit to implicit. An implicit balancing step is calculated based on an explicit number of steps corresponding to the maximal change, justifying why this is an integer.+When shifting from explicit to implicit, the first implicit time step is computed based on an integration error (majored by a value equal to the maximal change of step times the explicit step) in automatic shift and is equal to this value (maximal change of step times the explicit step) in manual shift. In addition, the user can impose a number of implicit balancing time steps when shifting from explicit to implicit. An implicit balancing step is computed based on an explicit number of steps corresponding to the maximal change, justifying why this is an integer.
  
  
Line 35: Line 48:
 ===== Implicit/explicit shift management ===== ===== Implicit/explicit shift management =====
  
-Shift options are selected with the commands: +It is **mandatory** to instanciate the IeShifManager and then the parameters can adjusted if required 
- +    iesm = IeShiftManager(metafor)
-    iesm = metafor.getIeShiftManager()+
     iems.setIeShiftMethod(meth)     iems.setIeShiftMethod(meth)
     iesm.setNbOfBalanceSteps(nbbs)     iesm.setNbOfBalanceSteps(nbbs)
     iesm.setMaxStepIncrease(msin)     iesm.setMaxStepIncrease(msin)
     iesm.setAutomaticShiftSecurity(secu)     iesm.setAutomaticShiftSecurity(secu)
 +    iesm.setCpuDependency(cpuDep)
 ^ Parameter ^ default ^ description ^ ^ Parameter ^ default ^ description ^
 |''meth''| | = ''IESM_NOSHIFTMETHOD'' : no shift (default)| |''meth''| | = ''IESM_NOSHIFTMETHOD'' : no shift (default)|
-|        | | = ''IESM_AUTOMATICSHIFTMETHODWITHDISS'' shift done automatically from integration error and CPU times (requires ''MDE_ICPU=1''); when shifting to an implicit method, explicit time steps are calculated with numerical dissipation| +|        | | = ''IESM_AUTOMATICSHIFTMETHODWITHDISS'' shift done automatically from integration error and CPU times (requires ''MDE_ICPU=1''); when shifting to an implicit method, explicit time steps are computed with numerical dissipation| 
-|        | | = ''IESM_AUTOMATICSHIFTMETHOD'' : shift done automatically from integration error and CPU times (requires ''MDE_ICPU=1''); when shifting to an implicit method, there is no explicit time steps calculated with numerical dissipation| +|        | | = ''IESM_AUTOMATICSHIFTMETHOD'' : shift done automatically from integration error and CPU times (requires ''MDE_ICPU=1''); when shifting to an implicit method, there is no explicit time steps computed with numerical dissipation| 
-|        | | = ''IESM_MANUALSHIFTMETHODWITHDISS'' : shift times are set with the command ''.sie'' (see below); when shifting to an implicit method, explicit time steps are calculated with numerical dissipation| +|        | | = ''IESM_MANUALSHIFTMETHODWITHDISS'' : shift times are set with the command ''.sie'' (see below); when shifting to an implicit method, explicit time steps are computed with numerical dissipation| 
-|        | | = ''IESM_MANUALSHIFTMETHOD'' : shift times are set with the command ''.sie'' (see below); when shifting to an implicit method, there is no explicit time steps calculated with numerical dissipation|+|        | | = ''IESM_MANUALSHIFTMETHOD'' : shift times are set with the command ''.sie'' (see below); when shifting to an implicit method, there is no explicit time steps computed with numerical dissipation|
 |        | | = ''IESM_BALANCEDEXPLICITMETHOD'' : every msin explicit steps, balanced is done with an implicit step to stabilize nonlinear computing| |        | | = ''IESM_BALANCEDEXPLICITMETHOD'' : every msin explicit steps, balanced is done with an implicit step to stabilize nonlinear computing|
 |''nbbs'' |  0  | when shifting to implicit, is equal to the number of balancing steps | |''nbbs'' |  0  | when shifting to implicit, is equal to the number of balancing steps |
 |''msin'' |  6  |maximal change of the time step; this value is the ratio of the implicit step to the explicit step for a change to implicit or a balancing, so this is an integer| |''msin'' |  6  |maximal change of the time step; this value is the ratio of the implicit step to the explicit step for a change to implicit or a balancing, so this is an integer|
 |''secu'' |  1.5  | safety coefficient for automatic shift| |''secu'' |  1.5  | safety coefficient for automatic shift|
 +|''cpuDep''| ''False'' | specify if the automatic criterion for shifting from one time integration to another depends on the User CPU time. (Metafor Version > 2422)|. 
 For manual shift, the user can set times at which method is changed. This is done with the commands: For manual shift, the user can set times at which method is changed. This is done with the commands:
  
doc/user/integration/scheme/dynimplexpl.1412698902.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki