Author Topic: utx Naming for user elements in Parallel FEAP 8.6n  (Read 12956 times)

JPlaten

  • New Member
  • *
  • Posts: 6
utx Naming for user elements in Parallel FEAP 8.6n
« on: March 17, 2022, 01:39:32 PM »
Dear all,

I have noticed a strange behavior in the newest FEAP 8.6n version. I migrated elements from FEAP 8.4 to FEAP 8.6. They are working in the serial version of FEAP 8.6n. To improve the readability of the input file I specified names for the individual elements when the element is called with isw -1. I wrote the naming in the utx(1) of the umac1.h header file. Since the elements are calculation intense I moved to the parallel version of FEAP. In the parallel version of FEAP 8.4 everything worked and I achieved the same convergence like the serial version.

But whenever I ran simulations in the parallel version of FEAP 8.6n I got weird problems. Since the mesh was quite large I put it in a separate file. So my running shell script for PARFEAP first creates a flat file. This seems to work. In the attached .zip file the Itest.rev file is the one I got after the OUTM command. Afterwards I create the input files for the individual processors via PARMETIS in the current example. I did some testing and using METIS or PARMETIS did not make a difference. The attached Itest_0001 file is the output from PARMETIS for processor 1. Obviously the degrees of freedom for the element and the boundary conditions are wrong.

I could fix the issue by not using the naming option via utx(1). I just commended the line out. After doing this everything worked fine.

So my question remains, if anybody else experienced this behavior and if that behavior can be fixed.

Best regards
JPlaten
« Last Edit: March 18, 2022, 11:29:09 AM by JPlaten »

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #1 on: March 17, 2022, 04:50:19 PM »
Hmmm....strange error.
It is hard for me to see the boundary condition error but I guess I can map the local nodes to the global nodes to figure out the values.

What I do see quickly however is that the material user card is scrambled and this is not good.  In Itest.rev it has printed:
Code: [Select]
MATErial       1
  USER 5              5    1    1    2    3    4
whereas in Itest_0001 it has printed
Code: [Select]
MATErial       1
  USER 5              5    5    1    1    2    3
So something went wrong someplace which seems relevant to the fact that removing the utx(1) set fixes things.  To that end can you post a copy of Itest_0001 for the case where you have commented out the setting of utx(1)?

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #2 on: March 17, 2022, 04:56:20 PM »
Also please post Itest.rev for the case where utx(1) is not set.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #3 on: March 17, 2022, 05:23:42 PM »
I just tried this  on one of my own user elements with utx(1).  And it seems to work just fine.  It properly prints the name assigned in utx(1) and not USER etc.  Also, I notice that you say umac2.h in your message.  It should be umac1.h.

Here is some of my element code:

Code: [Select]
      implicit   none

      include   'eldata.h'
      include   'iofile.h'
      include   'strnum.h'
      include   'umac1.h'

      integer       :: ndf,ndm,nst,isw
      integer       :: ix(*)
      real (kind=8) :: d(*),ul(ndf,*),xl(ndm,*),tl(*),s(nst,*),p(*)

      integer       :: i

!     Set material reference name

      if( isw.lt.0 ) then
        utx(1) = 'solid_piezo'  ! 15 character naming option
!                               ! Access: MATErial "ma"
!                               !   solid_piezo (instead of USER 11)

!     Report element type on command "show,elem"

      elseif( isw.eq.0 ) then

        write(iow,2000)
        if(ior.lt.0) write(*,2000)

!     Input material property data and set plot sequence for 8-node brick

      elseif( isw.eq.1 ) then
« Last Edit: March 17, 2022, 08:36:14 PM by Prof. S. Govindjee »

JPlaten

  • New Member
  • *
  • Posts: 6
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #4 on: March 18, 2022, 11:46:46 AM »
Dear Professor Govindjee,

thanks a lot for your replies. I did as you asked and put together another .zip file. This time I used element 1 since I copied my element 5 to one to test everything in a different .f file. Here everything is as it is supposed to be.

I noticed something different. The code in my old element 5 was
utx(1) = 'User 5'.
I thought back then that this utx(1) had to be specified for every element.

I now just assigned a different name. This time it is
utx(1) = 'TEST'.

If I now run the same problem again the Itest_0001 looks as expected. The files are attached in the Itest-TEST.zip. Could the problem be the blank space before the 5 in the old naming?

Best regards
JPlaten

JStorm

  • Sr. Member
  • ****
  • Posts: 250
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #5 on: March 18, 2022, 01:11:27 PM »
Maybe the utx name "User 5" is problematic due to the space, but it also uses a FEAP input command (USER) as an element name.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #6 on: March 18, 2022, 01:25:40 PM »
Yes.  USER + space + number will be deadly.  When FEAP parses the line it reads 1 text string and then a series of numbers.  When it sees the space, it thinks the string is done.  There may be a way to get it to work by escaping the space but I do not recommend that.  What would work is something like USER_5.  However my real recommendation would be a string describing the physics, for example in my test case it was solid_piezo.
« Last Edit: March 18, 2022, 09:05:58 PM by Prof. S. Govindjee »

JPlaten

  • New Member
  • *
  • Posts: 6
Re: utx Naming for user elements in Parallel FEAP 8.6n
« Reply #7 on: March 19, 2022, 07:51:21 AM »
Thank you a lot for the reply, I was not aware of the handling of strings in FEAP! I already changed the name as the first "name" was only for debugging purposes.