Author Topic: Partition and Convergence  (Read 11505 times)

RD09

  • New Member
  • *
  • Posts: 5
Partition and Convergence
« on: March 04, 2024, 02:48:35 PM »
Hello everyone,

Currently, I am using staggered approach (PARTITION) to solve my multiphysics problem. I have following questions regarding the convergence criteria:

1. Instead of having the same tolerance values for both partitions, how can I set the tolerance values for relative energy and residual separately in each partition?

2. Also, is it possible to change convergence criteria rather than relative energy and residual in Newton-Raphson iterations?

Thank you,
RD

Code: [Select]
PART
1 1 1 0
0 0 0 1

batch
PART,,1
prop,,1,2
end
1 0 0 1.e6 0 1 0 0
1 0 0 1.e6 1 0 0 0

batch
optimize
DT,,dt
TOL,,1e-16
LOOP,timestep,ns
time

part,,1
loop,,20
tang,,1
next

part,,2
loop,,20
tang,,1
next

next ! next timestep
END

inte

STOP

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1160
Re: Partition and Convergence
« Reply #1 on: March 05, 2024, 11:50:39 PM »
What version of FEAP are you using?

RD09

  • New Member
  • *
  • Posts: 5
Re: Partition and Convergence
« Reply #2 on: March 06, 2024, 01:45:24 AM »
I am using version 8.6 of FEAP.

Thank you,
RD

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1160
Re: Partition and Convergence
« Reply #3 on: March 11, 2024, 03:28:11 PM »
Bottomline:  You should set the tolerances each time your switch partitions if they are changing.

In more detail, I had a look at the code; here is what I see.

The tolerances are set using the TOLerence command (program/pmacr2.f).  There are 4 options:
Code: [Select]
!     Set solution tolerance
!     [tol,,eval,rval]     - set relative convergence tolerance                        tol = eval, tolr = rval
!     [tol,ener,value]    - set absolute convergence tolerance                      enzer = value
!     [tol,emax,value]  - set comparison value of convergence to variable   rnmax = value
!     [tol,iter,itol,atol,v3,v4]  - set residual & absolute convergence tols      itol = itol; atol = atol; dtol = v3;  pmaxit = v4
Of these tolerances only itol and atol are stored per partition (i.e you can change to a partition and set them, and then switch out of the partition and then later switch back and they will be remembered).  The recollection of itol and atol is handled in program/partpt.f which gets called out of program/pmacr6.f upon execution of the PARTition command.

The convergence criteria can be found in program/pmacr1.f.  They are based on a series of OR statements:
1. Energy Norm < tol * rnmax   (rnmax is normally the energy norm from the first iteration, unless manual set otherwise)
2. Residual Norm per equation < Residual Norm / First Iteration Residual Norm  * sqrt(tol) * 0.001
3. Residual Norm < First Iteration Residual Norm * told
4. Energy Norm < enzer

The values stored per partition are utilized when using the conjugate gradient solver.  However, at present only itol is used.  atol is not, nor do I believe dtol or pmaxits are used, but I may have missed something.




RD09

  • New Member
  • *
  • Posts: 5
Re: Partition and Convergence
« Reply #4 on: March 13, 2024, 11:46:24 AM »
Thank you so much Professor. The detailed information is very helpful for me.

Thanking you,
RD