TAGGED: apdl, elasticstrain, integrationpoint


May 20, 2024 at 1:37 pmC DehoBbp_participant
Hi,
Im trying to calculate the nodal stress for a single 10node tetrahedral element composed of SOLID187, based on nodal displacement using MATLAB.
I first constructed the straindisplacement matrix B based on the shape function formula for 10 node tetrahedron in the ANSYS theory reference.
Size of B matrix is 6x30, and Nodal displacement is 30x1
Since shape function of solid 187 is linear, I simply inserted the respective coefficients of shape function into the B matrix
Since these values are from the integration points, I used the ANSYS command ERESX,NO to transfer the values from the integration points to the nodes. According to the reference, solid 187 has 4 integration points. Each vertex receives the value of the integration point directly, and the midpoints are the average of the two nearest integration points' values.
By multiplying the displacement vector with the B matrix, I obtained the strain epsilon and I compared those value to ANSYS. However, the strain values I calculated using MATLAB do not match the strain values obtained from ANSYS.
I suspect that the error might be due to an incorrect calculation of the B matrix, or perhaps the data at each vertex in ANSYS does not actually match the values at the integration points exactly. I have followed the node ordering exactly as it is presented in the ANSYS reference.
Could you please help me understand if there is a mistake or misunderstanding in my approach?

May 29, 2024 at 2:48 pmmrifeAnsys Employee
Hi C Deho
I don't think there is a mistake in your approach; and I don't have MatLab so really helping is a little out of the question. Can I instead change course and point you here:
https://mapdl.docs.pyansys.com/version/stable/examples/gallery_examples/03generalfea/00how_finite_element_works.html#sphxglrexamplesgalleryexamples03generalfea00howfiniteelementworkspy
It's an example from a popular FEA textbook that compares the Mechanical APDL version of a plane quadratic element to one written from scratch using Python and NumPy. Perhaps you could practice with this and implement it in MatLab as well. Then if all goes well move onto the tetrahedral element.
Mike

May 30, 2024 at 9:05 amC DehoBbp_participant
Hi Mike,
Thank you for your reply. I've recently completed a code to calculate strain over the last week. When dealing with a single element or simple model geometries (such as a Ring or a basic cube), the strain results match very well with those from MATLAB. However, as the complexity of the geometry increases, the error in strain at each node becomes larger. To investigate the potential issue, I checked the integration points of each element. The Y and Z direction coordinates match well regardless of the geometry, but there are significant discrepancies in the X direction coordinates for some elements as the geometry becomes more complex (with some points showing up to a 10000% difference).
Model 1
Model 2
Model 3
It seems link you've provided do not contain an explanation for this aspect.
Is there an option within ANSYS to adjust the location of Gauss points based on the geometry? Why would the error be more pronounced in the X direction?


May 30, 2024 at 5:31 pmmrifeAnsys Employee
On your 'hand calc' version did you change the differential (d/dx) to go from global to local coordinates?
And I don't have access to MatLab so I cannot say why the results from MatLab are wrong.

June 4, 2024 at 2:03 pmC DehoBbp_participant
I have applied the same code to all models. My question is not about the code but rather whether, within ANSYS, the location of Gauss points changes for more complex geometries ( results match well for simple models regardless of the number of nodes and elements, I believe there is no issue with the code).
There are discrepancy at both Gauss point locations and strain values. The Gauss points are derived using shape functions, and the straindisplacement matrix B, which is used to calculate strain, is obtained by differentiating these shape functions. Therefore, I suspect that the primary source of discrepancy lies in the Gauss point locations.
Is there an option within ANSYS to disable such automatic adjustments to the Gauss point positions or shape functions? Or, if you have any insights or suggestions on how to address this issue, I would greatly appreciate your advice.


 You must be logged in to reply to this topic.
 Error: Invalid face geometry was encountered
 Withdraw test
 ANSYS WORKBENCH LS DYNA ELEMENT CONTROL
 Ansys Gravity v.s. Acceleration
 How can I calculate strain at integration point?
 How Frictionless Contact works
 Vibration isolation
 Hertz, JKR , MG , DMT models in contact mecanics with Ansys Workbench
 changing timoshenko beam theory into euler theory
 Using UPFs in Ansys Workbench installed on Linux

321

105

93

50

43
© 2024 Copyright ANSYS, Inc. All rights reserved.