From e05cdf7cbf967b2e104e95aa261dd541ec58ce66 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 12 Jun 2017 21:42:28 +0000 Subject: pst-ode (12jun17) git-svn-id: svn://tug.org/texlive/trunk@44575 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-ode/ChangeLog | 5 +++++ .../texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf | Bin 127443 -> 128179 bytes .../texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex | 10 ++++++++-- Master/texmf-dist/dvips/pst-ode/pst-ode.pro | 18 ++++++++++++++---- Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex | 8 ++++---- 5 files changed, 31 insertions(+), 10 deletions(-) diff --git a/Master/texmf-dist/doc/generic/pst-ode/ChangeLog b/Master/texmf-dist/doc/generic/pst-ode/ChangeLog index 7f060cb7c05..1431890c0b5 100644 --- a/Master/texmf-dist/doc/generic/pst-ode/ChangeLog +++ b/Master/texmf-dist/doc/generic/pst-ode/ChangeLog @@ -1,3 +1,8 @@ +2017-06-12 + * version 0.8 + * fix: Integration step size underflow doesn't lead to ps2pdf crashing + anymore. Integration of the ODE(s) just stops prematurely. + 2014-10-20 * fix: typo in the documentation diff --git a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf index eaf07bf7baf..d42bad1bb95 100644 Binary files a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf and b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex index 047adfb3d4e..be4749a9968 100644 --- a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex @@ -2,7 +2,10 @@ headexclude,footexclude,oneside,dvips]{pst-doc} \usepackage[UKenglish]{babel} \usepackage[T1]{fontenc} -\usepackage{lmodern} +%\usepackage{lmodern} + \usepackage[tt=false]{libertine} %override beramono (doesn't look like tt font) + \usepackage[libertine]{newtxmath} + %\usepackage[scaled=0.83]{luximono} %override beramono (doesn't look like tt font) \usepackage{attachfile2} \attachfilesetup{date={},color=1 0 0} \usepackage[latin1]{inputenc} @@ -144,7 +147,10 @@ Option \Lkeyword{algebraicAll} is equivalent to setting all of \Lkeyword{algebra Option \Lkeyword{silent} suppresses the terminal output of stepping information. -The tolerance for the automatic integration step size calculation can be set with \Lkeyword{varsteptol} \Lkeyword{=}\Larg{value}. The default value is \Lkeyword{1e-6}. It may be necessary to enlarge it using this option in cases that fail with `\Lkeyword{error: step size underflow in ODEINT}'.\\[1ex] +The tolerance for the automatic integration step size calculation can be set with \Lkeyword{varsteptol} \Lkeyword{=}\Larg{value}. The default value is \Lkeyword{1e-6}. + +In the case of integration step size underflow, which is indicated by writing `\Lkeyword{!}' to the terminal during PS to PDF conversion, the computation stops prematurely before reaching $t_\mathrm{e}$. This may happen for stiff ODEs at some point along the integration interval.\\[1ex] +%It may be necessary to enlarge it using this option in cases that fail with `\Lkeyword{error: step size underflow in ODEINT}'.\\[1ex] \begin{BDef} \Lcs{pstODEsaveState}\Largb{state} diff --git a/Master/texmf-dist/dvips/pst-ode/pst-ode.pro b/Master/texmf-dist/dvips/pst-ode/pst-ode.pro index f89123fce99..848ac7d728c 100644 --- a/Master/texmf-dist/dvips/pst-ode/pst-ode.pro +++ b/Master/texmf-dist/dvips/pst-ode/pst-ode.pro @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % PostScript prologue for pst-ode.tex. -% Version 0.7, 2014/10/20 +% Version 0.8, 2017/06/12 % % Alexander Grahn (C) 2012--today % @@ -135,10 +135,20 @@ end %failed step -> reduce step size ode@dict exch pop pshrink exp 0.1 max sfty mul ddt mul /ddt exch def - (-) odeprint ode@dict tcur ddt add tcur end eq { - (error: step size underflow in ODEINT) print quit - } if + ode@dict tcur ddt add tcur end eq { + % error: step size underflow in ODEINT + (!) odeprint + true + }{ + (-) odeprint + false + } ifelse end + % on step size underflow ... + { + pop % remove previous state vector and + exit % leave loop over output steps (pst-ode.tex) + } if ODEINT %repeat step with new ddt }{ %success diff --git a/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex b/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex index b34dd5a8de9..18fe40e9045 100644 --- a/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex +++ b/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex @@ -11,8 +11,8 @@ %% ODEs using the Runge-Kutta-Fehlberg (RKF45) method with automatic %% step size adjustment %% -\def\fileversion{0.7} -\def\filedate{2014/10/20} +\def\fileversion{0.8} +\def\filedate{2017/06/12} \csname PSTODELoaded\endcsname \let\PSTODELoaded\endinput @@ -162,8 +162,8 @@ } bind def \else /formatoutput {[#2] assembleresult} def \fi% %perform ode integration - (\string\n pstODEsolve RKF45 method; '-' failed step, '+' successful step, % - 'o' output step : \string\n) odeprint + (\string\n pstODEsolve (RKF45),\string\n) odeprint + (-/+ failed/successful step; "o" output step; "!" step size underflow (stop):\string\n) odeprint ode@dict /tcur tStart def % current parameter t value /tout tStart dt add def % next output t -- cgit v1.2.3