without any optimisation applied and naive application of Numpy I get the following results:HarryvL wrote: ↑Sat Feb 09, 2019 7:44 amI am planning to profile the code and report out on where time is spent. Clearly, solving the matrix equations is the most computationally intensive, but here is where NumPy/SciPy comes the rescue. Including smart use of preconditioning with classical techniques, like Cuthill McKee band optimization (also available as a routine in SciPy btw). Assembly of the global stiffness matrix is not normally the most intensive, but involves a lot of loops. Here I Need to focus on maximizing use of masking, matrix multiplication and list comprehension instead of dum loops. Suggestions on cutting out for loops are welcome.

extract information from FreeCAD objects....................... 0.006 seconds

prepare finite element input................................... 0.528 seconds

calculate the global stiffness matrix and global load vector... 1.407 seconds

apply displacement boundary conditions......................... 0.003 seconds

solve the global siffness matrix equation...................... 18.344 seconds

calculate stresses from displacements.......................... 0.000 seconds

paste results in the FEM result object......................... 0.013 seconds

This is with 785 2nd order tetrahedral elements and 1399 nodes.