Author Topic: The 'niter'  (Read 2047 times)

Shilmin

  • Jr. Member
  • **
  • Posts: 40
The 'niter'
« on: July 01, 2015, 07:22:14 PM »
Dear All,

The history data located at hr(nh1), hr(nh2) is for t(n), t(n+1), respectively. In one step i.e., from t(n) to t(n+1), there will be many iterations; and some history variables should be updated at every iteration. What I did is to update the data at hr(nh2) based on the data at same storage space hr(nh2) during the iteration.
Then, I realized, in the program, the number of iterations is larger than the number of convergence, i.e., the ‘niter’ has values 0, 1-n, n+1, while there are only n iterations need to converge. These iterations may affect my update strategy of history variables. So, can you give a brief description about these two additional iterations?

Thank you!

Xiaomin

Juan

  • Jr. Member
  • **
  • Posts: 20
Re: The 'niter'
« Reply #1 on: July 02, 2015, 09:15:08 AM »
Hello  Shilmin,

I might be wrong but I believe the 'niter' counter is showing the number of iterations that have been done (so far) without including the iteration you are currently on. Thus you'd normally find in the first iteration, 'niter' value is 0.

Regarding the update of your history variables, you should always take the value stored in hr(nh1) to do your calculations and save the new value to hr(nh2) at the end of your element routine (or 'hn' to 'h1' in umat). Thus, you are always writing over hr(nh2) for each iteration keeping only the latest values.

At the next time step (when TIME command is called) FEAP updates the converged solution at the previous time step (stored in hr(nh2)) to the pointer hr(nh1) before entering your element.

I believe at the first iteration of any time step, the values in hr(nh1) and hr(nh2) are the same but hr(nh2) is updated during the Newton iterations while hr(nh1) remains unchanged during the same time step.

Best,

Juan

Shilmin

  • Jr. Member
  • **
  • Posts: 40
Re: The 'niter'
« Reply #2 on: July 02, 2015, 07:18:22 PM »
Dear Juan,

I agree with you. But, I still have some confusions.
The ‘niter’ is 0 in the fist iteration; then, the program needs n times of iterations to converge; after that, it seems there is one more iteration, e.g., for a elastic problem, it only needs 1 iteration, but ‘niter’ has 0, 1 and 2. I am not very cleared what this iteration 2 for, or where I am wrong.
The hr(nh2) is updated during the Newton iterations while hr(nh1) remains unchanged during the same time step. So, it is not easy to update hr(nh2) based on hr(nh1); one way is to update hr(nh2) based on the old vales of itself. In this case, it may induce some unnecessary updates during the iteration.

Best regards!
Xiaomin

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: The 'niter'
« Reply #3 on: July 02, 2015, 08:26:49 PM »
There is no way to know that you have converged without taking a second iteration; you have to compute at least 2 residuals.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: The 'niter'
« Reply #4 on: July 04, 2015, 01:28:15 PM »
Xiaomin,

Can you post a file for an elastic problem where niter - 0, 1, 2?