FEAP User Forum
FEAP => Parallel FEAP => Topic started by: kiakarim 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!
-
Could you test if using PENAlty instead of LAGM for contact works. Not sure we did the Lagrange multiplier for contact.
-
Parallel contact is only implemented for the penalty method. The indefinite systems generated by LM methods are significantly more challenging.
-
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.
-
Thanks for the test case. We will have a look at try to fix the bug.
-
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
-
Yes, this worked. Thank you!!