diff options
Diffstat (limited to 'src/algebra/d03.spad.pamphlet')
-rw-r--r-- | src/algebra/d03.spad.pamphlet | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/src/algebra/d03.spad.pamphlet b/src/algebra/d03.spad.pamphlet new file mode 100644 index 00000000..9f4e0cb8 --- /dev/null +++ b/src/algebra/d03.spad.pamphlet @@ -0,0 +1,195 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra d03.spad} +\author{Godfrey Nolan, Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{package NAGD03 NagPartialDifferentialEquationsPackage} +<<package NAGD03 NagPartialDifferentialEquationsPackage>>= +)abbrev package NAGD03 NagPartialDifferentialEquationsPackage +++ Author: Godfrey Nolan and Mike Dewar +++ Date Created: Jan 1994 +++ Date Last Updated: Thu May 12 17:44:51 1994 +++Description: +++This package uses the NAG Library to solve partial +++differential equations. +++See \downlink{Manual Page}{manpageXXd03}. +NagPartialDifferentialEquationsPackage(): Exports == Implementation where + S ==> Symbol + FOP ==> FortranOutputStackPackage + + Exports ==> with + d03edf : (Integer,Integer,Integer,Integer,_ + DoubleFloat,Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,Integer) -> Result + ++ d03edf(ngx,ngy,lda,maxit,acc,iout,a,rhs,ub,ifail) + ++ solves seven-diagonal systems of linear equations which + ++ arise from the discretization of an elliptic partial differential + ++ equation on a rectangular region. This routine uses a multigrid + ++ technique. + ++ See \downlink{Manual Page}{manpageXXd03edf}. + d03eef : (DoubleFloat,DoubleFloat,DoubleFloat,DoubleFloat,_ + Integer,Integer,Integer,String,Integer,Union(fn:FileName,fp:Asp73(PDEF)),Union(fn:FileName,fp:Asp74(BNDY))) -> Result + ++ d03eef(xmin,xmax,ymin,ymax,ngx,ngy,lda,scheme,ifail,pdef,bndy) + ++ discretizes a second order elliptic partial differential + ++ equation (PDE) on a rectangular region. + ++ See \downlink{Manual Page}{manpageXXd03eef}. + d03faf : (DoubleFloat,DoubleFloat,Integer,Integer,_ + Matrix DoubleFloat,Matrix DoubleFloat,DoubleFloat,DoubleFloat,Integer,Integer,Matrix DoubleFloat,Matrix DoubleFloat,DoubleFloat,DoubleFloat,Integer,Integer,Matrix DoubleFloat,Matrix DoubleFloat,DoubleFloat,Integer,Integer,Integer,ThreeDimensionalMatrix DoubleFloat,Integer) -> Result + ++ d03faf(xs,xf,l,lbdcnd,bdxs,bdxf,ys,yf,m,mbdcnd,bdys,bdyf,zs,zf,n,nbdcnd,bdzs,bdzf,lambda,ldimf,mdimf,lwrk,f,ifail) + ++ solves the Helmholtz equation in Cartesian co-ordinates in + ++ three dimensions using the standard seven-point finite difference + ++ approximation. This routine is designed to be particularly + ++ efficient on vector processors. + ++ See \downlink{Manual Page}{manpageXXd03faf}. + Implementation ==> add + + import Lisp + import DoubleFloat + import Any + import Record + import Integer + import Matrix DoubleFloat + import Boolean + import NAGLinkSupportPackage + import AnyFunctions1(Integer) + import AnyFunctions1(String) + import AnyFunctions1(DoubleFloat) + import AnyFunctions1(Matrix DoubleFloat) + import AnyFunctions1(ThreeDimensionalMatrix DoubleFloat) + import FortranPackage + import Union(fn:FileName,fp:Asp73(PDEF)) + import Union(fn:FileName,fp:Asp74(BNDY)) + + + + + d03edf(ngxArg:Integer,ngyArg:Integer,ldaArg:Integer,_ + maxitArg:Integer,accArg:DoubleFloat,ioutArg:Integer,_ + aArg:Matrix DoubleFloat,rhsArg:Matrix DoubleFloat,ubArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "d03edf",_ + ["ngx"::S,"ngy"::S,"lda"::S,"maxit"::S,"acc"::S_ + ,"iout"::S,"numit"::S,"ifail"::S,"us"::S,"u"::S,"a"::S,"rhs"::S,"ub"::S_ + ]$Lisp,_ + ["us"::S,"u"::S,"numit"::S]$Lisp,_ + [["double"::S,"acc"::S,["us"::S,"lda"::S]$Lisp_ + ,["u"::S,"lda"::S]$Lisp,["a"::S,"lda"::S,7$Lisp]$Lisp,["rhs"::S,"lda"::S]$Lisp,["ub"::S,["*"::S,"ngx"::S,"ngy"::S]$Lisp]$Lisp_ + ]$Lisp_ + ,["integer"::S,"ngx"::S,"ngy"::S,"lda"::S,"maxit"::S_ + ,"iout"::S,"numit"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["us"::S,"u"::S,"numit"::S,"a"::S,"rhs"::S,"ub"::S,"ifail"::S]$Lisp,_ + [([ngxArg::Any,ngyArg::Any,ldaArg::Any,maxitArg::Any,accArg::Any,ioutArg::Any,ifailArg::Any,aArg::Any,rhsArg::Any,ubArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + d03eef(xminArg:DoubleFloat,xmaxArg:DoubleFloat,yminArg:DoubleFloat,_ + ymaxArg:DoubleFloat,ngxArg:Integer,ngyArg:Integer,_ + ldaArg:Integer,schemeArg:String,ifailArg:Integer,_ + pdefArg:Union(fn:FileName,fp:Asp73(PDEF)),bndyArg:Union(fn:FileName,fp:Asp74(BNDY))): Result == + pushFortranOutputStack(pdefFilename := aspFilename "pdef")$FOP + if pdefArg case fn + then outputAsFortran(pdefArg.fn) + else outputAsFortran(pdefArg.fp) + popFortranOutputStack()$FOP + pushFortranOutputStack(bndyFilename := aspFilename "bndy")$FOP + if bndyArg case fn + then outputAsFortran(bndyArg.fn) + else outputAsFortran(bndyArg.fp) + popFortranOutputStack()$FOP + [(invokeNagman([pdefFilename,bndyFilename]$Lisp,_ + "d03eef",_ + ["xmin"::S,"xmax"::S,"ymin"::S,"ymax"::S,"ngx"::S_ + ,"ngy"::S,"lda"::S,"scheme"::S,"ifail"::S,"pdef"::S_ + ,"bndy"::S,"a"::S,"rhs"::S]$Lisp,_ + ["a"::S,"rhs"::S,"pdef"::S,"bndy"::S]$Lisp,_ + [["double"::S,"xmin"::S,"xmax"::S,"ymin"::S_ + ,"ymax"::S,["a"::S,"lda"::S,7$Lisp]$Lisp,["rhs"::S,"lda"::S]$Lisp,"pdef"::S,"bndy"::S]$Lisp_ + ,["integer"::S,"ngx"::S,"ngy"::S,"lda"::S,"ifail"::S_ + ]$Lisp_ + ,["character"::S,"scheme"::S]$Lisp_ + ]$Lisp,_ + ["a"::S,"rhs"::S,"ifail"::S]$Lisp,_ + [([xminArg::Any,xmaxArg::Any,yminArg::Any,ymaxArg::Any,ngxArg::Any,ngyArg::Any,ldaArg::Any,schemeArg::Any,ifailArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + d03faf(xsArg:DoubleFloat,xfArg:DoubleFloat,lArg:Integer,_ + lbdcndArg:Integer,bdxsArg:Matrix DoubleFloat,bdxfArg:Matrix DoubleFloat,_ + ysArg:DoubleFloat,yfArg:DoubleFloat,mArg:Integer,_ + mbdcndArg:Integer,bdysArg:Matrix DoubleFloat,bdyfArg:Matrix DoubleFloat,_ + zsArg:DoubleFloat,zfArg:DoubleFloat,nArg:Integer,_ + nbdcndArg:Integer,bdzsArg:Matrix DoubleFloat,bdzfArg:Matrix DoubleFloat,_ + lambdaArg:DoubleFloat,ldimfArg:Integer,mdimfArg:Integer,_ + lwrkArg:Integer,fArg:ThreeDimensionalMatrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "d03faf",_ + ["xs"::S,"xf"::S,"l"::S,"lbdcnd"::S,"ys"::S_ + ,"yf"::S,"m"::S,"mbdcnd"::S,"zs"::S,"zf"::S_ + ,"n"::S,"nbdcnd"::S,"lambda"::S,"ldimf"::S,"mdimf"::S_ + ,"lwrk"::S,"pertrb"::S,"ifail"::S,"bdxs"::S,"bdxf"::S,"bdys"::S,"bdyf"::S,"bdzs"::S_ + ,"bdzf"::S,"f"::S,"w"::S]$Lisp,_ + ["pertrb"::S,"w"::S]$Lisp,_ + [["double"::S,"xs"::S,"xf"::S,["bdxs"::S,"mdimf"::S,["+"::S,"n"::S,1$Lisp]$Lisp]$Lisp_ + ,["bdxf"::S,"mdimf"::S,["+"::S,"n"::S,1$Lisp]$Lisp]$Lisp,"ys"::S,"yf"::S,["bdys"::S,"ldimf"::S,["+"::S,"n"::S,1$Lisp]$Lisp]$Lisp_ + ,["bdyf"::S,"ldimf"::S,["+"::S,"n"::S,1$Lisp]$Lisp]$Lisp,"zs"::S_ + ,"zf"::S,["bdzs"::S,"ldimf"::S,["+"::S,"m"::S,1$Lisp]$Lisp]$Lisp,["bdzf"::S,"ldimf"::S,["+"::S,"m"::S,1$Lisp]$Lisp]$Lisp_ + ,"lambda"::S,"pertrb"::S,["f"::S,"ldimf"::S,"mdimf"::S,["+"::S,"n"::S,1$Lisp]$Lisp]$Lisp,["w"::S,"lwrk"::S]$Lisp]$Lisp_ + ,["integer"::S,"l"::S,"lbdcnd"::S,"m"::S,"mbdcnd"::S_ + ,"n"::S,"nbdcnd"::S,"ldimf"::S,"mdimf"::S,"lwrk"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pertrb"::S,"f"::S,"ifail"::S]$Lisp,_ + [([xsArg::Any,xfArg::Any,lArg::Any,lbdcndArg::Any,ysArg::Any,yfArg::Any,mArg::Any,mbdcndArg::Any,zsArg::Any,zfArg::Any,nArg::Any,nbdcndArg::Any,lambdaArg::Any,ldimfArg::Any,mdimfArg::Any,lwrkArg::Any,ifailArg::Any,bdxsArg::Any,bdxfArg::Any,bdysArg::Any,bdyfArg::Any,bdzsArg::Any,bdzfArg::Any,fArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + +@ +\section{License} +<<license>>= +--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +--All rights reserved. +-- +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are +--met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@ +<<*>>= +<<license>> + +<<package NAGD03 NagPartialDifferentialEquationsPackage>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |