Author Topic: 3d element and surface element in 3d  (Read 4694 times)

leeyongjae89

  • Jr. Member
  • **
  • Posts: 24
3d element and surface element in 3d
« on: September 03, 2018, 10:51:25 AM »
Dear Feap team,
I have a geometry consisting 3d-tetrahedral elements.
And I analyze the structure with "elmt01" which consider 3d-tetrahedral element (ndf=4, coupled), (nel=4). The elmt01 has 3 time-dependent history variable and 5 time-independent history variable.  It's okay, it works.

Now I am trying to adopt surface triangular elements into the existing geometry with "elmt02" where I'd like to have several history variables.

So I defined several elements in the input file, for example,

Elements
       1   0   1        1        2        3        4
...
       n   0   2        1        2        3      (the lines I added additionally for the surface elements)
...

And I tried to, for example, write
[isw = 1]
nh1 = 1
nh2 = nh1
nh3 = 1
then it give error no matter the number of history variables.

I have no idea , the reason why the error comes. (and the "nst" is automatically set to 16 in "elmt02". I think nst should be 12.)
Could I get some hints?

Thanks in advance.



« Last Edit: September 03, 2018, 11:03:37 AM by leeyongjae89 »

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2647
Re: 3d element and surface element in 3d
« Reply #1 on: September 03, 2018, 11:12:24 AM »
The 'nst' variable in an element routine will always be the size of the largest element.  You only need to use the parts you want (which will be the upper 12x12 part for the triangle if you have 4 dof's/node).

You set the number of history variables you want in each element routine.  The number for 'nh1' in elmt01 will be the number for each integration point times the number of points (if you use only 1/pt per element it is just the number you need). Similarly for 'nh3'.  In elm02 you do the number you need there.  You are only setting 1 history variable for each element with the data you show.

Caution, if you have inertia type terms for the transient behavior you need more than 1/pt integration for these terms.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2647
Re: 3d element and surface element in 3d
« Reply #2 on: September 03, 2018, 11:17:00 AM »
One other comment.  If you are using 'ver8.5' you can split your mesh input into parts using

*AUTo
ELEM NODE=4
  1   list of tet elements
  2  ....


ELEM NODE=3
  1  list of triangular face elements
  2  ....

leeyongjae89

  • Jr. Member
  • **
  • Posts: 24
Re: 3d element and surface element in 3d
« Reply #3 on: September 03, 2018, 12:53:28 PM »
Thanks professor, Yes, I understand. Each element routine can have the different number of history variables. But it gives errors and I think it is related to the number of history variables. Could the version of FEAP be the cause of the errors?

In terminal, it says

Backtrace for this error:
#0  0x7F9E54988E08
#1  0x7F9E54987F90
#2  0x7F9E540B94AF
#3  0x4E8631 in lclip_
#4  0x686478 in plfacn_
#5  0x60846C in pplotf_
#6  0x53A83A in pmacr3_
#7  0x425826 in pmacr_
#8  0x419031 in pcontr_
Segmentation fault (core dumped)

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2647
Re: 3d element and surface element in 3d
« Reply #4 on: September 03, 2018, 01:59:08 PM »
You need to use the debugger to find where the error is occurring.

Feap should be able to handle several history variables if you set them up properly.  It is your error probably and you need to trace the use carefully.  Be sure that any value referencing a history variable has at least one integer*8  parameter.  If you only have 32 bit values (integer or integer*4) you will get errors.

Can you post more information so we can help you trace the error better.

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: 3d element and surface element in 3d
« Reply #5 on: September 04, 2018, 07:54:26 AM »
While you try to debug this problem, it is best to not try plotting things.  First get the history working correctly.

Most important is to use a debugger (gdb for example) and valgrind.  In this case, I would guess that valgrind will help you quickly.