Closed peterjwilson closed 7 years ago
This is likely to be related to the definition of the default integration points (and/or quadrature rules) for your element. The first thing I would recommend would be to check the GetIntegrationMethod
method for your element (I think this is the one used by the gid output) and check that it returns a quadrature with as many gauss points as you would like to print.
Additionally I will recommend to get instead the Binary an Ascii file, this way you can see the defined coordinates of the GP and it values, some elements doesn't consider the standard quadrature and with the current API this can provide problems
@jcotela I #define
my integration method at the top of my cpp with the following line:
#define OPT_INTEGRATION_METHOD Kratos::GeometryData::GI_GAUSS_1
Printing the GeometryType::IntegrationPointsArrayType
from GetIntegrationMethod
confirms I'm only using one gauss point. Is there a chance I'm using an outdated or incorrect method of setting my Gauss Point setup? I should note that I don't actually use any Kratos GP data while calculating quantities since it can all be analytically done at one point.
@loumalouomega Thanks for the tip, it provides some more clarity. The two relevant parts from the ASCII results are:
GaussPoints "tri1_element_gp" ElemType Triangle Number Of Gauss Points: 1 Natural Coordinates: Internal End gausspoints
and
Result "SHELL FORCE" "Kratos" 1.1 Matrix OnGaussPoints "tri1 element gp" ComponentNames "Sxx-SHELL FORCE", "Syy-SHELL FORCE", "Szz-SHELL FORCE", "Sxy-SHELL FORCE", "Syz-SHELL FORCE", "Sxz-SHELL FORCE" Values 1 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 2 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 3 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 4 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 5 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 6 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 7 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 8 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 9 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 10 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 11 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 12 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 13 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 14 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 15 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 16 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 17 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 18 0.267564416 0.206640214 0 0.126951098 424.213715 334.364685 End values
The first seems to look OK? But the second part confirms that the same result is written across all GPs.
For those who might come across this problem in the future I solved it by adopting Massimo Petracca's approach in his ShellThinElement3D3N
in the Structural Mechanics App. Namely setting the integration method to Kratos::GeometryData::GI_GAUSS_2
and then using the custom utilities Utilities::InterpToStandardGaussPoints(X)
as defined in his element.
Hi All,
Through benchmarking of my shell element stresses and forces (calculated on Gauss Points) I’ve found that certain meshes produce the problem that the last stress result calculated of the whole mesh is taken as the result for the whole mesh.
For example, the shell force XX result of a simply supported isotropic square plate with symmetry subject to a uniform transverse pressure.
Massimo’s existing thin triangle shell element:
My new thick triangle shell element (with console output of the S_xx):
The last calculated GP result in the console output is 0.267564, which is assigned to all elements in the mesh, despite the value varying as per the console output. Something strange is that my element doesn’t show this erroneous behaviour across other problems considered, for example a dome under self weight:
Although it’s likely my element has some problems with it, it’s strange that the problem shows up in some meshes and not in others.
Has anyone experienced something like this, or has a hunch as to what could be going on here? Any help would be much appreciated.