acer

32303 Reputation

29 Badges

19 years, 304 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

@C_R The OP has expressed concern with the GUI launch time. He's written that that is an "overall" concern because of some need for multiple launches.

There was no specific mention by the OP of wider spread performance degradation, although the OP might have intended to convey concern about GUI performance more generally.

I agree that the topic of a performance test/example suite is interesting (and has been discussed before), but the OP's specific example is not about the computational engine/kernel.

For what it's worth, in Linux at least a value of the GUI's startup time is stored (upon full GUI closure) in the "Length of Startup in ms" field of the GUI preferences file. Perhaps it's stored on Windows too.

I suspect that the value represents the last individual timings, as opposed to any kind of average. So, likely varying slightly.

On my Linux box (quad core i5-7400 CPU @ 3.00GH), my ~/.maple/*/maplerc files together have this data:


Has anyone got widely different values for M2024 vs M2025, and if so then what's the platform?

1) I don't run any startup or initialization code for these examples.
2) My M2025 is an earlier beta, so ymmv.

An Explore of an IterativeMaps:-Escape call.

Escape_ex1.mw

(fun, except when it crashes...)

@mmcdara I suggest you submit an SCR for it, thanks.

I see the problem on Linux as well.

If I remove all output from the worksheet and restart then the GUI renders the problematic plot once, and then rerendering that plot's output again shows the error notice. And that process can be repeated, without closing the worksheet.

@Scot Gould The preferences all appear to be in order. It seems like a new GUI bug, specifically for opening via the launcher.

I suggest that you submit a bug report.

@Tom GIV That's great that it's working for you.

You might now wonder how you could automate the augmenting of libname, so that it's not needed to be explicitly entered in each session (or after restart).

Here are a few different ways, of which you could choose one:

1) First find what is the resulting string from this Maple command,
         cat(kernelopts('homedir'),"/maple/toolbox");
     Then concatenate/append that with, say,
         "/myKinProject/lib"
      and create such a folder in your OS.
      (note: Maple understands forwardslash on all platforms. It makes it easier than
       having to deal with escaping "\" by having double backslashes. But of course
       you'll know how to make such a folder in your OS, using its filemanager, etc.)
      If you put your .mla in that folder then after full closure and relaunch
      of Maple that location should appear in libname.
1b) You also add a Maple version number as another layer to that location, eg.
           toolbox/2024/myKinProject/lib
       That makes it get added in just that version.
2) Put your previous manual call like,
         libname := "C:\\Users\\tom\\Documents\\MyEquil.mla",libname;
    in a personal initialization file. See the Help topic,
         worksheet,reference,initialization
3) (not recommended by me) Put your .mla file in a folder already in libname,
     eg. the result from this,
         cat(kernelopts('mapledir'),"/lib");
     I don't like that because I dislike tinkering with my Maple installation if I
     don't have to. Also, you have to remember you did this when you upgrade.

And, lastly, you might not want the contents of your .mla archive to be
available (assigned names, etc) in every Maple session. You can get finer
control by making your procedure the export of a package module. Eg. in your
build session,

MyEquil := module()
    option package;
    export KinAddCurveData;
    KinAddCurveData := what_you_had_working;
end module:

and then LibraryTools:-Save on MyEquil instead of on KinAddCurveData. Then
you can utilize it in your other sessions by doing either,

   with(MyEquil);
   KinAddCurveData();

or just,

    MyEquil:-KinAddCurveData();

Using a package controls your global namespace, eg. If you have many such
procedures assigned to names then the global names don't have those values/bindings
automatically. But the usage is like for other stock packages.

So, you can get flexible control, if you'd like.

@Scot Gould Sorry, I mistyped! I meant to have written that the GUI's Options setting,
   "Open worksheets in" -> Tab
corresponded to the preferences file item,
   MDIOnOpenAndNew=true

So, what happens if you File->Open multiple files from within the GUI, as opposed to from the desktop launcher? Does it open them all in tabs, or in separate windows?

Can you open the very same .mw file more than once, concurrently, using the desktop launcher?

If you open the desktop launcher icon's Properties and examine its call to Maple (text code), does it pass any opens to the Maple executable?

ps. Have you tried the (legacy) accesibility GUI in your M2025? (Basically, the old Java GUI, IINM.) I'm not suggesting that you switch; I'm just interested in whether the problem is there too.

pps. I like to think that here we all have far more in common than we have differences.

@dharr It seems to me that if efficiency is the concern then the OP could inform us whether he really needs all the results up front, or whether his goal might involve iterating across them.

The .mla approach would be the sophistacated way, which avoids actually recreating the call_external produced by define_external.

An easier approach would be to simply put your working define_external code inside a plaintext file and then use the read command on that in any new session, to call your procedure by name. (That's similar to what you were trying before, except that you were trying to use read with a .mw worksheet file.)

Sometimes people use the filename extenstion .mpl for such plaintext files. That's just a convention.

@mmcdara Yes, Prandtl number was my guess.

I think that the OP ought also to double check all the rest of his two formulas thoroughly, given the mistakes, before too much time is spent fiddling with the first parameter set.

@dharr In Maple 2023 it seems to suffice to assume that w>0 in order to get a explicit result from inttrans[fourier] here.

But without any assumptions the fourier call returns unevaluated. Perhaps the OP originally had used assume, etc.

Collecting the result w.r.t. hypergeom tidies it up quite a bit.

If w<1 is also taken, or if all variables are taken as real (evalc), then further simplifications are possible.

Fourier_ac.mw

@WD0HHU Only the OP can tell you what he intends for Pr.

But that's a good question!

if I assign a numeric value for Pr then only 5 BCs are wanted, so I can get rid of the one I introduced. (This might all be a consequence of how it isolates and/or converts to 1st order bigger system, internally...)

It raises a related issue. It seems that there are also additional syntax mistakes in the OP's 2D Math inputs.

For example, eq1 and eq2 have the function calls,

   phi[2](1-phi[1]+phi[1]*rho[s1]/rho[fl])
   phi[2](1-phi[1]+phi[1]*rho[s1]*beta[s1]/(rho[fl]*beta[fl]))
   phi[1](k[fl]-k[s1]), phi[2](k[fl]-k[s2]),
   phi[2](1-phi[1]+phi[1]*rho[s1]*C[p][s1]/(rho[fl]*C[p][fl]))

And those may well have been intended as products with phi[1] and phi[2] as multiplicands, rathers that as functions to phi[1] and phi[2].

If I "fix" the phi[1],phi[2] issue so that their function calls are multiplications then the dsolve call for parameter values a1 does not immediately converge. I haven't looked more closely at that.

restart

kernelopts(version);

`Maple 18.02, X86 64 LINUX, Oct 20 2014, Build ID 991181`

with(plots):

eq1 := diff(f(x), x, x, x)+(1/2)*(1+phi[1])^2.5*(1-phi[2])^2.5*((1-phi[2])*(1-phi[1]+phi[1]*rho[s1]/rho[fl])+phi[2]*rho[s2]/rho[fl])*f(x)*(diff(f(x), x, x))+((1+phi[1])^2.5*(1-phi[2])^2.5*M+1/K[p])*sin(alpha)^2*(1-(diff(f(x), x)))+(1+phi[1])^2.5*(1-phi[2])^2.5*((1-phi[2])*(1-phi[1]+phi[1]*rho[s1]*beta[s1]/(rho[fl]*beta[fl]))+phi[2]*rho[s2]*beta[s2]/(rho[fl]*beta[fl]))*lambda*cos(gamma)*theta(x) = 0:

eq2 := (k[s2]+2*k[fl]-2*phi[2]*(k[fl]-k[s2]))*(k[s1]+2*k[fl]-2*phi[1]*(k[fl]-k[s1]))*(diff(theta(x), x, x))/((k[s2]+2*k[fl]+phi[2]*(k[fl]-k[s2]))*(k[s1]+2*k[fl]+phi[1]*(k[fl]-k[s1])))+(1/2)*Pr*((1-phi[2])*(1-phi[1]+phi[1]*rho[s1]*C[p][s1]/(rho[fl]*C[p][fl]))+phi[2]*rho[s2]*C[p][s2]/(rho[fl]*C[p][fl]))*f(x)*(diff(theta(x), x))+upsilon*Pr*theta(x)/((1-phi[2])*(1-phi[1]+phi[1]*rho[s1]*C[p][s1]/(rho[fl]*C[p][fl]))+phi[2]*rho[s2]*C[p][s2]/(rho[fl]*C[p][fl])) = 0:

indets(eq1, function);

{cos(gamma), diff(diff(diff(f(x), x), x), x), diff(diff(f(x), x), x), diff(f(x), x), f(x), sin(alpha), theta(x)}

indets(eq2, function);

{diff(diff(theta(x), x), x), diff(theta(x), x), f(x), theta(x)}

bcs := f(0) = 0, (D(f))(0) = 0, (D(f))(9) = 1;

f(0) = 0, (D(f))(0) = 0, (D(f))(9) = 1

theta(0) = 1, theta(9) = 0

a1 := [phi[1] = .1, phi[2] = .1, rho[s1] = 3970, rho[s2] = 8933, rho[fl] = 997.1, beta[s1] = .85, beta[s2] = 1.67, beta[fl] = 21, k[s1] = 40, k[s2] = 401, k[fl] = .613, C[p][s1] = 765, C[p][s2] = 385, C[p][fl] = 4179, sin(alpha) = 0, cos(gamma) = 1, M = 1, K[p] = .5, lambda = 0, upsilon = 1]:

Pr := 1;

1

c2 := dsolve({bcs, bcs1, subs(a2, eq1), subs(a2, eq2)}, numeric):

TFP := Typesetting:-Typeset(theta(x)):

display(p2, p3, p4, thickness = 3, legendstyle = [location = right], size = [700, 450]);

c1 := dsolve({bcs, bcs1, subs(a1, eq1), subs(a1, eq2)}, numeric);

Error, (in dsolve/numeric/bvp) initial Newton iteration is not converging

 

 

Download HIPT_acc.mw

@mmcdara Your way of creating the U proc is also problematic. One could instead use unapply.

I agree that the OP's worksheet seems based on some poorly understood approach. The methodology itself looks shaky.

@awass It's not a hidden character.

It's the combination of the proc definition code being split across two separate Execution Groups that are both set to "presentation" view.

I discovered this by opening the .mw file in an external text editor. I have some familiarity with the XML structure used for .mw files.

I don't know how you managed to get them into that configuration. I notice also that that mode suppresses the visibility of the red chevon prompt. It might have gotten into a muddle wrt 2D vs 1D or some such. Also, in that mode the usual F4 to join the two Groups doesn't seem to function for me.

The advice to discard it (or perhaps copy line by line, not altogether) might be the thing to do here.

@MichaelVio Please put very close followup queries on this same underlying problem here (in a Reply/Comment) instead of spawning a wholly separate new Question thread.

Or, if the problem is related but different in essence, you could use the Branch choice (at the bottom of this Question's body). That automatically puts cross-reference links into both the new and the old Question.

It's not helpful if the material is split, since nobody can easily see what came before or after (or even know that it's there...).

Duplicate Question threads get flagged as such, and may be deleted.

ps. In one revision of your sheets I've seen the call,
      solve({E1=3.259*ec,nu=432})
but note that was done after a restart (which wipes any earlier definition of E1). In any followup, you should really explain in full detail what E1 is supposed to be, and which equations would establish A, etc.

First 7 8 9 10 11 12 13 Last Page 9 of 591