aboutsummaryrefslogtreecommitdiff
path: root/src/interp/nag-d03.boot.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/nag-d03.boot.pamphlet')
-rw-r--r--src/interp/nag-d03.boot.pamphlet661
1 files changed, 0 insertions, 661 deletions
diff --git a/src/interp/nag-d03.boot.pamphlet b/src/interp/nag-d03.boot.pamphlet
deleted file mode 100644
index 19717651..00000000
--- a/src/interp/nag-d03.boot.pamphlet
+++ /dev/null
@@ -1,661 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp nag-d03.boot}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\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>>
-
-d03edf() ==
- htInitPage('"D03EDF - Elliptic PDE, solution of finite difference equations by a multigrid technique ",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\windowlink{Manual Page}{manpageXXd03edf} for this routine ")
- (text . "\newline ")
- (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d03edf| '|NagPartialDifferentialEquationsPackage|)} for this routine")
- (text . "\newline \horizontalline ")
- (text . "\newline ")
- (text . "D03EDF solves, by multigrid iteration, the seven point scheme ")
- (text . "\newline \htbitmap{d03edf} \newline which arises from the ")
- (text . "discretization of an elliptic partial differential equation of ")
- (text . "the form \center{\htbitmap{d03edf1}} and its boundary conditions")
- (text . ", defined on a rectangular region. This we can write in matrix ")
- (text . "form as \newline \center{{\it Au =f}}")
- (text . "\blankline")
- (text . "\newline ")
- (text . "Read the input file to see the example program. ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\spadcommand{)read d03edf \bound{s0}} ")
- (text . "\blankline")
- (text . "\newline ")
- (text . "If you would like to enter a problem, ")
- (text . "how would you like to input the matrices? ")
- (radioButtons matrix
- ("" " By entering individual entries" long)
- ("" " By entering matrix names already defined on the command line" short)))
- htMakeDoneButton('"Continue", 'd03edfControl)
- htShowPage()
-
-d03edfControl(htPage) ==
- type := htpButtonValue(htPage,'matrix)
- if (type = 'long) then
- d03edfLong()
- else
- d03edfShort()
-
-d03edfLong() ==
- htInitPage('"D03EDF - Elliptic PDE, solution of finite difference equations by a multigrid technique ",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it x}-direction ")
- (text . "{\it ngx}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 3 ngx PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it y}-direction ")
- (text . "{\it ngy}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 3 ngy PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "First dimension of A, {\it lda}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 22 lda PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Maximum permitted number of multigrid iterations, {\it maxit}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 1 maxit PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Tolerance required, {\it acc}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "1.0e-4" acc F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Output of printed information for routine {\it iout}:")
- (radioButtons iout
- ("" " 0 - no output" zero)
- ("" " 1 - the solution \htbitmap{uij} {\it i} = 1,2,...,NGX; {\it j} = 1,2,...,NGY" one)
- ("" " 2 - residual 2-norm after each iteration " two)
- ("" " 3 - as for iout = 1 & iout = 2" three)
- ("" " 4 - as for iout = 3, plus the final residual" four)
- ("" " 5 - as for iout = 4, plus initial elements of A & RHS" five)
- ("" " 6 - as for iout = 5, plus Galerkin coarse grid approximations" six)
- ("" " 7 - as for iout = 6, plus the incomplete Crout decompositions" seven)
- ("" " 8 - as for iout = 7, plus the residual after each iteration" eight))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Ifail value:")
- (radioButtons ifail
- ("" " -1, Print error messages" ifail_minusOne)
- ("" " 1, Suppress error messages" ifail_one)))
- htMakeDoneButton('"Continue", 'd03edfSolve)
- htShowPage()
-
-
-d03edfSolve htPage ==
- ngx :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngx)
- objValUnwrap htpLabelSpadValue(htPage, 'ngx)
- ngy :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngy)
- objValUnwrap htpLabelSpadValue(htPage, 'ngy)
- lda :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lda)
- objValUnwrap htpLabelSpadValue(htPage, 'lda)
- maxit :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'maxit)
- objValUnwrap htpLabelSpadValue(htPage, 'maxit)
- acc := htpLabelInputString(htPage,'acc)
- control := htpButtonValue(htPage,'iout)
- iout :=
- control = 'zero => '0
- control = 'one => '1
- control = 'two => '2
- control = 'three => '3
- control = 'four => '4
- control = 'five => '5
- control = 'six => '6
- control = 'seven => '7
- '8
- error := htpButtonValue(htPage,'ifail)
- ifail :=
- error = 'ifail_one => '1
- '-1
- aList :=
- "append"/[fa(i) for i in 1..lda] where fa(i) ==
- labelList :=
- "append"/[fb(i,j) for j in 1..7] where fb(i,j) ==
- anam := INTERN STRCONC ('"a",STRINGIMAGE i,STRINGIMAGE j)
- [['bcStrings,[5, 0, anam, 'F]]]
- prefix := ('"\newline ")
- labelList := [['text,:prefix],:labelList]
- middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the matrix ")
- middle := STRCONC(middle,'"{\it rhs(lda)}: \newline ")
- rList :=
- "append"/[fc(i) for i in 1..lda] where fc(i) ==
- rnam := INTERN STRCONC ('"r",STRINGIMAGE i)
- [['bcStrings,[6, "0.0", rnam, 'F]]]
- rList := [['text,:middle],:rList]
- mid:= ('"\blankline \menuitemstyle{} \tab{2} Enter the matrix ")
- mid := STRCONC(mid,'" {\it ub(ngx*ngy)}: \newline ")
- uList :=
- "append"/[fd(i) for i in 1..(ngx*ngy)] where fd(i) ==
- unam := INTERN STRCONC ('"u",STRINGIMAGE i)
- [['bcStrings,[6, 0, unam, 'F]]]
- uList := [['text,:mid],:uList]
- equationPart := [
- '(domainConditions
- (isDomain EM $EmptyMode)
- (isDomain S (String))
- (isDomain F (Float))
- (isDomain I (Integer))),
- :aList,:rList,:uList]
- page := htInitPage('"D03EDF - Elliptic PDE, solution of finite difference equations by a multigrid technique ",nil)
- htSay '"\menuitemstyle{}\tab{2} "
- htSay '"Enter the matrix {\it a(lda,7)}: "
- htSay '"\newline "
- htMakePage equationPart
- htMakeDoneButton('"Continue",'d03edfLongGen)
- htpSetProperty(page,'ngx,ngx)
- htpSetProperty(page,'ngy,ngy)
- htpSetProperty(page,'lda,lda)
- htpSetProperty(page,'maxit,maxit)
- htpSetProperty(page,'acc,acc)
- htpSetProperty(page,'iout,iout)
- htpSetProperty(page,'ifail,ifail)
- htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
- htShowPage()
-
-d03edfLongGen htPage ==
- ngx := htpProperty(htPage, 'ngx)
- ngy := htpProperty(htPage, 'ngy)
- lda := htpProperty(htPage, 'lda)
- maxit := htpProperty(htPage, 'maxit)
- acc := htpProperty(htPage, 'acc)
- iout := htpProperty(htPage, 'iout)
- ifail := htpProperty(htPage, 'ifail)
- alist := htpInputAreaAlist htPage
- y := alist
- for i in 1..(ngx*ngy) repeat
- utemp := STRCONC((first y).1," ")
- uList := [utemp,:uList]
- y := rest y
- ustring := bcwords2liststring uList
- for i in 1..lda repeat
- rtemp := STRCONC((first y).1," ")
- rList := [rtemp,:rList]
- y := rest y
- rstring := bcwords2liststring rList
- for i in 1..lda repeat
- for j in 1..7 repeat
- v := STRCONC((first y).1," ")
- rowList := [v,:rowList]
- y := rest y
- vList := [:vList,rowList]
- rowList := []
- vList := reverse vList
- astring := bcwords2liststring [bcwords2liststring x for x in vList]
- prefix := STRCONC("d03edf(", STRINGIMAGE ngx,", ",STRINGIMAGE ngy,", ")
- prefix := STRCONC(prefix,STRINGIMAGE lda,", ",STRINGIMAGE maxit,", ",acc)
- mid := STRCONC(", ",STRINGIMAGE iout,", ",astring,"::Matrix DoubleFloat,[")
- mid := STRCONC(mid,rstring,"],[",ustring,"],",STRINGIMAGE ifail,")")
- linkGen STRCONC(prefix,mid)
-
-d03edfShort() ==
- htInitPage('"D03EDF - Elliptic PDE, solution of finite difference equations by a multigrid technique ",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it x}-direction ")
- (text . "\htbitmap{nx}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 0 ngx PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it y}-direction ")
- (text . "\htbitmap{ny}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 0 ngy PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "First dimension of A, {\it lda}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 0 lda PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Name of the array {\it a(lda,7)} defined on the command line: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "a" a EM))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Name of the array {\it rhs(lda)} defined on the command line: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "rhs" rhs EM))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Name of the array {\it ub(ngx*ngy)} defined on the command line:")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "ub" ub EM))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Maximum permitted number of multigrid iterations, {\it maxit}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 0 maxit PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Tolerance required, {\it acc}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "1.0e-4" acc F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Output of printed information for routine {\it iout}:")
- (radioButtons iout
- ("" " 0 - no output" zero)
- ("" " 1 - the solution \htbitmap{uij} {\it i} = 1,2,...,NGX; {\it j} = 1,2,...,NGY" one)
- ("" " 2 - residual 2-norm after each iteration " two)
- ("" " 3 - as for iout = 1 & iout = 2" three)
- ("" " 4 - as for iout = 3, plus the final residual" four)
- ("" " 5 - as for iout = 4, plus initial elements of A & RHS" five)
- ("" " 6 - as for iout = 5, plus Galerkin coarse grid approximations" six)
- ("" " 7 - as for iout = 6, plus the incomplete Crout decompositions" seven)
- ("" " 8 - as for iout = 7, plus the residual after each iteration" eight))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Ifail value:")
- (radioButtons ifail
- ("" " -1, Print error messages" ifail_minusOne)
- ("" " 1, Suppress error messages" ifail_one)))
- htMakeDoneButton('"Continue", 'd03edfShortGen)
- htShowPage()
-
-
-d03edfShortGen htPage ==
- ngx :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngx)
- objValUnwrap htpLabelSpadValue(htPage, 'ngx)
- ngy :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngy)
- objValUnwrap htpLabelSpadValue(htPage, 'ngy)
- lda :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lda)
- objValUnwrap htpLabelSpadValue(htPage, 'lda)
- maxit :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'maxit)
- objValUnwrap htpLabelSpadValue(htPage, 'maxit)
- a := htpLabelInputString(htPage, 'a)
- rhs := htpLabelInputString(htPage, 'rhs)
- ub := htpLabelInputString(htPage, 'ub)
- acc := htpLabelInputString(htPage,'acc)
- control := htpButtonValue(htPage,'iout)
- iout :=
- control = 'zero => '0
- control = 'one => '1
- control = 'two => '2
- control = 'three => '3
- control = 'four => '4
- control = 'five => '5
- control = 'six => '6
- control = 'seven => '7
- '8
- error := htpButtonValue(htPage,'ifail)
- ifail :=
- error = 'ifail_one => '1
- '-1
- prefix := STRCONC("d03edf(", STRINGIMAGE ngx,", ",STRINGIMAGE ngy,", ")
- prefix := STRCONC(prefix,STRINGIMAGE lda,", ",STRINGIMAGE maxit,", ",acc)
- mid := STRCONC(", ",STRINGIMAGE iout,", ",a,", ")
- mid := STRCONC(mid,rhs,", ",ub,", ",STRINGIMAGE ifail,")")
- linkGen STRCONC(prefix,mid)
-
-
-
-d03eef() ==
- htInitPage('"D03EEF - Discretize a 2nd order elliptic PDE on a rectangle",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\windowlink{Manual Page}{manpageXXd03eef} for this routine ")
- (text . "\newline ")
- (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d03eef| '|NagPartialDifferentialEquationsPackage|)} for this routine")
- (text . "\newline \horizontalline ")
- (text . "\newline ")
- (text . "D03EEF discretizes a second order linear elliptic partial ")
- (text . "differential equation of the form \center{\htbitmap{d03eef}} ")
- (text . "on a rectangular region \newline \tab{2} ")
- (text . "{\it x}a \htbitmap{less=} {\it x} \htbitmap{less=} {\it x}b ")
- (text . "\newline \tab{2} {\it y}a \htbitmap{less=} {\it y} ")
- (text . "\htbitmap{less=} {\it y}b \newline subject to the boundary ")
- (text . "conditions of the form \newline \htbitmap{d03eef1} \newline ")
- (text . "where {\it \delta U/ \delta n} denotes the outward pointing ")
- (text . "normal derivative on the boundary. The equation is said to be ")
- (text . "elliptic if \center{\htbitmap{d03eef2}} \newline for all points ")
- (text . "in the rectangular region. The seven-diagonal linear equations ")
- (text . "produced are in a form suitable for passing directly to the ")
- (text . "multigrid routine D03EDF. \blankline ")
- (text . "The equation is discretized on a rectangular grid, with ")
- (text . "\htbitmap{nx} grid points in the {\it x}-direction and ")
- (text . "\htbitmap{ny} grid points in the {\it y}-direction. "))
- htMakeDoneButton('"Continue", 'd03eefInput)
- htShowPage()
-
-d03eefInput() ==
- htInitPage('"D03EEF - Discretize a 2nd order elliptic PDE on a rectangle",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Enter the value {\it x}a, {\it xmin}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "0.0" xmin F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Enter the value {\it x}b, {\it xmax}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "1.0" xmax F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Enter the value {\it y}a, {\it ymin}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "0.0" ymin F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Enter the value {\it y}b, {\it ymax}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 "1.0" ymax F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it x}-direction ")
- (text . "{\it ngx}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 9 ngx PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Number of interior grid points in the {\it y}-direction ")
- (text . "{\it ngy}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 9 ngy PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "First dimension of A, {\it lda}: ")
- (text . "\newline\tab{2} ")
- (bcStrings (10 133 lda PI))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Which {\it scheme} would you like to use: ")
- (radioButtons scheme
- (" C" " central differences" cent)
- (" U" " upwind differences" up))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\newline Ifail value:")
- (radioButtons ifail
- ("" " -1, Print error messages" minusOne)
- ("" " 1, Suppress error messages" one)))
- htMakeDoneButton('"Continue", 'd03eefSolve)
- htShowPage()
-
-
-
-d03eefSolve htPage ==
- xmin := htpLabelInputString(htPage,'xmin)
- xmax := htpLabelInputString(htPage,'xmax)
- ymin := htpLabelInputString(htPage,'ymin)
- ymax := htpLabelInputString(htPage,'ymax)
- ngx :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngx)
- objValUnwrap htpLabelSpadValue(htPage, 'ngx)
- ngy :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ngy)
- objValUnwrap htpLabelSpadValue(htPage, 'ngy)
- lda :=
- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lda)
- objValUnwrap htpLabelSpadValue(htPage, 'lda)
- diff := htpButtonValue(htPage,'scheme)
- scheme :=
- diff = 'cent => '"C"
- '"U"
- error := htpButtonValue(htPage,'ifail)
- ifail :=
- error = 'one => '1
- '-1
- d03eefDefaultSolve(htPage,xmin,xmax,ymin,ymax,ngx,ngy,lda,scheme,ifail)
-
-d03eefDefaultSolve(htPage,xmin,xmax,ymin,ymax,ngx,ngy,lda,scheme,ifail) ==
- page := htInitPage('"D03EEF - Discretize a 2nd order elliptic PDE on a rectangle",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "Please enter the values of \alpha to \psi to construct PDEF.")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\alpha (x,y): \tab{10} ")
- (bcStrings (46 1 alpha F))
- (text . "\blankline ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\beta (x,y): \tab{10} ")
- (bcStrings (46 0 beta F))
- (text . "\blankline ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\gamma (x,y): \tab{10} ")
- (bcStrings (46 1 gamma F))
- (text . "\blankline ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\delta (x,y): \tab{10} ")
- (bcStrings (46 50 delta F))
- (text . "\blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\epsilon (x,y): \tab{10} ")
- (bcStrings (46 50 eps F))
- (text . "\blankline ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\phi (x,y): \tab{10} ")
- (bcStrings (46 0 phi F))
- (text . "\blankline ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\psi (x,y): \tab{10} ")
- (bcStrings (55 "-2*sin(X)*sin(Y) + 50*cos(X)*sin(Y) +50*sin(X)*cos(Y)" psi EM))
- (text . "\blankline ")
- (text . "Please enter the boundary conditions a(x,y), b(x,y), and c(x,y) ")
- (text . "for the top, bottom, left and right hand sides, to construct ")
- (text . "BNDY. \blankline")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Bottom boundary conditions: ")
- (text . "\newline a(x,y): \tab{10} ")
- (bcStrings (46 0 a11 F))
- (text . "\newline b(x,y): \tab{10} ")
- (bcStrings (46 1 a12 F))
- (text . "\newline c(x,y): \tab{10} ")
- (bcStrings (46 "-sin(X)" a13 EM))
- (text . "\blankline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Right boundary conditions: ")
- (text . "\newline a(x,y): \tab{10} ")
- (bcStrings (46 1 a21 F))
- (text . "\newline b(x,y): \tab{10} ")
- (bcStrings (46 0 a22 F))
- (text . "\newline c(x,y): \tab{10} ")
- (bcStrings (46 "sin(X)*sin(Y)" a23 EM))
- (text . "\blankline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Top boundary conditions: ")
- (text . "\newline a(x,y): \tab{10} ")
- (bcStrings (46 1 a31 F))
- (text . "\newline b(x,y): \tab{10} ")
- (bcStrings (46 0 a32 F))
- (text . "\newline c(x,y): \tab{10} ")
- (bcStrings (46 "sin(X)*sin(Y)" a33 EM))
- (text . "\blankline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "Left boundary conditions: ")
- (text . "\newline a(x,y): \tab{10} ")
- (bcStrings (46 0 a41 F))
- (text . "\newline b(x,y): \tab{10} ")
- (bcStrings (46 1 a42 F))
- (text . "\newline c(x,y): \tab{10} ")
- (bcStrings (46 "-sin(Y)" a43 EM)))
- htMakeDoneButton('"Continue",'d03eefGen)
- htpSetProperty(page,'xmin,xmin)
- htpSetProperty(page,'xmax,xmax)
- htpSetProperty(page,'ymin,ymin)
- htpSetProperty(page,'ymax,ymax)
- htpSetProperty(page,'ngx,ngx)
- htpSetProperty(page,'ngy,ngy)
- htpSetProperty(page,'lda,lda)
- htpSetProperty(page,'scheme,scheme)
- htpSetProperty(page,'ifail,ifail)
- htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
- htShowPage()
-
-d03eefGen htPage ==
- xmin := htpProperty(htPage, 'xmin)
- xmax := htpProperty(htPage, 'xmax)
- ymin := htpProperty(htPage, 'ymin)
- ymax := htpProperty(htPage, 'ymax)
- ngx := htpProperty(htPage, 'ngx)
- ngy := htpProperty(htPage, 'ngy)
- lda := htpProperty(htPage, 'lda)
- scheme := htpProperty(htPage, 'scheme)
- ifail := htpProperty(htPage, 'ifail)
- alist := htpInputAreaAlist htPage
- y := alist
- for i in 1..4 repeat
- for j in 1..3 repeat
- v := STRCONC((first y).1," ")
- rowList := [v,:rowList]
- y := rest y
- vList := [:vList,rowList]
- rowList := []
- vList := reverse vList
- astring := bcwords2liststring [bcwords2liststring x for x in vList]
- for i in 1..7 repeat
- utemp := STRCONC((first y).1," ")
- uList := [utemp,:uList]
- y := rest y
- ustring := bcwords2liststring uList
- prefix := STRCONC("d03eef(",xmin,", ",xmax,", ",ymin,", ",ymax,", ")
- prefix := STRCONC(prefix,STRINGIMAGE ngx,", ",STRINGIMAGE ngy,", ")
- prefix := STRCONC(prefix,STRINGIMAGE lda,",_"",scheme,"_", ")
- prefix := STRCONC(prefix,STRINGIMAGE ifail,", (",ustring)
- prefix := STRCONC(prefix,"::Vector Expression Float)::ASP73('PDEF),(")
- prefix := STRCONC(prefix,astring,"::Matrix Expression Float)::ASP74('BNDY))")
- linkGen prefix
-
-d03faf() ==
- htInitPage('"D03FAF - Elliptic PDE, Helmholtz equation, 3-D Cartesian co-ordinates",nil)
- htMakePage '(
- (domainConditions
- (isDomain EM $EmptyMode)
- (isDomain F (Float)))
- (text . "\windowlink{Manual Page}{manpageXXd03faf} for this routine ")
- (text . "\newline ")
- (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d03faf| '|NagPartialDifferentialEquationsPackage|)} for this routine")
- (text . "\newline \horizontalline ")
- (text . "\newline ")
- (text . "D03FAF solves the three-dimensional Helmholtz equation ")
- (text . "in cartesian co-ordinates: \center{\htbitmap{d03faf}} \newline ")
- (text . "This subroutine forms the system of linear equations resulting ")
- (text . "fom the standard seven-point finite difference equations, ")
- (text . "and then solves the system using a method based on the fast ")
- (text . "Fourier transform (FFT) described by Swartztrauber. ")
- (text . "\blankline")
- (text . "\newline ")
- (text . "Read the input file to see the example program. ")
- (text . "\newline ")
- (text . "\menuitemstyle{}\tab{2} ")
- (text . "\spadcommand{)read d03faf \bound{s0}} "))
- htShowPage()
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}