Relative Norm Unbalance Test: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
(Created page with '{{CommandManualMenu}} This command is used to construct a convergence test which uses the relative norm of the right hand side of the matrix equation to determine if convergence...')
 
mNo edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{CommandManualMenu}}
{{CommandManualMenu}}


This command is used to construct a convergence test which uses the relative norm of the right hand side of the matrix equation to determine if convergence has been reached. What the right-hand-side of the matrix equation is depends on integraor and constraint handler chosen. Usually, though not always, it is equal to the unbalanced forces in the system. The command to create a RelativeNormUnbalance test is the following:
This command is used to construct a convergence test which uses the relative norm of the right hand side of the matrix equation to determine if convergence has been reached. What the right-hand-side of the matrix equation is depends on integrator and constraint handler chosen. Usually, though not always, it is equal to the unbalanced forces in the system. The command to create a RelativeNormUnbalance test is the following:


{|  
{|  
| style="background:yellow; color:black; width:800px" | '''test RelativeNormUnbalance $tol $iter <$pFlag>'''
| style="background:lime; color:black; width:800px" | '''test RelativeNormUnbalance $tol $iter <$pFlag> <$nType>'''
|}
|}


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, ...)
|}
|}


Line 32: Line 33:


NOTES:
NOTES:
# When using the Penalty method additional large forces to enforce the penalty functions exist on the right had side, making
# When using the Penalty method additional large forces to enforce the penalty functions exist on the right hand side, making
convergence using this test usually impossible (even though solution might have converged).
convergence using this test usually impossible (even though solution might have converged).
# <math> \parallel R(U^0) \parallel \!</math> is the initial unbalance seen by the system when solveCurrentStep() is invoked on the algorithm.  
# <math> \parallel R(U^0) \parallel \!</math> is the initial unbalance seen by the system when solveCurrentStep() is invoked on the algorithm.  
Line 47: Line 48:
This integrator is testing:
This integrator is testing:
   
   
:<math>\frac{\parallel R(U^i) \parallel}{\parallel R(U^0) \parallel} < \text{tol} \!</math>


:<math>\frac{\parallel R(U^i) \parallel}{\parallel R(U^0) \parallel} < \text{tol} \!</math>
 
----
 
Code Developed by: <span style="color:blue"> fmk </span>

Latest revision as of 17:46, 10 June 2016




This command is used to construct a convergence test which uses the relative norm of the right hand side of the matrix equation to determine if convergence has been reached. What the right-hand-side of the matrix equation is depends on integrator and constraint handler chosen. Usually, though not always, it is equal to the unbalanced forces in the system. The command to create a RelativeNormUnbalance test is the following:

test RelativeNormUnbalance $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 Penalty method additional large forces to enforce the penalty functions exist on the right hand side, making

convergence using this test usually impossible (even though solution might have converged).

  1. <math> \parallel R(U^0) \parallel \!</math> is the initial unbalance seen by the system when solveCurrentStep() is invoked on the algorithm.
  2. Sometimes there may be problems converging if <math> \parallel R(U^0) \parallel \!</math> is very small to being with.

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 R(U^i) \parallel}{\parallel R(U^0) \parallel} < \text{tol} \!</math>



Code Developed by: fmk