Author Topic: Partitioned saddle-point problem  (Read 9103 times)

wklausler

  • Jr. Member
  • **
  • Posts: 27
Partitioned saddle-point problem
« on: May 27, 2023, 09:09:07 AM »
Hello parFEAP users,

I have a magneto-mechanical user element (3 DOF mech, 1 DOF mag), which is a saddle-point problem. With serial FEAP, I can run simulations with partitions. I would like to parallelize these simulations. I am aware that parFEAP does not feature partitions and am attempting a workaround: with a switch set by a user macro, I fill either the mech-mech element tangent or the mag-mag tangent, and placing ones on the inactive diagonals. This user macro also stores and sets the residual and energy norms for each partition.

This workaround yields the PETSC no-convergence error 'iterations exceeded'. Troubleshooting steps taken thus far include adding the PETSC command '-pc_fieldsplit_detect_saddle_point' with the the presence of the FEAP domain decomposition command OUTD,BAIJ and simply leaving the inactive tangent partition completely empty. This approach has yielded the PETSC no-convergence error 'indefinite matrix'. I am assuming that my issue lies in the min-max nature of the material formulation.

I would greatly appreciate any advice or tips.

Best regards,
WK


Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: Partitioned saddle-point problem
« Reply #1 on: May 27, 2023, 12:42:51 PM »
This is something I have been thinking about adding to FEAP for sometime now.  The latest petsc release no longer requires one to determine preallocations; this may make it substantially easier to implement partitions into parFEAP.  So you may wish to consider that as one option. 

Notwithstanding, I would perhaps first start by building the whole matrix and figuring out how to set the petsc options so that it will converge on a saddle point problem.  I have never tried this but I note that in src there are some examples ($PETSCDIR/src/ksp/ksp/tutorials).