diff --git a/mean_stress.py b/mean_stress.py
new file mode 100644
index 0000000000000000000000000000000000000000..516ec543cca3456000ae2b1768d4616e52271376
--- /dev/null
+++ b/mean_stress.py
@@ -0,0 +1,29 @@
+#! /usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# extract min, max mean stress from results
+# (run this script in the workspace folder)
+
+import gmsh
+import numpy as np
+
+gmsh.initialize()
+gmsh.merge('mesh.msh')
+gmsh.merge('smooth_stress_tensor.msh')
+
+dataType, tags, data, time, numComp = gmsh.view.getModelData(1, 0)
+
+
+# compute sigma Von Mises from nodal sig tensor
+# https://help.autodesk.com/view/fusion360/FRA/?guid=VON-MISES-STRESS-EQ-CONCEPT
+svms = []
+for sig in data:
+    [xx, xy, xz, yx, yy, yz, zx, zy, zz] = sig
+    svm = np.sqrt( ((xx-yy)**2 + (yy-zz)**2 + (zz-xx)**2 )/2 + 3*(xy*xy+yz*yz+zx*zx) )
+    svms.append(svm)
+
+svms = np.array(svms)
+
+print(f'svm_min = {np.min(svms)}')
+print(f'svm_max = {np.max(svms)}')
+print(f'svm_mean = {np.mean(svms)}')