Topic: Recover curvatures from MITC4 element

Dear all,
I'm still studying shell elements in OOFEM and trying to get order in the results (http://www.oofem.org/forum/viewtopic.ph … 53&p=2).

I noticed that the output quantities obtained from shell elements are not consistent. In particular:

- there's no option to get simultaneously local and global values for IST_ShellForceTensor, IST_ShellMomentTensor, etc. All the flags are hard-coded in each element.

- the MITC4 element, which is, AFAIK, the most advanced shell in OOFEM, does not provide IST_ShellMomentTensor and IST_ShellCurvatureTensor. IMHO it is important to the the same output from all the shell elements, to make comparisons.

For this last point, I have some doubts on how to obtain moments and curvatures. Can you advice on that?

Re: Recover curvatures from MITC4 element

Dear all,
I just want to share our simple solution to obtain the curvature as output for the mitc4 shell element (the one implemented in oofem with 8 GPs).

You can see the code here, looking forward for your comments.

Re: Recover curvatures from MITC4 element

Two parts to this,

GIT-related stuff, patches and commits:
Regardless of the correctness of the code, I can't pull in a commit like this in OOFEM main repo. At a quick glance,
1. You are committing a bunch of additional files (Debug?)
2. Non-english comments
3. Unrelated changes (drill stiffness)
So, i couldn't even cherry-pick this particular commit, much less do a pull. Even if you add additional cleanup-commits, I would be to reluctant to pull in all the history.


----------

Now, the computations themselves.

Anything is not better than nothing here. If there is no true, mathematically valid, comparison to make, then we shouldn't allow for such a comparison to be made.

Normal shell elements have some strain-like measure typically called the curvature which is defined from the nodal unknowns and the shell kinematics. For simpler elements, this might be a real, easy to interpret, and comparable quantity. For more complicated kinematics, this might lack a physical meaning. So curvatures of different elements should not be compared.

The shell moment is just whatever happens to be work-conjugate with this curvature. It does not necessarily correlate with equilibrium.


We have 2 paths here. Either we make use of the shell kinematics themselves to obtain sensible definitions of curvature and moment.
Or we could just decide the define the shell moment from equilibrium (and make it clear that this is what is exported).
The curvature is trickier, but we could define is as a linear strain variation over the thickness, and then just fit it to the strain values (since there are only 2 strains, it would produce a perfect fit). As opposed to the moment (which is always sensible defined), this definition would lack meaning if there was more GPs that had a nonlinear relationship, which is why this is less obvious.


I would prefer to see the shells kinematics used to compute this. Taking the GP's natural coordinates and compute what would have been the "curvature" and "moment" according to this particular shell-kinematics. It would basically be like computing a modified B-matrix.
This is difficult to do, since all of mitc4.C is a bit of a hardcoded mess.



If we go for the route of just defining a moment arbitrarily, the sensible choice is of course the integral over the thickness:

M_ij = integral z * sigma_ij dz

Numeric integration over the thickness for the 2 GPs. So, for the ShellMoment, your code is definitely wrong.

Numerical derivative for the curvature.. well, I guess I won't be much better than that. But it's important to know what this is just an a post-processing, and it has nothing to do with the assumed shell kinematics.

Re: Recover curvatures from MITC4 element

Mikael,
1. I didn't ask you (or anyone else) to necessarily import the code in the official repo. Anyway, even in the case, the physical copy of mitc4.c and mitc4.h and a commit from you (or anyone else) will do the job. You're right on the non-English comments and on the additional file, I'll change them. The drill stiffness is necessary in many (not banal) models, just to let the solver do its job.

2. thanks, I would definitely adopt the equilibrium to compute the moments. Even if they are part of post-processing, they are an important part of the ouput (IMHO usign shell without reading curvatures and moments is completely unuseful).

Re: Recover curvatures from MITC4 element

Well, I just wanted to make this clear,

IMHO it is important to the the same output from all the shell elements, to make comparisons.

what you ask for here is not possible. Different shells = different kinematics == different definitions of what the "shellmoment" and "shellcurvature" even is (we have to be *very* careful not to think that everything is just defined simply like the euler beam).
Comparing them across different elements is like comparing apples with oranges.


The only thing that should ever be compared between different shell elements are
1. Deformation/deflection
2. Maximum tensile/compressive stress or strain.

We should have something like IST_ShellTopStress, IST_MaximumTensileStrain, etc., however we choose to label them.
Stresses and strains could be compared in a meaningful way across all shells, beams, or solids, because they are always well defined.
(alas, limited time).

Re: Recover curvatures from MITC4 element

I trust you, I'm not an expert of shells and plates.
In the past I worked with the MITC4 element (this one) and it had moments and curvatures as output (see setResponse and getResponse)... I don't know how many types of MITC4 shell extist... seeking for literature on that.