Author Topic: Element transformation subroutines  (Read 2850 times)

Marin

  • Jr. Member
  • **
  • Posts: 14
Element transformation subroutines
« on: October 20, 2021, 06:52:32 AM »
Dear all,

I am working on adding a three-node flat shell element for general 3D linear-elastic static analysis of shells with small deformations into FEAP as an user element. The shell element has 6 degrees of freedom (DOF) per node (u, v, w, t_x, t_y, t_z) and is formed with 2 independent parts: in-plane membrane element with drilling DOF (u, v, t_z) and out-of-plane Mindlin plate bending element (w, t_x, t_y). u, v and z are displacements in x, y and z directions, while t_x, t_y, t_z are rotations which can be represented as rotation vectors oriented positively in x, y and z directions by following a right-hand rule, respectively.

Stiffness matrix of the element is formed in a local 2D system (element plane), so transformations are needed in order for the element to work in general 3D shell problems. For that, I have utilized FEAP subroutines tran3d and rots3d. trans3d subroutine is called in the beginning so global 3D coordinates (xl) can be transformed into local 2D coordinates (yl), while rots3d subroutine is called at the end so the stiffness matrix can be transformed back into the global system.

To see if these two subroutines can be used for the element in question, I have prepared an arbitrary 2D shell problem in x-y plane subjected to in and out-of-plane loading to test if I get the same results with or without these transformation subroutines.

Turns out that the results are different, and the difference is only in the DOFs corresponding to the membrane part. To investigate this, I took a closer look into the stiffness matrix and found out that there is a difference in the rows/columns corresponding to the drilling DOFs (t_z).

Next, I have set the membrane part to be the CST element (Constant Strain Triangle - no drilling DOFs), and the results between the aforementioned cases are now equal.
It seems to me that the tran3d and/or rots3d subroutine(s) are/is treating the drilling DOFs in a different way than other DOFs. Before I go any deeper in understanding the code of the transformation subroutines, does anyone have any explanation regarding the issue?

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Element transformation subroutines
« Reply #1 on: October 20, 2021, 07:38:42 AM »
Theses are the routines that feap uses to transform the element, e.g., ./elements/shell/shl3ds.f for one.

The transformations require the rotations in the reference local frame be a small rotation vector with components theta_1, theta_2, theta_3 (your t_x, t_y, t_z ??) forming a right hand rule, and be components of a unit vector.

Note that the values in the ul array have to be transformed to the local frame too, but that should not affect a stiffness, only the residual.

Marin

  • Jr. Member
  • **
  • Posts: 14
Re: Element transformation subroutines
« Reply #2 on: October 20, 2021, 10:33:30 AM »
Yes, since these routines are used for the FEAP shell element, I figured I could use them as well.

theta_1, theta_2 and theta_3 are t_x, t_y and t_z.

Everything is linear, so no residual. Although, for correct stress output I am transforming ul to the local system.


What is puzzling to me is why is there a difference concerning the theta_3 (t_z or drilling DOF) in the cases described in my first post.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Element transformation subroutines
« Reply #3 on: October 20, 2021, 01:40:19 PM »
It is hard to tell what is happening with the drill not coming out correct.  From what I read in the rots3d it does do the rotations for both the 3 displacement components and the 3 rotations.  I think you will have to do some debugging to see what gets corrupted.

First look at the orthogonal matrix (T(3,3)) to make sure it is what you expect. They need to be ortho-normal.

Then carefully check each part of the stiffness -- possibly the issue is loss of precision due to the numbers involved in the stiffness matrix?

Maybe the first thing to check is a 90 degree rotation of the element about one of the axis so the local axes to global axes are easier to check.

Be sure your Mindlin plate dof's are rotations and not changes in the director along axis directions.

 

Marin

  • Jr. Member
  • **
  • Posts: 14
Re: Element transformation subroutines
« Reply #4 on: October 21, 2021, 02:32:52 AM »
I have analysed a spherical shell problem (MacNeal and Harder 1985) with the membrane part of the shell element being CST and the plate bending part being ARS-T9 (Soh et al. 1999), and with the FEAP shell element, and the results seem fine, i.e. performance is high with no locking. When I changed the membrane part in the element code to be either membrane elements presented by Allman (1984, 1988) which include drilling DOFs, I observed a substantial locking type behaviour in the results.

It may be important to point out that I have tested all the elements beforehand in their respective plane elasticity and plate bending problems and they all work properly.

I suspect that this substantial locking type behaviour is connected with the incorrect treatment of the drilling DOFs in the code.

I will now investigate the transformation process more thoroughly and check if the values are coming out correctly.

Marin

  • Jr. Member
  • **
  • Posts: 14
Re: Element transformation subroutines
« Reply #5 on: October 26, 2021, 03:16:55 AM »
After a more thorough investigation, I have found out that there is an issue in the membrane element itself. While using Allman membrane elements, there are no difference in the results for the problem described in the first post. Still, this considerable locking behaviour in the spherical shell problem is still unclear to me. I will go test some more shell problems now.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Element transformation subroutines
« Reply #6 on: October 26, 2021, 01:25:30 PM »
Generally, for non-smooth shells you do not need the drill.  Also, check the magnitude of the stiffness coefficients for the rotation parameters in the local reference system.  The bending rotations may be very different from the drill one and you just lose precision so much that it appears to lock. 

Marin

  • Jr. Member
  • **
  • Posts: 14
Re: Element transformation subroutines
« Reply #7 on: October 28, 2021, 03:31:12 AM »
Yes, in certain cases we can disregard drilling dofs. However, in order to cover all possible cases it makes sense to have proper stiffness associated with it.
I’ve checked your suggestion and the magnitudes seem fine.

I have analysed the Scordelis-Lo roof next and now all combinations of the aforementioned membrane and plate bending elements seem to work just fine.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Element transformation subroutines
« Reply #8 on: October 28, 2021, 05:43:14 AM »
The Scordelis-Lo shell has single curvature which makes it easier.  What about the pinched hemisphere?

Marin

  • Jr. Member
  • **
  • Posts: 14
Re: Element transformation subroutines
« Reply #9 on: October 29, 2021, 04:10:46 AM »
For the pinched hemisphere (spherical shell problem), I still observe locking when employing any membrane element with drilling dofs. If CST is employed – no locking.

I have analysed the twisted beam problem next (MacNeal and Harder 1985) with all possible combinations of membrane/plate element and the results appear to turn out right.

Based on all this, the code seems to be just fine, so my original issue may be concluded as solved.

Nevertheless, we can investigate this locking phenomenon for the pinched hemisphere (spherical shell problem). It may be related to the fact that it is the only problem I tested so far that is subjected to a point loading, which could be troublesome. Anyhow, I am digressing from the original (solved) problem.