Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Calculation appears simple, but takes forever. Some of the parameters have units, but I did the dimensionless in the for loop. I suspect the variables stored the expression instead of results, which could take too much memory? I don't know. When I interrupt the calculation, it stopped at 2nd for loop, i=50 and j=9. Some of the variables has expression, for example, vs(i,j), some of the value was the initial value of 1, but calculated values has units that wasn't canceled. vs is supposed to be dimensionless. Any trick to solve this? Thanks! Example.sm (40kb) downloaded 22 time(s).




Rank: Advanced Member Groups: Registered
Joined: 28/08/2014(UTC) Posts: 752 Was thanked: 404 time(s) in 258 post(s)

Hi. Two issues. First, you use two percent symbols, but forgot to put them as units: try to add them as '%, and they goes in blue color. For the second, your observation now it's correct: Originally Posted by: hrwang I suspect the variables stored the expression instead of results, which could take too much memory? and can speed up a little the calculation using eval for each line: Best regards Alvaro.




Rank: Advanced Member Groups: Registered
Joined: 04/07/2015(UTC) Posts: 5,426 Was thanked: 845 time(s) in 675 post(s)

Originally Posted by: hrwang Any trick to solve this ? The two red matrices complain Example.sm (52kb) downloaded 9 time(s).




Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Originally Posted by: Jean Giraud Originally Posted by: hrwang Any trick to solve this ? The two red matrices complain Example.sm (52kb) downloaded 9 time(s). Thanks!




Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Originally Posted by: Razonar Hi. Two issues. First, you use two percent symbols, but forgot to put them as units: try to add them as '%, and they goes in blue color. For the second, your observation now it's correct: Originally Posted by: hrwang I suspect the variables stored the expression instead of results, which could take too much memory? and can speed up a little the calculation using eval for each line: Best regards Alvaro. Thanks a lot. It appears, eval is a very important function. I tried to eval every dimensionless variables and functions, such as OsP, dr before the loop. And it took some time finished the calculation. Still, takes ages long comparing to mathcad. I hope the developer can improve this part soon. After all, the calculation load in my program is not heavy. I am really afraid if I introduce some iterations. Thanks again hrwang




Rank: Advanced Member Groups: Registered
Joined: 04/07/2015(UTC) Posts: 5,426 Was thanked: 845 time(s) in 675 post(s)

Originally Posted by: hrwang Still, takes ages long comparing to Mathcad. Mathcad is a semicompiled CAS. In separate mode my 1.66 GHz Win 7 calculates the 4 matrices in 18 seconds.




Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Originally Posted by: Jean Giraud Originally Posted by: hrwang Still, takes ages long comparing to Mathcad. Mathcad is a semicompiled CAS. In separate mode my 1.66 GHz Win 7 calculates the 4 matrices in 18 seconds. I have nz and nr both 200. It took about 10minutes in Smath to finish the whole program. It appears the for loop takes a lot of time. If you can replace for loop with a matrix operator, such as SUM operator, it calculates faster. Personal experience, I don't know why.




Rank: Advanced Member Groups: Registered
Joined: 04/07/2015(UTC) Posts: 5,426 Was thanked: 845 time(s) in 675 post(s)

Originally Posted by: hrwang I have nz and nr both 200. It took about 10minutes in Smath to finish the whole program. It appears the for loop takes a lot of time. If you can replace for loop with a matrix operator, such as SUM operator, it calculates faster. Personal experience, I don't know why.
Leave them in separate modules, then collapse, it might reduce timing by ½. Can you show an example of your matrix operator ... Unknown to me.




Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Originally Posted by: Jean Giraud Originally Posted by: hrwang I have nz and nr both 200. It took about 10minutes in Smath to finish the whole program. It appears the for loop takes a lot of time. If you can replace for loop with a matrix operator, such as SUM operator, it calculates faster. Personal experience, I don't know why.
Leave them in separate modules, then collapse, it might reduce timing by ½. Can you show an example of your matrix operator ... Unknown to me. I don't understand how to do it in separate modules? The matrix operator are listed in the program, such as SUM operator(sigma), multiple operator(pi). They are the special cases. For example, you can find the sum of an array either use for loop, or SUM operator.




Rank: Advanced Member Groups: Registered
Joined: 04/07/2015(UTC) Posts: 5,426 Was thanked: 845 time(s) in 675 post(s)

Originally Posted by: hrwang I don't understand how to do it in separate modules ? The matrix operator are listed in the program, such as SUM operator(sigma), multiple operator(pi). They are the special cases. For example, you can find the sum of an array either use for loop, or SUM operator. 1. Separate modules in the attached... Two complain, but produce. 2. Try matrix operator matrix(3,4) to see if it can help you wrt the project. 3. I know no other way to construct your 4 matrices. 4. From the matrices, your can select any col/row ... you can subrange any part ... you can unwrap in single vector. Cheers ... Jean. Example.sm (69kb) downloaded 4 time(s).




Rank: Newbie
Groups: Registered
Joined: 29/04/2021(UTC) Posts: 8

Originally Posted by: Jean Giraud Originally Posted by: hrwang I don't understand how to do it in separate modules ? The matrix operator are listed in the program, such as SUM operator(sigma), multiple operator(pi). They are the special cases. For example, you can find the sum of an array either use for loop, or SUM operator. 1. Separate modules in the attached... Two complain, but produce. 2. Try matrix operator matrix(3,4) to see if it can help you wrt the project. 3. I know no other way to construct your 4 matrices. 4. From the matrices, your can select any col/row ... you can subrange any part ... you can unwrap in single vector. Cheers ... Jean. Example.sm (69kb) downloaded 4 time(s). Thanks!




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.