Rank: Advanced Member Groups: Registered
Joined: 15/04/2012(UTC) Posts: 1,987 Was thanked: 1124 time(s) in 721 post(s)
|
Hello, 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. http://smath.info/wiki/G...ska%5cFachwerk%20UE2.rarProblem #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 |
|
|
|
|
Rank: Administration Groups: Registered, Advanced Member Joined: 23/06/2009(UTC) Posts: 1,740 Was thanked: 318 time(s) in 268 post(s)
|
Hello Martin,
I do not know if this is something you could use but using Symboloc optimization you can have det(KS)=0 The next matrix has the range less than the matrix dimension K.r(9x9) - Symbolic optimization again rank(K.r)=6 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 |
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!" |
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 15/04/2012(UTC) Posts: 1,987 Was thanked: 1124 time(s) in 721 post(s)
|
Hello 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
|
|
|
|
|
Rank: Member Groups: Registered
Joined: 22/06/2010(UTC) Posts: 13 Location: Питер
Was thanked: 5 time(s) in 4 post(s)
|
mkraska wrote: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 :-( End tag should be [/MATH ] instead of [/MAT ]
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 15/04/2012(UTC) Posts: 1,987 Was thanked: 1124 time(s) in 721 post(s)
|
Just tested with 0.94.xxxx, unfortunately linear algebra problem persists... Determinant of KS can now be computed with scaling divisor of 10..100000 det(KS/{100000*'kN/'cm})=0@#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. Originally Posted by: mkraska Hello, 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. http://smath.info/wiki/G...ska%5cFachwerk%20UE2.rarProblem #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: det(KS)=#@#Scaling works: det(KS/{1000*'kN/'cm})=0@#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 |
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.