Anthrazit

325 Reputation

3 Badges

1 years, 208 days

MaplePrimes Activity


These are replies submitted by Anthrazit

@Carl Love 

The reason why I switched to the unitless matrix was because of the error. Originally the matrix to be compared with comes with units. In addition it is just in the init of the loop that one of the matrices is zero.

I have so far not been able to recreate the problem with a simplified worksheet, so for now it needs to be fixed in the current workbook.

If you need to have a look at the code, open the lib/Main code in the workbook, and go to the end of the file. The 2 very last lines of the code in this file are the problem, I have put in comments there.

@Carl Love 

No, that gives the same error.

Here's the workbook in question, execute the entire workbook and go to the end of it.

Koyaanisqatsi.zip

@acer 

This is brilliant - though I didn't got it to work directly (store the variable in the matrix).

What I however managed to do was to do it indirectly - storing the contents of the variable in the matrix. Thus I can reread the values in the startup script to the variable.

storebetweensessions.mw

@acer

One of things I'm struggling with are tables, like...

S := table([2 = 45, 4 = 61])

They can't be shown with datatables as far as I can see. Btw., I am usually working with Workbooks nowadays, so if it's easier with workbooks that would do. 

Upon reboot of the PC the problem seems to have disappeared.

Strange, as I have tried multiple times yesterday, closing and starting Maple again, and the other component boxes worked without any problems.

@acer 

Thanks again for the thorough explanation.

From me as an user it is not important how things are done internally in the program, as long as I get what I want in the end. I've played around a bit more, and I think I finally found what I need.

The clue was to do a little bit more fiddling with the results in the end.

SumLoadcase[1 .. (), 1] := evalf(convert~(SumLoadcase[1 .. (), 1], 'units', Unit('m')));                # position on beam
SumLoadcase[1 .. (), 2] := evalf(convert~(SumLoadcase[1 .. (), 2], 'units', Unit('kN')*Unit('m')));        # M
SumLoadcase[1 .. (), 3] := evalf(convert~(SumLoadcase[1 .. (), 3], 'units', Unit('kN')));                # Q
SumLoadcase[1 .. (), 4] := evalf(convert~(SumLoadcase[1 .. (), 4], 'units', Unit('kN')));                # Qi
SumLoadcase[1 .. (), 5] := evalf(convert~(SumLoadcase[1 .. (), 5], 'units', Unit('kN')));                # Qk
SumLoadcase[1 .. (), 6] := evalf(convert~(SumLoadcase[1 .. (), 6], 'units', Unit('kN')/Unit('m')));        # load / m
  • the convert function not only makes consistent units across a cell, but also calculates the cells
  • the evalf function calculates the rest
  • the rest of the code is unchanged.

@Carl Love 

I do neither have the technical background nor the experience in Maple to comment on that, but Units are source of most of the problems we have had with Maple so far.

@acer

First of all, thanks again for your patience and efforts.

 I've gone through your input and they apparently fix the problem of the first column (with unit [m]). However they do not fix the problems in the other columns.

Running your example the result of the second column is [kN/m*m2]. In my example I get a mishmash of similar units (most likely because of different input, but who knows).

According to the definition on top it should be [kN*m].

@acer 

Any help appreciated!

I'm uploading a new workbook, which is getting really useful already. I'm going to post it on Maple cloud when it's finished.

Koyaanisqatsi.zip

@acer 

Thanks for the input.

Are there any examples which I could have a look at that implement those techniques, or and Maple page that describes common good programming practices?

@acer 

The worksheet became a bit of a mess, so I've cut out everything that was unneccessary.

One of the problems of this case is, that Maple behaves differently if you run things directly, or step by step. It's also a bit unpredictable about what happens actually.

Imho this could very easily be a Java related problem with my graphics card as well.

Anyway, I think there are 2 problems as far as I can see.

  1. Maple does not extend the number of visible columns, if the matrix is extended. It apparently does however reduce the number of visible columns when the matrix is reduced (see part 2 in attachment).
  2. When redefining the number of visible columns manually, the new fields are not updated (all the time). On my PC this looks something like this.

The attachment shows an "original" state before redefining any visible columns.

Try running the commands step by step, or by executing the whole worksheet, and see if you get the same result as I do.

Datatable.mw

@Carl Love 

Ah, yes, I forgot that.

Koyaanisqatsi.zip

Here's the sourcecode, the problem is listed at the end of the program.

Please be advised that documentation is not finished yet, so you have to crack through the code for yourself.

But to explain the problem in a few sentences.

  • The program calculates forces (moments, shear, reactions) on a single span beam with different loads.
  • The first part calculates the forces for a specific load
  • You can have up to 10 different forces on a beam in a loadcase.
  • The last addition is to sum up all results in a new matrix for all given forces
  • The matrix with units is where the problem lies, as it doesn't give a result, but the sum in an expression
  • The unitfree matrix is working ok

Koyaanisqatsi.maple

The code runs nice when run one line after another, but it doesn't work when it is run in a subroutine, or by "execute the whole worksheet".

Datatable.mw 

3 4 5 6 7 8 9 Page 5 of 10