Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
Hello,
I have converted a MathCAD file from an older version of MathCAD (where it worked beautifully) to Prime 2.0. In the process of converting the primary program that calls multiple sub-programs stopped working. I thought I had successfully fixed all of the errors, but now the whole program is outlined in red and MathCAD indicates that there is an error "Unknown Error: mpl%_exception". Does anyone know what this means and how I can fix it? It seems as if other errors are the result of large programs running in MathCAD. Is that the case here?
Input appreciated,
Amanda
Solved! Go to Solution.
Sorry. After experimenting I edited my reply, which might have led to confusion. Replace the row vector with a large number of variabe names on the left of the assignment operator with a single variable name. It doesn't matter what the variable name is. I used "xxx" only because it wouldn't conflict with any existing variable names in the worksheet.
Can you send worksheets?
Unfortunately I cannot post the worksheets.
Amanda Rock wrote:
Unfortunately I cannot post the worksheets.
So w/o the sheet I think that no help is to be expected here. I had that unknown multiplication error, too, but don't remember what the cause was and how I fixed it. Guess there are a myriad of possibilities.
As its an unknown error its a sign how unfinioshed Prime still is. That kind of errors should not pop up, so I would call it a bug and think you should report it to PTC. The will need the sheet, too, but if you log a case there is the possibility for a non-disclosure agreement.
There's no way to know without the worksheet, and probably no way to know even with it. The best solution is to stick with MC15 for as long as possible. At some point it will no longer be possible, but hopefully (admittedly, not that great a hope for my part) Prime will then be acceptable as a solution. If not, it will become a bitter choice between accepting the inadequacies of Prime or switching to another package (e.g. Mathematica) that is expensive and / or has it's own limitations, and throwing away all the work done in Mathcad (for me, that is almost two decades worth of worksheets).
Did you try and copy the contents of the converted sheet onto a new sheet? I have had certain features not work when first converting the worksheet but pasting the contents on a new worksheet was successful.
I hope this helps.
Norm,
No luck with the copy/paste. Thanks for the suggestion.
Thanks everybody for the input. It looks like I may just be sticking with M15. Everything seems to function appropriately there.
Ok. Attached is the file in question. The program I'm having trouble with is the Morphologic Time Loop (page 27), which calls all of the previous functions. There was a problem with the Evolve sub-program (pg. 24), which I know about because the Morphologic Time Loop would run until I fixed the error (undefined variable sdiv). No it won't run at all. Let me know what you think.
If you put an arbitrary variable name to the left of the assignment (I used "xxx") so that it only has one variable name the error message goes away. There's still an error, but it's an error about incompatible units. Maybe the large number of variable names is the problem, or maybe it's one particular one that's the problem.
I'm not sure I understand what you are explaining. Are you saying to replace the entire bottom row with just "xxx"? When I do that I get an undefined variable error. When I leave only 1 of the actual defined variables as the bottom line I get the same mpl_exception error.
Sorry. After experimenting I edited my reply, which might have led to confusion. Replace the row vector with a large number of variabe names on the left of the assignment operator with a single variable name. It doesn't matter what the variable name is. I used "xxx" only because it wouldn't conflict with any existing variable names in the worksheet.
The program I'm having trouble with is the Morphologic Time Loop (page 27), which calls all of the previous functions.
Especially it calls U1() from page 14 and this routine (don't know if its the only error) throws the mismatch unit error which Richard spotted - see below.
You are trying to add three summands which all have different units. All three subexpression must have the same unit, of course, if you want to add them. It's impossible that the sheet should have worked OK in Mathcad 15!
Even though you might have done something wrong with this function the mpl_exception error should not have been occured and therefore I still call it a bug in Prime.
It's impossible that the sheet should have worked OK in Mathcad 15!
I suspect the unit mismatches are due to an incorrect implementation of the labels used in Prime during the worksheet conversion. For example, if you look at the last line of the Morphologic Time Loop program some of the variables have units removed by the normal division operator, and some by the inline division operator. When the inline division operator is used the units are not labeled as units. I didn't look through the entire worksheet (way too long!) but I wonder if there are not similar problems higher up the sheet.
As an aside, Prime allows vectors with mixed units, so the step of removing the units from all the return values could be dispensed with. It's probably better to get it working first with the minimum of changes though, and then go back and modify it to take advantage of one of the benefits Prime does have over MC15.
I suspect the unit mismatches are due to an incorrect implementation of the labels used in Prime during the worksheet conversion. For example, if you look at the last line of the Morphologic Time Loop program some of the variables have units removed by the normal division operator, and some by the inline division operator. When the inline division operator is used the units are not labeled as units.
The error with U1() seems not to be due to units but you are right, that will not be the only error. I didn't scroll far enough to the right to spot that labelling discrepancy. Its not an easy to debug worksheet, indeed.
The error with U1() seems not to be due to units but you are right, that will not be the only error.
Correction: The U1() error sure is due to units. What I had in mind was that these unit errors in that routine are not due to wrong (automatic) labelling.
I am currently working through all of the unit issues. The sheet did indeed work in 15, although I admit I did make some changes to that particular formula after the conversion, which I changed back. Still no luck unfortunately, Although I am past the mpl%_exception error for now (Thanks Richard).
I think I've got it all figured out. Everything is working (finally!) thanks to that work-around with the Morphologic Time Loop output workaround. Thanks for the help everyone!
I just had this problem also and it seemed to result because I had selected Multithreading and/or Approximate Equality under Calculation Options (Prime 3.1). Once unselected everything returned to normal functionality.