Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:integration:general:mim_tim

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
Last revisionBoth sides next revision
doc:user:integration:general:mim_tim [2013/07/12 15:26] jorisdoc:user:integration:general:mim_tim [2017/06/16 17:50] papeleux
Line 1: Line 1:
 +====== Managing N.-R. Iterations ======
  
 +Mechanical iterations parameters are imposed by functions associated to ''metafor.getMechanicalIterationManager()'', when thermal iterations parameters are imposed by functions associated to  ''metafor.getThermalIterationManager()''.
 +
 +    mim = metafor.getMechanicalIterationManager() 
 +    tim = metafor.getThermalIterationManager()
 +    
 +    mim/tim.setResidualComputationMethod(meth)    
 +    mim/tim.setVerbose()     
 +    mim/tim.setResidualTolerance(prec)
 +    mim/tim.setMaxNbOfIterations(itma)
 +    mim/tim.setNbOfIterationsForStiffUpdate(irea)
 +    mim/tim.setMaxNbOfLineSearchIterations(lsma)
 +    mim/tim.setLineSearchTolerance1(lsp1)
 +    mim/tim.setLineSearchTolerance2(lsp2)
 +    mim.setPredictorComputationMethod(predMeth)
 +    mim.setConstrainedDofsVAComputationMethod(VACMeth)
 +    mim/tim.setPreviousResidualsDecreaseCriterion()
 +    mim/tim.setCpuDependency(cpuDep)
 +where ''meth'' defines the method used to compute the $Residual$.
 +
 +=== Method1ResidualComputation(limitNormFactor) ===
 +<note important>important : since revision 2946 Method1ResidualComputation is **not anymore** the default value</note>
 +
 +The residual is adimensionalized by the norm of external forces and internal reactions .
 +First :
 +
 +$$Rmin = \frac{||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces||}{nreac}  $$
 +
 +If 
 +$$ Rmin < limitNormFactor $$
 +
 +$Rmin$ is set to
 +$$ Rmin = limitNormFactor $$
 +
 +and the residual is adimensionalized :
 +
 +$$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$
 +
 +where
 +
 +$ndofs$ : total number of degrees of freedom
 +
 +$nreac$ : number of fixed degrees of freedom (having an associated reaction)
 +
 +=== Method2ResidualComputation(limitNormFactor) ===
 +
 +The residual is adimensionalized by the square of the norm of external forces and internal reactions. First:
 +
 +$$Rmin = \frac{\sqrt{||FreeExternalForces||^2 + ||CstrInternalForces||^2+||CstrInertialForces||^2}}{nreac}$$
 +
 +If
 +$$ Rmin < limitNormFactor $$
 +then 
 +$$ Rmin = limitNormFactor $$
 +
 +and the residual is adimensionalized :
 +
 +$$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$
 +
 +where
 +
 +$ndofs$ : total number of degrees of freedom
 +
 +$nreac$ : number of fixed degrees of freedom (having an associated reaction)
 +
 +=== Method3ResidualComputation(limitNormFactor) ===
 +
 +The residual is adimensionalized by the norm of external and inertial forces, and internal reactions (**value to use preferentially for thermal simulations. Careful, the user must define it**). 
 +
 +If 
 +$$ ||FreeExternalForces|| < limitNormFactor $$
 +then 
 +$$ Residual = max(|FreeResidual|) $$
 +Else,
 +$$Rmin = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces|| $$
 +and
 +$$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$
 +
 +=== Method4ResidualComputation(limitNormFactor) (**default value**) ===
 +<note important>important : since revision 2946 Method4ResidualComputation is the new **default value**</note>
 +This method is the same as ''Method1ResidualComputation()'' but without dividing by the number of dofs nor nreac, so
 +
 +$$Rmin = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces|| $$
 +
 +If
 +$$ Rmin < limitNormFactor$$
 +then 
 +$$ Rmin = limitNormFactor $$
 +
 +and the residual is adimensionalized :
 +
 +$$Residual = \frac{||FreeResidual||}{Rmin}$$
 +
 +=== Method5ResidualComputation(adimFactor) ===
 +
 +The residual is adimensionalized by the factor ''adimFactor'', given by the user, without dividing by the number of dofs.
 +
 +$$Residual = \frac{||FreeResidual||}{adimFactor }$$
 +
 +=== Method6ResidualComputation(adimFactor) ===
 +
 +The residual is adimensionalized by the factor ''adimFactor'', given by the user, and by the number of dofs.
 +$$Residual = \frac{||FreeResidual||}{ndofs * adimFactor }$$
 +
 +where
 +
 +$ndofs$ : total number of dofs
 +
 +=== Parameters ===
 +^ Parameter ^ Default value ^  Description 
 +| ''limitNormFactor'' |  1.0  | Value from which the residual is no longer divided by $$Rmin$$ (to adjust as a function of the loading using verbose output)|
 +| ''adimFactor'' |  -  | Fixed adimensionalization factor for methods #5 and 6 (no default value, the factor must be defined for these methods)|
 +| ''prec'' |  1.0E-4  | accuracy that the residual must reach |
 +| ''itma'' |  7  | maximal number of Newton-Raphson iterations (this number if corrected internally if the automatic criterion is used to update the matrix). Iterations are stopped if the residual does not decrease over 6 iterations|
 +| ''irea'' |  1  |= 1 : stiffness matrix updated for each iteration|
 +|         | > 1 : stiffness matrix is updated automatically if the iteration number is lower than ''irea''. The criterion is based on a convergence speed and a CPU time ratio (requires ''MDE_ICPU=1'')|
 +| ''lsma'' |  0  | maximal line-search iteration number|
 +| ''lsp1'' |  1.0  | accuracy that the line-search residual must reach  |
 +| ''lsp2'' |  1.E-8  | stop criterion when the line search parameter is not updated enough  |
 +| ''predMeth'' |  ''EXTRAPOLATION_DEFAULT''  | ''EXTRAPOLATION_DEFAULT'' = Extrapolation of the scheme by default (for example method to compute the displacement predictor by Newmark formula in the case of  [[doc:user:integration:scheme:dynimpl#la_famille_alpha-generalisee|alpha-generalized scheme]])  |
 +|              |                        | ''EXTRAPOLATION_MRUA'' = method to compute the displacement predictor by MRUA formula (for now only possible for [[doc:user:integration:scheme:dynimpl#la_famille_alpha-generalisee|alpha-generalized algorithms]]) |
 +|              |                        | ''EXTRAPOLATION_ZERO'' = New positions are equal to the old ones, speed (and acceleration for dynamic schemes) equal to zero (for now only possible for  [[doc:user:integration:scheme:quasistatique|quasi-static algorithms]] and [[doc:user:integration:scheme:dynimpl#la_famille_alpha-generalisee|alpha-generalized algorithms]]) . |
 +| ''VACMeth'' | ''VAC_SCHEMECONSISTANT'' | ''VAC_SCHEMECONSISTANT'' : Calculation of speed and acceleration with Newmark formula | 
 +|             | | ''VAC_BACKWARDEULER'' : Calculation of speed and acceleration using Backward Euler (to stabilize Newmark with dofs with a non zero fixed displacement. See JPP's thesis pg VIII.28) |
 +| ''cpuDep'' | ''False'' | Specify if the criterion for updating the stiffness matrix (irea > 1) depends on the User CPU time. (Metafor Version > 2422). | 
 + 
doc/user/integration/general/mim_tim.txt · Last modified: 2024/03/11 19:04 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki