Author Topic: Simple Contact Problem  (Read 9823 times)

kiakarim

  • Jr. Member
  • **
  • Posts: 19
Simple Contact Problem
« on: August 23, 2021, 06:44:54 AM »
Hello everyone,

first of all I have to thank you for all the effort you make in order to improve the user experience.

Currently im stuck with a quite simple contact problem (see serial Input-File Icont), that runs without any problem in the serial environment.
However, in the parallel environment the solution interrupts right in the beggining: "New Non-zero at [...] caused a malloc". 
A reinstallation of the newest build (8.6.1j) did not alleviate the problem.

My parallelisation procedure is as follows:
 - First build a plain Input file using OUTM
 - In Icont.rev  I add batch commands GRAPH NODE 4 and OUTD AIJ 1
 - After parallel input files are generated, the calculation is started by the command make feaprun-superlu.

Do you have any suggestions?

Thank you in advance!



 


Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Simple Contact Problem
« Reply #1 on: August 23, 2021, 11:39:08 AM »
Could you test if using PENAlty instead of LAGM for contact works.  Not sure we did the Lagrange multiplier for contact.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: Simple Contact Problem
« Reply #2 on: August 23, 2021, 04:22:46 PM »
Parallel contact is only implemented for the penalty method.  The indefinite systems generated by LM methods are significantly more challenging.

kiakarim

  • Jr. Member
  • **
  • Posts: 19
Re: Simple Contact Problem
« Reply #3 on: August 24, 2021, 06:34:20 AM »
Yeah, it works fine using the penalty method, although for me personally lagm is a far more elegant method and shows better results in serial solution.   :D

I would like to comment on a little offtopic bug:
Feap offers the possibility to include a rigid contact surface into the calculation.
On p. 173 of the FEAP 8.6 User manual it is written, that the surface normal for a cartesian plane is either specified by positive or negative coordinate direction.
However, while using negative direction say -3 for negative z-direction, Feap prompts an error: "**ERROR** No user rigid surface -3" and stops.
I was able to circumvent this error by commentic the plstop in line 77 in $FEAPHOME8_6/contact/ntrnd/cruser.f and achieved reasonable results.
For me it is quite hard to find the origin of the error.
Maybe you could look at the bug and fix it for a future release. 

P.S.: A demo input file is attached.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: Simple Contact Problem
« Reply #4 on: August 24, 2021, 11:20:32 AM »
Thanks for the test case.  We will have a look at try to fix the bug.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Simple Contact Problem
« Reply #5 on: August 25, 2021, 09:25:51 AM »
The error is caused by an erroneous call to cruser in ~/contact/ntrnd/cntrnd.f

Under opetion: csw.eq.313 make following change

!       Set user values
        if(nint(cs02(2,0)).eq.6) then
          call cruser(cs02,ch2(1,1),cn,cn,ndm, resv,tanm, 0)
        endif

kiakarim

  • Jr. Member
  • **
  • Posts: 19
Re: Simple Contact Problem
« Reply #6 on: August 25, 2021, 09:43:54 AM »
Yes, this worked. Thank you!!