Total Relative Norm Displacement Increment Test: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 20: Line 20:
| || 1 print information on norms each time test() is invoked
| || 1 print information on norms each time test() is invoked
|-
|-
| || 2 print information on norms and number of iterations at end of successfull test
| || 2 print information on norms and number of iterations at end of successful test
|-
|-
| || 4 at each step it will print the norms and also the <math>\Delta U</math> and <math>R(U)</math> vectors.
| || 4 at each step it will print the norms and also the <math>\Delta U</math> and <math>R(U)</math> vectors.
|-
|-
| || 5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCEESSFULL test
| || 5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCCESSFUL test
|-
|-
| '''$nType''' || optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)
| '''$nType''' || optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)
Line 33: Line 33:


NOTES:
NOTES:
# When using the Lagrange Multipliers method additional unknows, the lagrange multipliers, exist in the solution vector, making convergence using this test usually impossible (even though solution might have converged).
# When using the Lagrange Multipliers method additional unknowns, the Lagrange multipliers, exist in the solution vector, making convergence using this test usually impossible (even though the solution might have converged).




Line 47: Line 47:
   
   


:<math>\frac{\parallel \Delta(U^i) \parallel}{\parallel \Delta(U^0) \parallel + ... + \parallel \Delta(U^i) \parallel} < \text{tol} \!</math>
:<math>\frac{\parallel \DeltaU^i \parallel}{\parallel \DeltaU^0 \parallel + ... + \parallel \DeltaU^i \parallel} < \text{tol} \!</math>





Revision as of 02:36, 1 September 2012




This command is used to construct a convergence test which uses the relative of the solution vector of the matrix equation to determine if convergence has been reached. The RelativeTotalNormDispIncr object tests for convergence using the ratio of the current norm to the total norm (the sum of all the norms since last convergence) of the solution vector. What the solution vector of the matrix equation is, depends on the integrator and constraint handler chosen. Usually, though not always, it is equal to the displacement increments that are to be applied to the model. The command to create a RelativeTotalNormDispIncr test is the following:

test RelativeTotalNormDispIncr $tol $iter <$pFlag> <$nType>


$tol the tolerance criteria used to check for convergence
$iter the max number of iterations to check before returning failure condition
$pFlag optional print flag, default is 0. valid options:
0 print nothing
1 print information on norms each time test() is invoked
2 print information on norms and number of iterations at end of successful test
4 at each step it will print the norms and also the <math>\Delta U</math> and <math>R(U)</math> vectors.
5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCCESSFUL test
$nType optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)



NOTES:

  1. When using the Lagrange Multipliers method additional unknowns, the Lagrange multipliers, exist in the solution vector, making convergence using this test usually impossible (even though the solution might have converged).



THEORY:

If the system of equations formed by the integrator is:

<math>K \Delta U^i = R(U^i)\,\!</math>

This integrator is testing:


<math>\frac{\parallel \DeltaU^i \parallel}{\parallel \DeltaU^0 \parallel + ... + \parallel \DeltaU^i \parallel} < \text{tol} \!</math>



Code Developed by: Andreas Schellenberg, University of California, Berkeley.