A.2.4: Performance Optimization in Karamba3D

Karamba3D spends most of its processing time calculating the deflections of a model. The computation time depends on the number nn of degrees of freedom (DOF) in the structural system and the number of connections between nodes.

  • In the theoretical case that each node is connected to all others computation time grows with n3n^3. If each node is connected to nneighn_{neigh} others and the overall structure has a main axis along which it is oriented (i.e. there are no connections between distant nodes), then computational effort increases approximately with 0.5nnneigh20.5 \cdot n \cdot n^2_{neigh}. Karamba3D makes use of multiple processors so having more than one saves time. Using trusses instead of beams more than halves computation time.

  • Karamba3D utilizes multiple processors, so systems with more cores will benefit from faster performance.

  • Using trusses instead of beams more than halves computation time.

Reducing Computation Time with Load Cases

When working with multiple load cases or load-case combinations, computation can be limited to specific load cases, reducing overall calculation time compared to evaluating all load cases. If load cases share the same stiffness matrix, the time savings are modest because the stiffness matrix needs to be triangularized only once. However, these savings can accumulate with multiple load cases.

With the "LoadCaseCombiSettings" component, you can configure Karamba3D to calculate the geometric stiffness matrix for each load case separately by setting "CombiNII" to false. This approach may yield less conservative results compared to setting "CombiNII" to true, which uses the most compressive normal forces to establish the geometric stiffness. However, setting "CombiNII" to false requires a full stiffness matrix triangularization for each load case, which may significantly increase computation time.

Display Updates: When performing optimizations (e.g., with Galapagos), continuous display updates can slow down performance. To improve speed, disable the preview of all components or minimize the Rhino window.

Mesh Rendering: Displaying results as meshes can be accelerated by joining meshes before rendering.

Shell Analysis: When analyzing shells, it is recommended to start with rough meshes containing large, fewer shell elements. Gradually increase mesh density as a final step, ensuring that results become independent of the chosen mesh density.

Last updated