Samir Khan

1784 Reputation

19 Badges

14 years, 341 days

My role is to help customers better exploit our tools. I’ve worked in selling, supporting and marketing maths and simulation software for all my professional career.

I’m fascinated by the full breadth and range of application of Maple. From financial mathematics and engineering to probability and calculus, I’m always impressed by what our users do with our tools.

However much I strenuously deny it, I’m a geek at heart. My first encounter with Maple was as an undergraduate when I used it to symbolically solve the differential equations that described the heat transfer in a series of stirred tanks. My colleagues brute-forced the problem with a numerical solution in Fortran (but they got the marks because that was the point of the course). I’ve since dramatized the process in a worksheet, and never fail to bore people with the story behind it.

I was born, raised and spent my formative years in England’s second city, Birmingham. I graduated with a degree in Chemical Engineering from The University of Nottingham, and after completing a PhD in Fluid Dynamics at Herriot-Watt University in Edinburgh, I started working for Adept Scientific – Maplesoft’s partner in the UK.

MaplePrimes Activity

These are replies submitted by Samir Khan


Units appear to work better when all math is done at maple prompts rather than just typing 2d math into a document


When using units, I work in 2d math using Worksheet mode. This gives you

  • the structure of input prompts
  • the 2d math
  • and the ability to use CTRL+Shift+U to enter units  (I find this quicker than using the mouse to choose units from the Units palette, and you don't see the Unit() syntax in your equations)


1) Maple doesnt seem to convert between different units of the same dimension. For example:

w:= 10*feet+6*inch;   simplify(w);  produces 10*feet+6*inch rather than 10.5 feet or 126 inch


b:= 1 inch * 12 inch/(1 feet * 1 feet); simplify(b); produces 12 inch^2/feet^2


Load with(Units[Simple]) before you do any units calculations. The result of 10.0*Unit('ft')+6.0*Unit('inch') will automatically be converted to meters


2) There isnt a way to specify output units.  For example:

w:= 100 inch;

A:= w^2;

produces 10,000 inch and there is no way to ask for A in terms of feet^2 (unless w is entered in feet)


Right click on the result and select "Units Formatting". In the dialog that pops up, enter ft^2 in "Custom Unit"


Mathcad has an elegant and simple implementation of units. I find that Mathcad users come to Maple with the same expectation of units.

We're working on a long term plan to bring make units handling more intuitive, and more deeply ingrained into the system. The first step was the introduction of the Units[Simple] package last year. Expect to see more changes with the next release.

Here's an animation of a robot arm drawing a Maple leaf, courtesy of this worksheet

@Markiyan Hirnyk Your screen shows shows "Adult literacy rate, population 15+ years, gender parity index (GPI)"

The application uses "Adult literacy rate, population 15+ years, both sexes (%)" for the year 2015. As the title of the application here states, only subsaharan african countries are plotted (as such, Egypt is not plotted)

@Markiyan Hirnyk The data comes from Specifically, it's the adult literacy rate for both sexes, ages 15+. The complete application is here

@Ramakrishnan The Organic Rankine Cycle application can be found here (and it's in the Application Gallery in Maple 2017). All the code is in the startup code region. In the application

  • the flowchart is an image (that is, an image file created in another tool and placed on the plot with the background option)
  • the text and numbers on the plot are textplots.

If you want box color to vary with the value of a variable, you'll need to construct the flowchart (i.e the boxes and the arrows) using plottools. Perhaps something like this

conditionalValue := 1.2:
colorList := [[0,79/255, 121/255], [221/255,231/255, 240/255]]:
colorValue := piecewise(conditionalValue > 1, colorList[1], colorList[2]):
p1:=rectangle([-2,1],[2,-1],color=Color("RGB",colorValue), style=surface):
p2 := textplot([2,1.4,sprintf("Value = %.1f",conditionalValue)],font=[Arial, Bold]):
display(p1, p2,scaling=constrained, view = [-5..5, -5..5], axes = none)


@Ramakrishnan You might be interested in this document:

Enhancements to PDE solvers in Maple 2017

@Markiyan Hirnyk We already know :)


Please send one of your Mathcad worksheets to us at (mark it for my attention)

I'll let you know if we think Maple is a viable alternative.


@mclaine Could you please email a typical Mathcad worksheet to (marked for my attention). I'd like to take a closer look, and perhaps provide a few recommendations. The technical context always matters

Mathcad will discard angle units in numeric output...

Maple will not, unless you specifically ask it to (with convert(B,unit_free))

If you're thinking about switching from Mathcad to Maple, I would not concentrate on directly reproducing your Mathcad units experience in Maple. The underlying implementation is too different.

Are you doing antenna design? I'm guessing from your previous questions and comments about units, scientific constants, and phasors.

@mclaine I used to work for a Mathcad reseller in tech support, so I know both products well.

Are you attemping to convert an existing Mathcad worksheet to Maple? If so, can you share the Mathcad worksheet? That would help us understand the context of your issue.

@Christopher2222 Here's a rough cut of an analysis.



This function gives the coldest possible temperature (i.e. the wet bulb temperature) in a Zeer as a function of the air temperature

and the relative humidity

Twb_val := (Tdb_val, R_val) -> Property(Twb, HumidAir, Tdb = Tdb_val, R = R_val,

pressure = 101325):

Range of relative humidities to plot:

R_val := [0.3, 0.4, 0.5, 0.6, 0.7]:

p1 := seq(plot(Twb_val(temp, R_val[i]), temp = 280 .. 310, adaptive = false,

numpoints = 20), i = 1 .. 5):

p2 := seq(textplot([310, Twb_val(310, R_val[i]), sprintf("R = %.1f",R_val[i])]),

i = 1 .. 5):

display(p1, p2, labels = ["Air Temperature (K)", "Coldest Possible Temperature in Zeer (K)"],

labeldirections = [horizontal, vertical])


At a constant air temperature, the coldest possible temperature (i.e. the wet bulb temperature) increases as the relative humidity

(i.e. water in air) increases.


This makes sense because


If there is more water in the air, less water will evaporate from the wet sand between the two pots in the Zeer


and hence less latent heat will be removed



This MapleSim model contains a Modelica custom component that reads the CoolProp DLL. You'll need to change the path in the code to point to the location of the DLL on your computer.



@Thomas Richard

  • Those techniques are not appropriate for the typical home user (e.g. ISPs that block port 25, Windows OS etc)
  • MailGun works also on the MapleCloud. I have Cloud applications that email results to the user (after the user has entered their email in a text area). Let me know if you want access.


3 4 5 6 7 8 Page 5 of 8