aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/d03routine.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/d03routine.spad.pamphlet
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/algebra/d03routine.spad.pamphlet')
-rw-r--r--src/algebra/d03routine.spad.pamphlet164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/algebra/d03routine.spad.pamphlet b/src/algebra/d03routine.spad.pamphlet
new file mode 100644
index 00000000..cd7a10c8
--- /dev/null
+++ b/src/algebra/d03routine.spad.pamphlet
@@ -0,0 +1,164 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/algebra d03routine.spad}
+\author{Brian Dupee}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{domain D03EEFA d03eefAnnaType}
+<<domain D03EEFA d03eefAnnaType>>=
+)abbrev domain D03EEFA d03eefAnnaType
+++ Author: Brian Dupee
+++ Date Created: June 1996
+++ Date Last Updated: June 1996
+++ Basic Operations:
+++ Description:
+++ \axiomType{d03eefAnnaType} is a domain of
+++ \axiomType{PartialDifferentialEquationsSolverCategory}
+++ for the NAG routines D03EEF/D03EDF.
+d03eefAnnaType():PartialDifferentialEquationsSolverCategory == Result add -- 2D Elliptic PDE
+ LEDF ==> List Expression DoubleFloat
+ EDF ==> Expression DoubleFloat
+ LDF ==> List DoubleFloat
+ MDF ==> Matrix DoubleFloat
+ DF ==> DoubleFloat
+ F ==> Float
+ FI ==> Fraction Integer
+ VEF ==> Vector Expression Float
+ EF ==> Expression Float
+ MEF ==> Matrix Expression Float
+ NNI ==> NonNegativeInteger
+ INT ==> Integer
+ PDEC ==> Record(start:DF, finish:DF, grid:NNI, boundaryType:INT,
+ dStart:MDF, dFinish:MDF)
+ PDEB ==> Record(pde:LEDF, constraints:List PDEC,
+ f:List LEDF, st:String, tol:DF)
+
+ import d03AgentsPackage, NagPartialDifferentialEquationsPackage
+ import ExpertSystemToolsPackage
+
+ measure(R:RoutinesTable,args:PDEB) ==
+ (# (args.constraints) > 2)@Boolean =>
+ [0$F,"d03eef/d03edf is unsuitable for PDEs of order more than 2"]
+ elliptic?(args) =>
+ m := getMeasure(R,d03eef :: Symbol)$RoutinesTable
+ [m,"d03eef/d03edf is suitable"]
+ [0$F,"d03eef/d03edf is unsuitable for hyperbolic or parabolic PDEs"]
+
+ PDESolve(args:PDEB) ==
+ xcon := first(args.constraints)
+ ycon := second(args.constraints)
+ nx := xcon.grid
+ ny := ycon.grid
+ p := args.pde
+ x1 := xcon.start
+ x2 := xcon.finish
+ y1 := ycon.start
+ y2 := ycon.finish
+ lda := ((4*(nx+1)*(ny+1)+2) quo 3)$INT
+ scheme:String :=
+ central?((x2-x1)/2,(y2-y1)/2,args.pde) => "C"
+ "U"
+ asp73:Union(fn:FileName,fp:Asp73(PDEF)) :=
+ [retract(vector([edf2ef u for u in p])$VEF)$Asp73(PDEF)]
+ asp74:Union(fn:FileName,fp:Asp74(BNDY)) :=
+ [retract(matrix([[edf2ef v for v in w] for w in args.f])$MEF)$Asp74(BNDY)]
+ fde := d03eef(x1,x2,y1,y2,nx,ny,lda,scheme,-1,asp73,asp74)
+ ub := new(1,nx*ny,0$DF)$MDF
+ A := search(a::Symbol,fde)$Result
+ A case "failed" => empty()$Result
+ AA := A::Any
+ fdea := retract(AA)$AnyFunctions1(MDF)
+ r := search(rhs::Symbol,fde)$Result
+ r case "failed" => empty()$Result
+ rh := r::Any
+ fderhs := retract(rh)$AnyFunctions1(MDF)
+ d03edf(nx,ny,lda,15,args.tol,0,fdea,fderhs,ub,-1)
+
+@
+\section{domain D03FAFA d03fafAnnaType}
+<<domain D03FAFA d03fafAnnaType>>=
+)abbrev domain D03FAFA d03fafAnnaType
+++ Author: Brian Dupee
+++ Date Created: July 1996
+++ Date Last Updated: July 1996
+++ Basic Operations:
+++ Description:
+++ \axiomType{d03fafAnnaType} is a domain of
+++ \axiomType{PartialDifferentialEquationsSolverCategory}
+++ for the NAG routine D03FAF.
+d03fafAnnaType():PartialDifferentialEquationsSolverCategory == Result add -- 3D Helmholtz PDE
+ LEDF ==> List Expression DoubleFloat
+ EDF ==> Expression DoubleFloat
+ LDF ==> List DoubleFloat
+ MDF ==> Matrix DoubleFloat
+ DF ==> DoubleFloat
+ F ==> Float
+ FI ==> Fraction Integer
+ VEF ==> Vector Expression Float
+ EF ==> Expression Float
+ MEF ==> Matrix Expression Float
+ NNI ==> NonNegativeInteger
+ INT ==> Integer
+ PDEC ==> Record(start:DF, finish:DF, grid:NNI, boundaryType:INT,
+ dStart:MDF, dFinish:MDF)
+ PDEB ==> Record(pde:LEDF, constraints:List PDEC,
+ f:List LEDF, st:String, tol:DF)
+
+ import d03AgentsPackage, NagPartialDifferentialEquationsPackage
+ import ExpertSystemToolsPackage
+
+ measure(R:RoutinesTable,args:PDEB) ==
+ (# (args.constraints) < 3)@Boolean =>
+ [0$F,"d03faf is unsuitable for PDEs of order other than 3"]
+ [0$F,"d03faf isn't finished"]
+
+@
+\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>>
+
+<<domain D03EEFA d03eefAnnaType>>
+<<domain D03FAFA d03fafAnnaType>>
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}