Maple Flow Questions and Posts

These are Posts and Questions associated with the product, Maple Flow

I am stuck this command works seemlessly in Maple:

ThermophysicalData:-CoolProp:-Property(D, T = 20*Unit('degC'), P = 760*Unit('mmHg'), water)

but it does not work in Maple Flow. Does anyone knows why? Thank you so much for your help in the matter.

We've just launched Maple Flow 2024!

You're in the driving seat with Maple Flow - each new feature has a straight-line connection to a user-driven demand to work faster and more efficiently.

Head on over here for a rundown of everything that's new, but I thought I'd share my personal highlights here.

If your result contains a large vector or matrix, you can now scroll to see more data. You can also change the size of the matrix to view more or fewer rows and columns.

You can resize rows and columns if they're too large or small, and selectively enable row and column headers.

If the vector or matrix in your result contains a unit, you can now rescale units with the Context Panel (for the entire matrix) or inline (for individual entries).

A few releases ago, we introduced the Variables palette to help you keep track of all the user-defined parameters at point of the grid cursor.

You can now insert variables into the worksheet from the Variables palette. Just double-click on the appropriate name.

Maple Flow already features command completion - just type the first few letters of a command, and a list of potential completions appears. Just pick the completion you need with a quick tap of the Tab key.

We've supercharged this feature to give potential arguments for many popular functions. Type a function name followed by an opening bracket, and a list appears.

In case you've missed it, the argument completion list also features (when they make sense) user-defined variables.

You can now link to different parts of the same worksheet. This can be used to create a table of contents that lets you jump to different parts of larger worksheets.

This page lists everything that's new in the current release, and all the prior releases. You might notice that we have three releases a year, each featuring many user-requested items. Let me know what you want to see next - you might not have to wait that long!

I learnt that MapleFlow (MF) was a product similar (and better) than MathCad (MC). I have a old copy of MC, v.11 (with Maple symbolic engine) and I compared it with MF from my engineering dep. 

Can one kindly explain why Sum of a simple Matrix does not work, if the index is placed as exponent? Here what I did:


just a simple question: Is it possible to write procedures in Mapleflow, like (this is just a simple example, not what I would like to code!):

add4:=proc(a,b,c,d) a+b+c+d end proc

and, if so, how to do it? I've tried the above code but got the error

"expecting operator"

I am new to Maple Flow and am constantly having issues like the one shown below. A cell will become corrupted somehow, and the kernel will crash or freeze. I can save and quit, but if I re-open the file, the crash will happen again before I can diable evaluation. My questions:

  1. Has anyone else had this issue? Was it solvable?
  2. Can evaluation be disabled by default? Its possible in Maple but I don't see how in Flow.
  3. Can the kernel be restarted and reconnected (like Jupyter Lab)?

I cant expand the cell in question because of the crash, but this cell isn't the issue. This is happening all the time.

Thanks in advance


When I annotate a MapleFlow worksheet, I would like to typset some text as a superscript or a subscript for clarity, and to match the math expression. Is there a method to format text using superscripts and subscripts?

_local(D, O);
A := [0, 0, 0];
B := [a, 0, 0];
C := [a, b, 0];
D := [0, b, 0];
S := [0, 0, h];
O := [x, y, z];
lineSC := Line(S, C);
lineSD := Line(S, D);
H := Projection(A, lineSC);
K := Projection(A, lineSD);
OH := H - O;
OK := K - O;
OC := C - O;
M := Matrix([OH, OK, OC]);
O := eval(O, %);
R := simplify(Distance(O, H));



  rowalign = "", columnalign = "", groupalign = "", 

  rowspan = "1", columnspan = "1"), rowalign = "", 

  columnalign = "", groupalign = ""), Typesetting:-mtr(

  Typesetting:-mtd(b, rowalign = "", columnalign = "", 

  groupalign = "", rowspan = "1", columnspan = "1"), 

  rowalign = "", columnalign = "", groupalign = ""), 

  Typesetting:-mtr(Typesetting:-mtd(uminus0h, rowalign = "", 

  columnalign = "", groupalign = "", rowspan = "1", 

  columnspan = "1"), rowalign = "", columnalign = "", 

  groupalign = ""), foreground = "[0,0,0]", readonly = "false", 

  align = "axis", rowalign = "baseline", columnalign = "center", 

  groupalign = "{left}", alignmentscope = "true", 

  columnwidth = "auto", width = "auto", rowspacing = "1.0ex", 

  columnspacing = "0.8em", rowlines = "none", 

  columnlines = "none", frame = "none", 

  framespacing = "0.4em 0.5ex", equalrows = "false", 

  equalcolumns = "false", displaystyle = "false", side = "right", 

  minlabelspacing = "0.8em")],variables=[x,y,z],parameter=t,id=1)



  rowalign = "", columnalign = "", groupalign = "", 

  rowspan = "1", columnspan = "1"), rowalign = "", 

  columnalign = "", groupalign = ""), Typesetting:-mtr(

  Typesetting:-mtd(b, rowalign = "", columnalign = "", 

  groupalign = "", rowspan = "1", columnspan = "1"), 

  rowalign = "", columnalign = "", groupalign = ""), 

  Typesetting:-mtr(Typesetting:-mtd(uminus0h, rowalign = "", 

  columnalign = "", groupalign = "", rowspan = "1", 

  columnspan = "1"), rowalign = "", columnalign = "", 

  groupalign = ""), foreground = "[0,0,0]", readonly = "false", 

  align = "axis", rowalign = "baseline", columnalign = "center", 

  groupalign = "{left}", alignmentscope = "true", 

  columnwidth = "auto", width = "auto", rowspacing = "1.0ex", 

  columnspacing = "0.8em", rowlines = "none", 

  columnlines = "none", frame = "none", 

  framespacing = "0.4em 0.5ex", equalrows = "false", 

  equalcolumns = "false", displaystyle = "false", side = "right", 

  minlabelspacing = "0.8em")],variables=[x,y,z],parameter=t,id=2)

               /     2            2         / 2    2\ /
               |    h  a         h  b     h \a  + b / |
               | 2    2    2  2    2    2  2    2    2|
               \a  + b  + h  a  + b  + h  a  + b  + h \

                          /    2         2  /
                          |   h  b    h b   |
                          |   2    2  2    2|
                          \  b  + h  b  + h \

        /                2                       2               
        |               h  a                    h  b             
OHAssign|uminus0x + ------------,uminus0y + ------------,uminus0z
        |            2    2    2             2    2    2         
        \           a  + b  + h             a  + b  + h          

       / 2    2\ /
     h \a  + b / |
   + ------------|
      2    2    2|
     a  + b  + h \

            /                      2                    2  /
            |                     h  b               h b   |
    OKAssign|uminus0x,uminus0y + -------,uminus0z + -------|
            |                     2    2             2    2|
            \                    b  + h             b  + h \

          OCAssign(uminus0x + a,uminus0y + b,uminus0z)

M := Matrix(3, 3, {(1, 1) = Typesetting:-mrow(Typesetting:-mo("&\

  uminus0;"), Typesetting:-mi("x"), Typesetting:-mo("+"), 


  tting:-mi("h"), Typesetting:-mn("2")), Typesetting:-mo("&Invis\

  ibleTimes;"), Typesetting:-mi("a")), Typesetting:-mrow(Typeset\

  ting:-msup(Typesetting:-mi("a"), Typesetting:-mn("2")), 

   Typesetting:-mo("+"), Typesetting:-msup(Typesetting:-mi(\

  "b"), Typesetting:-mn("2")), Typesetting:-mo("+"), 

   Typesetting:-msup(Typesetting:-mi("h"), Typesetting:-mn("2"))\

  ))), (1, 2) = Typesetting:-mrow(Typesetting:-mo("&uminus0;"), 

   Typesetting:-mi("y"), Typesetting:-mo("+"), Typesetting:\


  ), Typesetting:-mn("2")), Typesetting:-mo("⁢"),\

   Typesetting:-mi("b")), Typesetting:-mrow(Typesetting:-msup(Ty\

  pesetting:-mi("a"), Typesetting:-mn("2")), Typesetting:-mo("&p\

  lus;"), Typesetting:-msup(Typesetting:-mi("b"), Typesetting:-m\

  n("2")), Typesetting:-mo("+"), Typesetting:-msup(Typesett\

  ing:-mi("h"), Typesetting:-mn("2"))))), (1, 3) = Typesetting:-\

  mrow(Typesetting:-mo("&uminus0;"), Typesetting:-mi("z"), 

   Typesetting:-mo("+"), Typesetting:-mfrac(Typesetting:-mr\

  ow(Typesetting:-mi("h"), Typesetting:-mo("⁢"), 


  setting:-mi("a"), Typesetting:-mn("2")), Typesetting:-mo("&plu\

  s;"), Typesetting:-msup(Typesetting:-mi("b"), Typesetting:-mn(\

  "2"))))), Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(\

  "a"), Typesetting:-mn("2")), Typesetting:-mo("+"), 

   Typesetting:-msup(Typesetting:-mi("b"), Typesetting:-mn("2"))\

  , Typesetting:-mo("+"), Typesetting:-msup(Typesetting:-mi\

  ("h"), Typesetting:-mn("2"))))), (2, 1) = Typesetting:-mrow(Ty\

  pesetting:-mo("&uminus0;"), Typesetting:-mi("x")), (2, 2) = 

   Typesetting:-mrow(Typesetting:-mo("&uminus0;"), Typesetting:-\

  mi("y"), Typesetting:-mo("+"), Typesetting:-mfrac(Typeset\


   Typesetting:-mn("2")), Typesetting:-mo("⁢"), 

   Typesetting:-mi("b")), Typesetting:-mrow(Typesetting:-msup(Ty\

  pesetting:-mi("b"), Typesetting:-mn("2")), Typesetting:-mo("&p\

  lus;"), Typesetting:-msup(Typesetting:-mi("h"), Typesetting:-m\

  n("2"))))), (2, 3) = Typesetting:-mrow(Typesetting:-mo("&uminu\

  s0;"), Typesetting:-mi("z"), Typesetting:-mo("+"), 


   Typesetting:-mo("⁢"), Typesetting:-msup(Typese\

  tting:-mi("b"), Typesetting:-mn("2"))), Typesetting:-mrow(Type\

  setting:-msup(Typesetting:-mi("b"), Typesetting:-mn("2")), 

   Typesetting:-mo("+"), Typesetting:-msup(Typesetting:-mi(\

  "h"), Typesetting:-mn("2"))))), (3, 1) = Typesetting:-mrow(Typ\

  esetting:-mo("&uminus0;"), Typesetting:-mi("x"), Typesetting:-\

  mo("+"), Typesetting:-mi("a")), (3, 2) = Typesetting:-mro\

  w(Typesetting:-mo("&uminus0;"), Typesetting:-mi("y"), 

   Typesetting:-mo("+"), Typesetting:-mi("b")), (3, 3) = 

   Typesetting:-mrow(Typesetting:-mo("&uminus0;"), Typesetting:-\


Error, invalid input: eval received Matrix(3, 3, {(1, 1) = -x+h^2*a/(a^2+b^2+h^2), (1, 2) = -y+h^2*b/(a^2+b^2+h^2), (1, 3) = -z+h*(a^2+b^2)/(a^2+b^2+h^2), (2, 1) = -x, (2, 2) = -y+h^2*b/(b^2+h^2), (2, 3) = -z+h*b^2/(b^2+h^2), (3, 1) = -x+a, (3, 2) = -y+b, (3, 3) = -z}), which is not valid for its 2nd argument, eqns
       /     1       / 2  2      2        2  2    2  2    2  2
  R := |------------ \a  h  - 2 a  h z + a  x  + a  y  + a  z 
       | 2    2    2                                          
       \a  + b  + h                                           

            2      2  2      2        2  2    2  2    2  2
     - 2 a h  x + b  h  - 2 b  h z + b  x  + b  y  + b  z 

            2      2  2    2  2    2  2\\      
     - 2 b h  y + h  x  + h  y  + h  z /|^(1/2)
Why this error ? Thank you.

Maple Transactions frequently gets submissions that contain Maple code.  The papers (or videos, or Maple documents, or Jupyter notebooks) that we get are, if the author wants a refereed submission, sent to referees by a fairly usual academic process.  We look for well-written papers on topics of interest to the Maple community.

But we could use some help in reviewing code, for some of the submissions.  Usually the snippets are short, but sometimes the packages involved are more substantial.

If you would be interested in having your name on the list of potential code reviewers, please email me (or Paulina Chin, or Jürgen Gerhard) and we will gratefully add you.  You might not get called on immediately---it depends on what we have in the queue.

Thank you very much, in advance, for sharing your expertise.


In MapleFlow lowerscript L is not easily available.  It should be accessible with the CRTL+space after typing L.

Or in a list of common symbols (that pallete is not available in Maple Flow)

I had to to use maple to discover how to enter it.

`ℓ produced the correct result and then deleting the quote I could achieve the desired result.

Time is running out for users of Mathcad® 15 worksheets.
Engineers who need to retain their historical Mathcad project files are faced with a looming deadline to move the content to another file format.

The good news is that Mathcad 15 users can turn to Maple Flow as an effective replacement design calculation tool. Maple Flow is an advanced calculation tool with a free-form layout that makes it easy for engineers to brainstorm, develop, and document their project designs.

Maplesoft now has an efficient migration solution for moving critical Mathcad content to Maple Flow worksheets. This gives engineers a path to safeguard their critical reference designs, mathematical analyses, and engineering test results.

Why are engineers moving from Mathcad 15?
In 2025, some changes are expected that will severely restrict access to Mathcad 15 software. Here’s some background:

  • PTC announced that Mathcad 15 is end-of-sale effective December 2021, restricting license activations for new users.
  • Those existing Mathcad 15 customers who bought multiyear license extensions will see them expire by December 2025. After that, those with subscription licenses will not be able to open the app, and will not be able to access their historic design documents.
  • One of the significant issues engineers are encountering is that the new version of the software is not directly compatible with their historical Mathcad documents. PTC no longer has the right to distribute software versions with a third-party component, and has opted to use a different symbolic calculation engine in Mathcad Prime® that cannot read and edit the legacy files.
  • Another issue is that the Mathcad 15 software does not support Windows 11, so is typically run on Windows 10, a platform that Microsoft will not be supporting after October 2025.
  • Without a reliable way to keep accessing their project work in the Mathcad 15 format, engineers are looking for an alternative design worksheet platform.

As a result, engineers with large repositories of these design files now face converting all the worksheets to a new format or risk losing access to valuable design reports, and the possible regulatory consequences.

Maple Flow as a replacement for Mathcad 15
Engineers who want a long-term stable environment for their critical project work can change their design workflow to use Maple Flow for everyday calculation tasks.

The advanced math features and formatting options in Maple Flow make it a good fit for creating (and updating) design documentation and hand calculations, where engineers combine mathematical equations and variables that change regularly, and show the results in a report.

Maple Flow has a short learning curve, and the range of example templates in the Application Center and the customized training all help users quickly get up to speed with Maple Flow commands and formatting features.

How can I migrate Mathcad 15 content to Maple Flow?
Maplesoft has created a series of migration strategies for users of Mathcad software to transition to Maple Flow for ongoing calculation needs or to meet compliance requirements.

For engineers with a handful of worksheets, or where the calculations only span a few pages, it is relatively quick to reenter the calculations directly in Maple Flow. Some steps will need to be updated to the equivalent Maple Flow function, and there is also the opportunity to use features that are not available in Mathcad 15 (or its successor Mathcad Prime), such as advanced signal processing tools, thermodynamic data, and functionality for the analysis of linear systems.

For engineering firms with large repositories of legacy Mathcad 15 files, Maplesoft has developed a convenient path to migrate batches of content into Maple Flow. Maplesoft Engineering Services guide customers through the migration process and apply an efficient Migration Assistant to move the equations, variable definitions, units, layout, and other supported features from Mathcad 15 worksheets to Maple Flow. The content is mapped to the equivalent Maple Flow functionality, so that calculations can be run and developed further. This allows project worksheets and templates to be recreated with the least investment in time.

This image shows a calculation section before and after batch migration into Maple Flow format:

Ongoing support from Maplesoft

Maple Flow was first launched in 2021 and was developed to give engineers a single tool that can perform mathematical analysis and present results in a professional-looking format. There is built-in support for natural mathematical notation and tracking units, and the development roadmap continues to follow a user-focused approach, so new usability enhancements are regular and relevant.

The current release of Maple Flow gives engineers a path to avoid losing legacy calculations and designs previously stuck in Mathcad 15 worksheets and reuse the content for ongoing project work.

If you would like assistance from Maplesoft with migrating large repositories of design worksheets, please contact Maplesoft Sales.

[This is a contributed article by Alex Beilby, Technical Marketing Mgr, Maplesoft]

I just came across an issue when solving a simple thermodynamics problem. Steam enters a turbine at 140 psia and 1000 F and expands isentropically to 2psia. When I try to determine the exit temperature, the problem occurs. If I set the units for the problem to FPS, I get the answer in F. The problem is that the numerical value is wrong. The numerical value corresponds to degree R, not F. The numerical value given is 585 F, it should be 585 R.  If I set the problem to SI units, the answer is in K. The answer given is 325 K.  I can then convert it to degree F. This way I get the correct answer.

I got the proportional symbol to work once, typing "proportional" + CRTL + Space.  Went for wlak came back and could not get it to work at all.

Does it actually work or am I imagining things?

hello maple team,

i'd really like to know more about the differences among the products ticked above in their different license types

thank you very much in advance for your help dear friends and some who are brothers in Christ Jesus

much Love and regards to you all


Axis properties and line width reverts to some set of defaults each time my work recalculates the plot. Is there a way I can keep the axis properties and line width from changing each time recalculation occurs?

I've used LinearSolve(A,b) to find three unknowns. How do I assign these values to three named variables?

I assigned the resulting vector to a new one


and then, one by one, assigned the elements to variables

C1:= V[1}

C2:= V[2]

C3:= V[3]

But there perhaps is a more elegant way to do this?

1 2 3 4 5 6 7 Page 1 of 7