|
From: Stavros M. <mac...@us...> - 2022-01-31 14:40:47
|
- **summary**: Lisp error in MACSYMA related to CONS memory top level --> storage exhausted in large calculation
- **Group**: --> None
---
** [bugs:#3933] storage exhausted in large calculation**
**Status:** open
**Group:** None
**Created:** Sat Jan 29, 2022 03:57 PM UTC by Guillermo P. Ortiz
**Last Updated:** Mon Jan 31, 2022 11:52 AM UTC
**Owner:** nobody
Dear Maxima Team,
I am not sure about this issue, but I did not found it in any blog or mailing list.
According to this report a related lisp error with MACSYMA TOP LEVEL memory in CONS
expression is the cause.
++++++++
here the output message:
Maxima encountered a Lisp error:
Condition in MACSYMA-TOP-LEVEL [or a callee]: INTERNAL-SIMPLE-ERROR: The storage for CONS is exhausted. 1634280 pages allocated. Use ALLOCATE to expand the space.
Automatically continuing.
+++++++
and here the bug_report() output:
Please report bugs to:
https://sourceforge.net/p/maxima/bugs
To report a bug, you must have a Sourceforge account.
Please include the following information with your bug report:
-------------------------------------------------------------
Maxima version: "5.44.0"
Maxima build date: "2021-04-24 14:52:58"
Host type: "x86_64-pc-linux-gnu"
Lisp implementation type: "GNU Common Lisp (GCL)"
Lisp implementation version: "GCL 2.6.12"
User dir: "/home/gortiz/.maxima"
Temp dir: "/tmp"
Object dir: "/home/gortiz/.maxima/binary/5_44_0/gcl/GCL_2_6_12"
Frontend: false
-------------------------------------------------------------
Below I copy the code, but to run a couple of tables are required and many pages are displayed. Please, let me know is it is needed anyway. They are interpolated after makelist for eack are doing.
Also I introduce my own sqrt (mysqrt) because I need a different branch cut by default in maxima.
~~~
dynamalloc:true;
eq1:ED1*exp(%i*k1*d1)-ED2*exp(%i*k2*d1)+EI1*exp(-%i*k1*d1)-EI2*exp(-%i*k2*d1)=DE0*exp(%i*k*d1);
eq2:k1*ED1*exp(%i*k1*d1)-k2*ED2*exp(%i*k2*d1)-k1*EI1*exp(-%i*k1*d1)+k2*EI2*exp(-%i*k2*d1)=k*DE0*exp(%i*k*d1);
eq3:ED1-ED2*exp(%i*(k2-k)*d)+EI1-EI2*exp(-%i*(k2+k)*d)=DE0;
eq4:k1*ED1-k2*ED2*exp(%i*(k2-k)*d)-k1*EI1+k2*EI2*exp(-%i*(k2+k)*d)=k*DE0;
neq:linsolve([eq1,eq2,eq3,eq4],[ED1,ED2,EI1,EI2]);
E01:4*%pi*q*J0/(%i*c**2*(k1**2-k**2));
E02:4*%pi*q*J0/(%i*c**2*(k2**2-k**2));
neq:subst(DE0=E02-E01,neq);
[ED1,ED2,EI1,EI2]:subst(neq,[ED1,ED2,EI1,EI2]);
sinc(x):=sin(x)/x;
epsM:(k/q)**2*c**2+4*%pi*J0*d/(%i*q*(d1*E01+d2*E02+
ED1*d1*sinc((k1-k)*d1/2)*exp(%i*(k1-k)*d1/2)+
EI1*d1*sinc((k1+k)*d1/2)*exp(-%i*(k1+k)*d1/2)+
ED2*d2*sinc((k2-k)*d2/2)*exp(%i*(k2-k)*d2/2)+
EI2*d2*sinc((k2+k)*d2/2)*exp(-%i*(k2+k)*d2/2)));
epsM(z):=subst(k=z,epsM);
epsMD2:at(diff(epsM(z),z,2),z=0.001);
mysqrt(x):= if imagpart(sqrt(x))<0 then -sqrt(x) else sqrt(x);
epsM:subst([k1=mysqrt(e1)*q/c,k2=mysqrt(e2)*q/c,d1=80.0,d2=20.0,d=100.0,J0=1.0],epsM(0.001));
s : openr("epsAu_JC.dat");
readline(s);
a:read_nested_list(s);
len:length(a);
are:makelist([a[i][1],a[i][2]],i,1,len);
aim:makelist([a[i][1],a[i][3]],i,1,len);
load("interpol");
epsAu(q):=cspline(are,varname='q)+%i*cspline(aim,varname='q);
close(s);
s1 : openr("epsSiO2.dat");
readline(s1);
readline(s1);
a1:read_nested_list(s1);
len:length(a1);
a1re:makelist([a1[i][1],a1[i][2]],i,1,len);
load("interpol");
epsSiO2(q):=cspline(a1re,varname='q);
close(s1);
epsM:subst([e1=epsSiO2(q),e2=epsAu(q),c=197.33],epsM);
epsM1(x):=subst(q=x,epsM);
epsM2re(x):=float(realpart(epsM1(x)));
epsM2im(x):=float(imagpart(epsM1(x)));
epsMlist:makelist([i,epsM2re(i),epsM2im(i)],i,1.5,3.5,0.04);
~~~
thank you in advance for your attention
Regards
´´´
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |