Problem with Matrix Algebra - Messages
I am using Smath for teaching Finite Element Analysis. The following file is an example for how to set up and solve an arbitrary plane (2D) truss structure in smath, including display of the deformed structure. However, there are some problems.
https://smath.com/wiki/GetFile.aspx?File=forum_attach%5cmkraska%5cFachwerk%20UE2.rar
Problem #1: The global system stiffness matrix KS is singular. However, Smath 0.93 and previous versions failed to compute the determinant directly with the error message "result is above max. allowed positive number". Of course, this can refer only to some intermediate result in the internal algorithm for computing the determinant.
This fails with the mentioned error message:
[MATH lang=eng]det(KS)=#@#[/MAT]
Scaling works:
[MATH lang=eng]det(KS/{1000*'kN/'cm})=0@#[/MAT]
Thus I propose to revise the determinant computing algorithm and replace it by some more robust one. Linpack/blas should do the job. I used these libraries when dealing with FEA fortran programming.
Problem #2: Starting with version 0.92 Smath fails to compute the solution, which involves the inversion of the reduced stiffness matrix K.r. Smath in version 0.92 and 0.93 complains about K.r being singular, whereas 0.91 does not.
In case these problems can be solved, I would be happy to translate the example to english or russian and contribute it to the examples section in the forum.
Best regards, Martin Kraska
I do not know if this is something you could use but using Symboloc optimization you can have
[MATH=eng]det(KS)=0[/MATH]
The next matrix has the range less than the matrix dimension K.r(9x9) - Symbolic optimization again
[MATH=eng]rank(K.r)=6[/MATH]
Therefore there is no inverse matrix.
I hope this is of some help to you.
On the other hand, I agree and mentioned few times that SMath should have some numerical libraries incorporated. I really do not know what are the chances of this to be realized.
Regards,
Radovan
thank you for trying the example. I get the same result as you with symbolic optimization. BTW, I also get rank(KS)=8, which is as wrong (should be 9) as rank(K.r)=6. Otherwise version 0.91 would not be able to find a solution (which matches the ANSYS result and thus can be relied on).
The rank deficiency of the global stiffness is due to possible rigid body motions as KS represents the unconstrained system. System reduction due to dof constraints makes the displacement solution well defined and thus K.r is regular.
I consider the Smath 0.92 and 0.93 results being buggy.
btw: Any idea what went wrong with my initial post? I expected the expressions to be nicely formatted just like in your post. I obviously failed to follow the instructions in the wiki :-(
Best regards, Martin Kraska
Wrotebtw: Any idea what went wrong with my initial post? I expected the expressions to be nicely formatted just like in your post. I obviously failed to follow the instructions in the wiki :-(
End tag should be [/MATH] instead of [/MAT]
Determinant of KS can now be computed with scaling divisor of 10..100000
[MATH]det(KS/{100000*'kN/'cm})=0@#[/MATH]
Sorry for not being able to post the math expression correctly (used the bbcode tags from the editor menu and pasted from Smath via clipboard). I guess that this is my fault.
WroteHello,
I am using Smath for teaching Finite Element Analysis. The following file is an example for how to set up and solve an arbitrary plane (2D) truss structure in smath, including display of the deformed structure. However, there are some problems.
https://smath.com/wiki/GetFile.aspx?File=forum_attach%5cmkraska%5cFachwerk%20UE2.rar
Problem #1: The global system stiffness matrix KS is singular. However, Smath 0.93 and previous versions failed to compute the determinant directly with the error message "result is above max. allowed positive number". Of course, this can refer only to some intermediate result in the internal algorithm for computing the determinant.
This fails with the mentioned error message:
[MATH lang=eng]det(KS)=#@#[/MATH]
Scaling works:
[MATH]det(KS/{1000*'kN/'cm})=0@#[/MATH]
Thus I propose to revise the determinant computing algorithm and replace it by some more robust one. Linpack/blas should do the job. I used these libraries when dealing with FEA fortran programming.
Problem #2: Starting with version 0.92 Smath fails to compute the solution, which involves the inversion of the reduced stiffness matrix K.r. Smath in version 0.92 and 0.93 complains about K.r being singular, whereas 0.91 does not.
In case these problems can be solved, I would be happy to translate the example to english or russian and contribute it to the examples section in the forum.
Best regards, Martin Kraska
-
New Posts
-
No New Posts