Topic: Shell-element tr_shell01; getting -nan for simple mesh

Hello together,

I have a simple example for a fem-model using shell-elements tr_shell01; I generate the mesh with triangle.Net and write it in the inputfile.
Sometimes I get results for a special mesh-discretisation and sometimes I get only -nan as result. What am I doing wrong?

Inputfile :

Test.out
#
Berechnung einer Schale zur Bemessung der Anschlusslinie
#
StaticStructural nsteps 1
#
domain 3dshell
#
OutputManager tstep_all dofman_all element_all
#
ndofman 6 nelem 4 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 1 nset 2
#
node 1 coords 3 0.0 0.0 0.0
node 2 coords 3 4.0 0.0 0.0
node 3 coords 3 4.0 1.8 0.0
node 4 coords 3 0.0 1.8 0.0
node 5 coords 3 2.0 0.0 0.0
node 6 coords 3 2.0 1.8 0.0
#
tr_shell01 1 nodes 3 4 1 5 nip 1
tr_shell01 2 nodes 3 6 4 5 nip 1
tr_shell01 3 nodes 3 3 6 2 nip 1
tr_shell01 4 nodes 3 5 2 6 nip 1
#
SimpleCS 1 thick 0.2 material 1 set 1
#
IsoLE 1 d 1.0 E 31000000.0 n 0.2 talpha 1.0
#
BoundaryCondition 1 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 values 6 0 0 0 0 0 0 set 2
Deadweight 2 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 components 6 0.0 0.0 25 0.0 0.0 0.0 valtype 2 set 1
#
ConstantFunction 1 f(t) 1.0
#
Set 1 elementranges {(1 4)}
Set 2 nodes 3 2 1 5

Result:

DofManager output:
------------------
Node           1 (       1):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           2 (       2):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           3 (       3):
  dof 1   d -nan(ind)
  dof 2   d -nan(ind)
  dof 3   d -nan(ind)
  dof 4   d -nan(ind)
  dof 5   d -nan(ind)
  dof 6   d -nan(ind)
Node           4 (       4):
  dof 1   d -nan(ind)
  dof 2   d -nan(ind)
  dof 3   d -nan(ind)
  dof 4   d -nan(ind)
  dof 5   d -nan(ind)
  dof 6   d -nan(ind)
Node           5 (       5):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           6 (       6):
  dof 1   d -nan(ind)
  dof 2   d -nan(ind)
  dof 3   d -nan(ind)
  dof 4   d -nan(ind)
  dof 5   d -nan(ind)
  dof 6   d -nan(ind)




Other Inputfile:

Test.out
#
Berechnung einer Schale zur Bemessung der Anschlusslinie
#
StaticStructural nsteps 1
#
domain 3dshell
#
OutputManager tstep_all dofman_all element_all
#
ndofman 10 nelem 8 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 1 nset 2
#
node 1 coords 3 0.0 0.0 0.0
node 2 coords 3 4.0 0.0 0.0
node 3 coords 3 4.0 1.8 0.0
node 4 coords 3 0.0 1.8 0.0
node 5 coords 3 2.0 0.0 0.0
node 6 coords 3 2.0 1.8 0.0
node 7 coords 3 3.0 0.0 0.0
node 8 coords 3 3.0 1.8 0.0
node 9 coords 3 1.0 0.0 0.0
node 10 coords 3 1.0 1.8 0.0
#
tr_shell01 1 nodes 3 10 1 9 nip 1
tr_shell01 2 nodes 3 4 1 10 nip 1
tr_shell01 3 nodes 3 5 10 9 nip 1
tr_shell01 4 nodes 3 6 10 5 nip 1
tr_shell01 5 nodes 3 3 7 2 nip 1
tr_shell01 6 nodes 3 7 8 6 nip 1
tr_shell01 7 nodes 3 7 3 8 nip 1
tr_shell01 8 nodes 3 5 7 6 nip 1
#
SimpleCS 1 thick 0.2 material 1 set 1
#
IsoLE 1 d 1.0 E 31000000.0 n 0.2 talpha 1.0
#
BoundaryCondition 1 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 values 6 0 0 0 0 0 0 set 2
Deadweight 2 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 components 6 0.0 0.0 52.5 0.0 0.0 0.0 valtype 2 set 1
#
ConstantFunction 1 f(t) 1.0
#
Set 1 elementranges {(1 8)}
Set 2 nodes 5 2 1 5 7 9



results:

DofManager output:
------------------
Node           1 (       1):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           2 (       2):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           3 (       3):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  6.59132538e-04
  dof 4   d  7.27317265e-04
  dof 5   d -1.88024691e-05
  dof 6   d  0.00000000e+00
Node           4 (       4):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  6.40100135e-04
  dof 4   d  6.84194765e-04
  dof 5   d -6.35096596e-05
  dof 6   d  0.00000000e+00
Node           5 (       5):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           6 (       6):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  6.68459302e-04
  dof 4   d  7.29900463e-04
  dof 5   d  3.42789653e-05
  dof 6   d  0.00000000e+00
Node           7 (       7):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node           8 (       8):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  6.26220253e-04
  dof 4   d  6.56379514e-04
  dof 5   d  1.75709467e-06
  dof 6   d  0.00000000e+00
Node           9 (       9):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  0.00000000e+00
  dof 4   d  0.00000000e+00
  dof 5   d  0.00000000e+00
  dof 6   d  0.00000000e+00
Node          10 (      10):
  dof 1   d  0.00000000e+00
  dof 2   d  0.00000000e+00
  dof 3   d  6.88597825e-04
  dof 4   d  7.60522270e-04
  dof 5   d -4.69618915e-06
  dof 6   d  0.00000000e+00


I have a few more questions to this shell-Element: the displacements differ in respect to commercial software (rfem)  a few millimeters. Do you think, the results I get are right? Did I miss anything in the Inputfile? Is shear locking the reason for these deviations?
And finally, what does mean NRSolver: Iteration ForceError? It appears in the command window befor calculating the results. But at the end it is declared: total 0 error(s) , 0 warning (s)

I hope you have an answer for me and thank you in advance for helping me!

2

Re: Shell-element tr_shell01; getting -nan for simple mesh

- Hi, not tried, but suspect the insufficient integration. Could you try to use NIP 4 in the first case?
- To validation with other SW: Could you report the type of element used in other SW? The element you are using in oofem is thick shell with linear approximation (the simplest and less accurate variant). You could switch to tr_shell02 (thin element with better approximation) for better accuracy with the same mesh. At the moment we do not have high order shell  elements and you need to sufficiently refine the mesh.
- The StaticStructural assumes the general nonlinear problem, the force and displacement errors reported are related to the nonlinear solver. For linear problem, you should get only 2 iterations.

Re: Shell-element tr_shell01; getting -nan for simple mesh

Thank you very much for this answer! You where right, the reason was the intergration order in this case!
At first, I wanted to use the tr_shell02 element, but unfortunately I don't know how to apply bodyforces to this element. If I only change the element and the integration order to nip 4 in the inputfile , I get a total error:

Inputfile:
Test.out
#
Berechnung einer Schale zur Bemessung der Anschlusslinie
#
StaticStructural nsteps 1
#
domain 3dshell
#
OutputManager tstep_all dofman_all element_all
#
ndofman 6 nelem 4 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 1 nset 2
#
node 1 coords 3 0.0 0.0 0.0
node 2 coords 3 4.0 0.0 0.0
node 3 coords 3 4.0 1.8 0.0
node 4 coords 3 0.0 1.8 0.0
node 5 coords 3 2.0 0.0 0.0
node 6 coords 3 2.0 1.8 0.0
#
tr_shell02 1 nodes 3 4 1 5 nip 4
tr_shell02 2 nodes 3 6 4 5 nip 4
tr_shell02 3 nodes 3 3 6 2 nip 4
tr_shell02 4 nodes 3 5 2 6 nip 4
#
SimpleCS 1 thick 0.2 material 1 set 1
#
IsoLE 1 d 1.0 E 31000000.0 n 0.2 talpha 1.0
#
BoundaryCondition 1 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 values 6 0 0 0 0 0 0 set 2
Deadweight 2 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 components 6 0.0 0.0 52.5 0.0 0.0 0.0 valtype 2 set 1
#
ConstantFunction 1 f(t) 1.0
#
Set 1 elementranges {(1 4)}
Set 2 nodes 3 2 1 5


Error I get:

Computing initial guess
_______________________________________________________
Error: (C:\Users\bp\Documents\oofem.git\src\sm\Elements\Shells\tr_shell02.C:226)

In TR_SHELL02::oofem::TR_SHELL02::computeBodyLoadVectorAt, number: 1:
This function is not implemented yet.
_______________________________________________________
No backtrace available
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1

I thought, perhaps the elementlibrary ist not up to date, and as it says above, the funktion to apply body loads is not implemented yet.