Obtain Element Stresses

Hi,

Is it possible to obtain each element nodal stress tensor result ? I want to calculate nodal stresses manually by using each node parent element stresses.

Ex:

Element-1 : Node 1: Sx : 1 , Sy : 1, Sz : 1 Sxy : 1 …

Element-1 : Node 2: Sx : 1 , Sy : 1, Sz : 1 Sxy : 1 …

Element-1 : Node 3 Sx : 1 , Sy : 1, Sz : 1 Sxy : 1 …

Element-1 : Node 4 Sx : 1 , Sy : 1, Sz : 1 Sxy : 1 …

Ex2:
Element-1 : Node 1: Sx : 1 , Sy : 1, Sz : 1 Sxy : 1 …

Element-2 : Node1: Sx : 2 , Sy : 1, Sz : 1 Sxy : 1 …

Element-3 : Node 1 Sx : 3 , Sy : 1, Sz : 1 Sxy : 1 …

Element-4 : Node 1 Sx : 4 , Sy : 1, Sz : 1 Sxy : 1 …

Node 1 Stresses Sx = (1 + 2 + 3 + 4)/4

CalculiX provides averaged nodal stresses in the .frd file but you can also write integration point stresses to the .dat file (using *EL PRINT).

Thank you, But I do not want to integration points because it is necessary to extrapolate this stresses. Is it possible to my example ?

Then you can use the stresses from the .frd file directly (query them in some postprocessor) but they are averaged from all elements sharing a given node. You can avoid this averaging if you use the separate.py script from here: CalculiX-Examples/Scripts at master · calculix/CalculiX-Examples · GitHub

I’m not sure I understand your question. From your Ex2, it seems like you are asking for the extrapolated, but not averaged nodal stresses (@Calc_em posted an answer).
The nodal stresses CalculiX provides are extrapolated and then averaged stresses from the integration points. So if you are looking for the “most accurate” stress information, you should use the stresses at the integration points (in the .dat file, again as @Calc_em already mentioned).

1 Like

Hello Calc_em (and all other Calculix users).
I am using Calculix (ccx_2.22) for some weeks now for mesh- and solidelement-studies.
I also would like to get (from the integration points to the element nodes extrapolated) “element node stresses” directly using the .frd-file (eid, kid, tensor, eid,kid tensor…). Appararently it`s not available in the moment. Does somebody know whether this output is planned in a further Calculix version?
I would not like to extrapolate (element dependly) integration point values to the element nodes by available or self created scripts using the dat-file.
Further questions are:
When nodal stresses are requested, also an error value is put out for each node (where stress is requested for), 0…100%. How is this error value calculated?
And, is it possible to get, instead of averaged stress values, eg. the tensor with the max. SigmaV or max. Sigma1 of all elements using this node?
Best regards, Felix

I also would like to get (from the integration points to the element nodes extrapolated) “element node stresses” directly using the .frd-file

Extrapolated stresses averaged at the nodes are available via:
*EL FILE
S

(Note that *EL FILE is used for element variables averaged at the nodal points and *NODE FILE is used for nodal variables)

When nodal stresses are requested, also an error value is put out for each node (where stress is requested for), 0…100%. How is this error value calculated?

Please have a look at the user manual (section 6.12) for details on the available error estimators.

And, is it possible to get, instead of averaged stress values, eg. the tensor with the max. SigmaV or max. Sigma1 of all elements using this node?

Reading this, I’m not sure I understood your first question. Anyway, this is not possible and would have to be done in a postprocessing step.

@felixdeffner In short words, currently, there are two ways to obtain the stresses:

  1. *EL FILE - averaged nodal stresses written to the .frd file to create contour plots
  2. *EL PRINT - integration point stresses written to the .dat file in a tabular format

Anything else would require custom postprocessing tools or a feature request for the solver or postprocessor.

However, you may also want to check the Zienkiewicz-Zhu error estimator available by specifying ZZS under *EL FILE. This is an improved stress measure calculated using integration points in a specific way described in the documentation.

Hello Calc_em and Durbul,
thanks for your answers.
But as I alredy have written I would like to get discontinuous element node Stresses on the .frd-file. Using this raw data, further calculations (averaging, error estimating etc.) would be done for contur plots easily in any Postprozessor of my choice (e.g. Medina Post).
I know this wanted output ist not available in Calculix 2.22.
But will it maybe be available in a future Version of Calculix? Where could I requests this topic?
Sincerely, Felix

Normally, I would recommend the GitHub issues section, but it seems that the dev team wants to use it strictly for bug reports, and feature requests are supposed to remain on the forum in the Code Development category.

So, if I understand the question correctly, you want the unaveraged stresses at the nodes for each element. For example, if four elements share a node, you want four different solutions for that node—one for each element, with the solution extrapolated from the Gauss points to the node.
In ANSYS jargon, that would be a “plesol” instead of a “plnsol” (if that’s a reference).

@Calc_em has already linked to a Python script (separate.py) that, in my opinion, does exactly that (I haven’t tried it myself yet, but the description certainly suggests it does).

Here is an excerpt from the script description:

This script enable the display of results not averaged at the nodes in CGX. The trick is to provide a separate node for each element where otherwise all adjacent elements would share the same node. Instead of ensuring continuity of the displacement field by using the same node, identical displacements and temperatures of repeated nodes is enforced using equations.

The picture of the example looks promising to me

The .frd format only supports output for nodal quantities. Such an output (e.g. in the .dat file) is not planned at the moment in CalculiX. You can try the script posted by @Nobody-86, but personally I would take the integration point values as starting point for any custom postprocessing.

1 Like

Hallo Nobody-86,
danke für den Vorschlag und das Beispielbilder.
Die Aufteilung des Modells in lauter einzelne Elemente mit unterschiedlichen Knoten, welche durch MPCs wieder gekoppelt werden, führt (natürlich) zu den gleichen Verschiebungen wie beim ursprünglichen Modell. Und optisch erhält man auch die von mir gewünschten unstetigen Spannungsverteilungen. Aber jetzt stehe ich vor dem Problem, die Elementspannungen im Postprozessing weiterzuverarbeiten (z,B. Mitteln, Maxima übernehmen, Fehler berechnen, Ergebnisse von den Volumenelementen auf die Oberfläche abbilden etc., alles, was ein Postprozessor normalerweise zu bieten hat). Das ist durch die unterschiedlichen Knotennummern der benachbarten Elemente nicht oder nur mit viel Aufwand möglich.
Trotzdem vielen Dank, ich werde das Skript bei Gelegenheit mal ausprobieren.
(Ich bin noch ein Calculix-Neueinsteiger).
Grüße, Felix

Hallo Durbul..

Sehr schade, dass das von mir gewünschte Ausgabeformat für Elementknotenpunktsspannungen in nächster Zeit nicht zu erwarten ist. Während meiner beruflichen Praxis (ich bin mittlerweile in Rente) haben wir genau mit dieser Ausgabe mit Nastran, Abaqus und Optistruct gearbeitet.
Und das .frd File ist ist aufgrund seiner einfacheren Struktur natürlich viel leichter zu handhaben als das .dat File.
Gleichwohl werde ich bei Gelegenheit mal für T10-Elemente die Spannungstensoren an den vier Integrationspunkten 1 bis 4 aus dem .dat File auf die “echten” Elementhauptknoten übertragen (extrapolieren übersteigt meine Rechenkünste) und schauen, was rauskommt.
Vielen Dank für deine Antworten.
Grüße, Felix