I am writing to seek clarification regarding the stiffness matrix output when using the *MATRIX GENERATE, STIFFNESS and *MATRIX OUTPUT, STIFFNESS, FORMAT=COORDINATE options.
When using S4R element model, the matrix size is equal to: number of nodes×6, and the numbering of the matrix entries corresponds directly to the node numbering. For example, for node 1, the matrix represents its six degrees of freedom as DOFs 1–6.
However, when switching to a C3D10H element hyperelastic model, I notice that the “H” formulation introduces additional internal degrees of freedom. In this case, the matrix size becomes: (number of nodes×3)+(number of elements)
For example, in a C3D10H element, node 1 has three translational degrees of freedom represented as DOFs 1–3. Since each C3D10H element contains 10 nodes, it contributes 30 nodal DOFs in total, along with one additional internal DOF introduced by the hybrid formulation.
My main question is:
In the .mtx file, is this additional internal degree of freedom appended immediately after the nodal degrees of freedom for each element, or is it grouped together and placed after all nodal degrees of freedom?
This clarification is important for my research project. As a simple example, we currently extract the smallest eigenvalue and the corresponding eigenvector of the global stiffness matrix. The eigenvector is then mapped back to the nodal coordinates to visualize the displacement profile of the structure. This process works well for shell elements such as S4R, since the DOF ordering is clear. However, when hybrid elements like C3D10H are used, it is not obvious how to correctly interpret and separate the additional internal DOFs from the nodal ones, which is essential for plotting the eigenvector displacement field.