Author Topic: Augmented Lagrange Method for User Defined Element (Q1P0)  (Read 6179 times)

osman

  • Jr. Member
  • **
  • Posts: 13
Augmented Lagrange Method for User Defined Element (Q1P0)
« on: September 22, 2014, 06:43:11 AM »
Hi everyone,

I would like to implement augmented Lagrangian method to enforce incompressibility to my user defined element routine handling Q1P0.

I looked through the formulation from related papers of C. Miehe, J. C. Simo and the FEAP theory manual as well. In theory, it seems to be quite easy to implement it since I have a scalar update algorithm for Q1P0 element. However, when I checked the feap intrinsic element fld3d2.f in the hope of modifying isw.eq.10 so that I could incorporate it with my element routine I got confused with all the variables fp,hr,npm..etc defined and the start/end of this execution flag within the routine. In fact, it is hard to get a clear picture out of that.

I tried to write an another script which calls this element routine within the loop which was supposed to be Uzawa algorithm. Nevertheless, this extra script is obviously omitted by FEAP and the element does not make it through the loop.

Attached I am sending the element routine and the script I wrote which was supposed to be so called Uzawa algorithm.

Has anybody implemented this algorithm for his or her own element subroutine or is there any suggestion and hints you can give in order to modify it from FEAP element routine?

Thanks in advance.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Augmented Lagrange Method for User Defined Element (Q1P0)
« Reply #1 on: September 24, 2014, 09:16:15 AM »
For Q1P0, npm=1. The update is trivial then, as you suspect.  You do need to save the multiplier as a history variable. n1=1 and hr(nh2)=hr(nh1) + augment term in isw=10 part of element.  You use the hr(nh2) value in other isw.

osman

  • Jr. Member
  • **
  • Posts: 13
Re: Augmented Lagrange Method for User Defined Element (Q1P0)
« Reply #2 on: September 30, 2014, 10:09:48 AM »
Thank you Professor,

I tried to implement it in my element routine. However, whenever I write the output of augf and d(185) it returns 1 for augf which is by default. However in the input file I specify it to be 1.4, for example. Similarly, the output of d(185) happens to be zero always which spoils the update of xlamd. Then, it is obvious that xlamd becomes always zero.

As far as I looked through the feap intrinsic element routines in solid3d directory I realized that my element is a modified version of fl3d1.

I am sending the subroutine and the input file as attachments. Would you please help me out in order to narrow down the source of errror?

Regards

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Augmented Lagrange Method for User Defined Element (Q1P0)
« Reply #3 on: October 07, 2014, 11:34:01 AM »
You should not be calling the umat routines directly.  They are designed to be used with the existing elements along with materials called by a UCON

MATE
  SOLID
     .....
     UCON HEAR .............

If you are going to write your own element then you need to write everything related to materials and assignments yourself.  You could use the existing elements to do what you desire and still use your own material model.