/[escript]/trunk/doc/user/linearPDE.tex
ViewVC logotype

Annotation of /trunk/doc/user/linearPDE.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 660 - (hide annotations)
Fri Mar 24 08:43:21 2006 UTC (14 years ago) by gross
File MIME type: application/x-tex
File size: 22132 byte(s)
that does not look to bad now although more stuff could be added.
1 jgs 102 % $Id$
2 gross 625 %
3     % Copyright © 2006 by ACcESS MNRF
4     % \url{http://www.access.edu.au
5     % Primary Business: Queensland, Australia.
6     % Licensed under the Open Software License version 3.0
7     % http://www.opensource.org/licenses/osl-3.0.php
8     %
9 jgs 102
10 gross 625
11 gross 599 \chapter{The module \linearPDEs}
12 jgs 102
13     \declaremodule{extension}{linearPDEs} \modulesynopsis{Linear partial pifferential equation handler}
14 gross 660 The module \linearPDEs provides an interface to define and solve linear partial
15     differential equations within \escript. \linearPDEs does not provide any
16     solver capabilities in itself but hands the PDE over to
17 jgs 102 the PDE solver library defined through the \Domain of the PDE.
18     The general interface is provided through the \LinearPDE class. The
19     \AdvectivePDE which is derived from the \LinearPDE class
20     provides an interface to PDE dominated by its advective terms. The \Poisson
21     class which is also derived form the \LinearPDE class should be used
22 gross 660 to define the Poisson equation \index{Poisson}.
23 jgs 102
24     \section{\LinearPDE Class}
25     \label{SEC LinearPDE}
26    
27     The \LinearPDE class is used to define a general linear, steady, second order PDE
28     for an unknown function $u$ on a given $\Omega$ defined through a \Domain object.
29     In the following $\Gamma$ denotes the boundary of the domain $\Omega$. $n$ denotes
30 gross 660 the outer normal field on $\Gamma$.
31 jgs 102
32 gross 660 For a single PDE with a solution with a single component the linear PDE is defined in the
33 jgs 102 following form:
34     \begin{equation}\label{LINEARPDE.SINGLE.1}
35 gross 660 -(A\hackscore{jl} u\hackscore{,l})\hackscore{,j}-(B\hackscore{j} u)\hackscore{,j}+C\hackscore{l} u\hackscore{,l}+D u =-X\hackscore{j,j}+Y \; .
36 jgs 102 \end{equation}
37 gross 660 $u_{,j}$ denotes the derivative of $u$ with respect to the $j$-th spatial direction. Einstein's summation convention, ie. summation over indexes appearing twice in a term of a sum is performed, is used.
38     The coefficients $A$, $B$, $C$, $D$, $X$ and $Y$ have to be specified through \Data objects in the
39     \Function on the PDE or objects that can be converted into such \Data objects.
40     $A$ is a \RankTwo, $B$, $C$ and $X$ are \RankOne and $D$ and $Y$ are scalar.
41 jgs 102 The following natural
42     boundary conditions are considered \index{boundary condition!natural} on $\Gamma$:
43     \begin{equation}\label{LINEARPDE.SINGLE.2}
44     n\hackscore{j}(A\hackscore{jl} u\hackscore{,l}+B\hackscore{j} u)+d u=n\hackscore{j}X\hackscore{j} + y \;.
45     \end{equation}
46 gross 660 Notice that the coefficients $A$, $B$ and $X$ are defined in the PDE. The coefficients $d$ and $y$ are
47     each a \Scalar in the \FunctionOnBoundary. Constraints \index{constraint} for the solution prescribing the value of the
48 jgs 102 solution at certain locations in the domain. They have the form
49     \begin{equation}\label{LINEARPDE.SINGLE.3}
50     u=r \mbox{ where } q>0
51     \end{equation}
52     $r$ and $q$ are each \Scalar where $q$ is the characteristic function
53     \index{characteristic function} defining where the constraint is applied.
54     The constraints defined by \eqn{LINEARPDE.SINGLE.3} override any other condition set by \eqn{LINEARPDE.SINGLE.1}
55 gross 660 or \eqn{LINEARPDE.SINGLE.2}.
56 gross 625
57 jgs 102 For a system of PDEs and a solution with several components the PDE has the form
58     \begin{equation}\label{LINEARPDE.SYSTEM.1}
59 gross 660 -(A\hackscore{ijkl} u\hackscore{k,l})\hackscore{,j}-(B\hackscore{ijk} u\hackscore{k})\hackscore{,j}+C\hackscore{ikl} u\hackscore{k,l}+D\hackscore{ik} u\hackscore{k} =-X\hackscore{ij,j}+Y\hackscore{i} \; .
60 jgs 102 \end{equation}
61 gross 660 $A$ is a \RankFour, $B$ and $C$ are each a \RankThree, $D$ and $X$ are each a \RankTwo and $Y$ is a \RankOne.
62 jgs 102 The natural boundary conditions \index{boundary condition!natural} take the form:
63     \begin{equation}\label{LINEARPDE.SYSTEM.2}
64 gross 625 n\hackscore{j}(A\hackscore{ijkl} u\hackscore{k,l}+B\hackscore{ijk} u\hackscore{k})+d\hackscore{ik} u\hackscore{k}=n\hackscore{j}X\hackscore{ij}+y\hackscore{i} \;.
65 jgs 102 \end{equation}
66 gross 660 The coefficient $d$ is a \RankTwo and $y$ is a
67 jgs 102 \RankOne both in the \FunctionOnBoundary. Constraints \index{constraint} take the form
68     \begin{equation}\label{LINEARPDE.SYSTEM.3}
69     u\hackscore{i}=r\hackscore{i} \mbox{ where } q\hackscore{i}>0
70     \end{equation}
71 gross 660 $r$ and $q$ are each \RankOne. Notice that not necessarily all components must
72 gross 625 have a constraint at all locations.
73    
74 jgs 102 \LinearPDE also supports solution discontinuities \index{discontinuity} over contact region $\Gamma^{contact}$
75     in the domain $\Omega$. To specify the conditions across the discontinuity we are using the
76     generalised flux $J$ which is in the case of a systems of PDEs and several components of the solution
77 gross 660 defined as
78 jgs 102 \begin{equation}\label{LINEARPDE.SYSTEM.5}
79     J\hackscore{ij}=A\hackscore{ijkl}u\hackscore{k,l}+B\hackscore{ijk}u\hackscore{k}-X\hackscore{ij}
80     \end{equation}
81     For the case of single solution component and single PDE $J$ is defined
82     \begin{equation}\label{LINEARPDE.SINGLE.5}
83     J\hackscore{j}=A\hackscore{jl}u\hackscore{,l}+B\hackscore{j}u\hackscore{k}-X\hackscore{j}
84     \end{equation}
85 gross 660 In the context of discontinuities \index{discontinuity} $n$ denotes the normal on the
86 jgs 102 discontinuity pointing from side 0 towards side 1. For a system of PDEs
87     the contact condition takes the form
88     \begin{equation}\label{LINEARPDE.SYSTEM.6}
89     n\hackscore{j} J^{0}\hackscore{ij}=n\hackscore{j} J^{1}\hackscore{ij}=y^{contact}\hackscore{i} - d^{contact}\hackscore{ik} [u]\hackscore{k} \; .
90     \end{equation}
91     where $J^{0}$ and $J^{1}$ are the fluxes on side $0$ and side $1$ of the
92     discontinuity $\Gamma^{contact}$, respectively. $[u]$, which is the difference
93     of the solution at side 1 and at side 0, denotes the jump of $u$ across $\Gamma^{contact}$.
94 gross 660 The coefficient $d^{contact}$ is a \RankTwo and $y^{contact}$ is a
95 jgs 102 \RankOne both in the \FunctionOnContactZero or \FunctionOnContactOne.
96     In case of a single PDE and a single component solution the contact condition takes the form
97     \begin{equation}\label{LINEARPDE.SINGLE.6}
98     n\hackscore{j} J^{0}\hackscore{j}=n\hackscore{j} J^{1}\hackscore{j}=y^{contact} - d^{contact}[u]
99     \end{equation}
100     In this case the the coefficient $d^{contact}$ and $y^{contact}$ are eaach \Scalar
101     both in the \FunctionOnContactZero or \FunctionOnContactOne.
102 gross 625
103     The PDE is symmetrical \index{symmetrical} if
104     \begin{equation}\label{LINEARPDE.SINGLE.4}
105     A\hackscore{jl}=A\hackscore{lj} \mbox{ and } B\hackscore{j}=C\hackscore{j}
106     \end{equation}
107     The system of PDEs is symmetrical \index{symmetrical} if
108     \begin{eqnarray}
109     \label{LINEARPDE.SYSTEM.4}
110     A\hackscore{ijkl}=A\hackscore{klij} \\
111     B\hackscore{ijk}=C\hackscore{kij} \\
112     D\hackscore{ik}=D\hackscore{ki} \\
113     d\hackscore{ik}=d\hackscore{ki} \\
114 gross 660 d^{contact}\hackscore{ik}=d^{contact}\hackscore{ki}
115 gross 625 \end{eqnarray}
116     Note that different from the scalar case~\eqn{LINEARPDE.SINGLE.4} now the coefficients $D$, $d$ abd $d^{contact}$
117     have to be inspected.
118    
119     \section{\LinearPDE class}
120 gross 660 This is the general class to define a linear PDE in \escript. We list a selction of the most
121 gross 625 important methods of the class only and refer to reference guide \ReferenceGuide for a complete list.
122    
123 jgs 102 \begin{classdesc}{LinearPDE}{domain,numEquations=0,numSolutions=0}
124     opens a linear, steady, second order PDE on the \Domain \var{domain}. \var{numEquations}
125     and \var{numSolutions} gives the number of equations and the number of solutiopn components.
126 gross 660 If \var{numEquations} and \var{numSolutions} is non-positive, the number of equations
127 jgs 102 and the number solutions, respctively, stay undefined until a coefficient is
128 gross 660 defined.
129 jgs 102 \end{classdesc}
130    
131 gross 625 \begin{methoddesc}[LinearPDE]{setValue}{
132 gross 660 \optional{A}\optional{, B},
133     \optional{, C}\optional{, D}
134     \optional{, X}\optional{, Y}
135     \optional{, d}\optional{, y}
136     \optional{, d_contact}\optional{, y_contact}
137     \optional{, q}\optional{, r}}
138     assigns new values to coefficients. By dafault all values are assumed to be zero\footnote{
139     In fact it is assumed they are not present by assigning the value \code{escript.Data()}. The
140     can by used by the solver library to reduce computational costs.
141     }
142 gross 625 If the new coefficient value is not a \Data object, it is converted into a \Data object in the
143 jgs 102 appropriate \FunctionSpace.
144     \end{methoddesc}
145    
146     \begin{methoddesc}[LinearPDE]{getCoefficient}{name}
147 gross 660 return the value assigned to coefficient \var{name}. If \var{name} is not a valid name
148     an exception is raised.
149 jgs 102 \end{methoddesc}
150    
151     \begin{methoddesc}[LinearPDE]{getShapeOfCoefficient}{name}
152     returns the shape of coefficient \var{name} even if no value has been assigned to it.
153     \end{methoddesc}
154    
155 gross 625 \begin{methoddesc}[LinearPDE]{getFunctionSpaceForCoefficient}{name}
156 jgs 102 returns the \FunctionSpace of coefficient \var{name} even if no value has been assigned to it.
157     \end{methoddesc}
158    
159     \begin{methoddesc}[LinearPDE]{setDebugOn}{}
160     switches the debug mode to on.
161     \end{methoddesc}
162    
163     \begin{methoddesc}[LinearPDE]{setDebugOff}{}
164     switches the debug mode to on.
165     \end{methoddesc}
166    
167 gross 625 \begin{methoddesc}[LinearPDE]{isUsingLumping}{}
168 gross 653 returns \True if \LUMPING is set as the solver for the system of lienar equations.
169     Otherwise \False is returned.
170 jgs 102 \end{methoddesc}
171    
172 gross 653 \begin{methoddesc}[LinearPDE]{setSolverMethod}{\optional{solver=LinearPDE.DEFAULT}\optional{, preconditioner=LinearPDE.DEFAULT}}
173 gross 625 sets the solver method and preconditioner to be used. It is pointed out that a PDE solver library
174 gross 660 may not know the specified solver method but may choose a similar method and preconditioner.
175 jgs 102 \end{methoddesc}
176    
177 gross 653 \begin{methoddesc}[LinearPDE]{getSolverMethodName}{}
178     returns the name of the solver method and preconditioner which is currently been used.
179     \end{methoddesc}
180    
181     \begin{methoddesc}[LinearPDE]{getSolverMethod}{}
182     returns the solver method and preconditioner which is currently been used.
183     \end{methoddesc}
184    
185     \begin{methoddesc}[LinearPDE]{setSolverPackage}{\optional{package=LinearPDE.DEFAULT}}
186 gross 660 Set the solver package to be used by PDE library to solve the linear systems of equations. The
187 gross 653 specified package may not be supported by the PDE solver library. In this case, dependng on
188     the PDE solver, the default solver is used or an exeption is thrown.
189 gross 660 If \var{package} is not specified, the default package of the PDE solver library is used.
190 gross 653 \end{methoddesc}
191    
192     \begin{methoddesc}[LinearPDE]{getSolverPackage}{}
193     returns the linear solver package currently by the PDE solver library
194     \end{methoddesc}
195    
196    
197 gross 625 \begin{methoddesc}[LinearPDE]{setTolerance}{\optional{tol=1.e-8}}:
198     resets the tolerance for solution. The actually meaning of tolerance is
199 gross 660 depending on the underlying PDE library. In most cases, the tolerance
200 gross 625 will only consider the error from solving the discerete problem but will
201     not consider any discretization error.
202     \end{methoddesc}
203 jgs 102
204 gross 625 \begin{methoddesc}[LinearPDE]{getTolerance}{}
205     returns the current tolerance of the solution
206 jgs 102 \end{methoddesc}
207    
208 gross 625 \begin{methoddesc}[LinearPDE]{getDomain}{}
209     returns the \Domain of the PDE.
210 jgs 102 \end{methoddesc}
211    
212 gross 625 \begin{methoddesc}[LinearPDE]{getDim}{}
213     returns the spatial dimension of the PDE.
214 jgs 102 \end{methoddesc}
215    
216 gross 625 \begin{methoddesc}[LinearPDE]{getNumEquations}{}
217     returns the number of equations.
218     \end{methoddesc}
219 jgs 102
220 gross 625 \begin{methoddesc}[LinearPDE]{getNumSolutions}{}
221     returns the number of components of the solution.
222 jgs 102 \end{methoddesc}
223    
224 gross 625 \begin{methoddesc}[LinearPDE]{checkSymmetry}{verbose=\False}
225 gross 660 returns \True if the PDE is symmetric and \False otherwise.
226     The method is very computational expensive and should only be
227 gross 625 called for testing purposes. The symmetry flag is not altered.
228     If \var{verbose}=\True information about where symmetry is violated
229     are printed.
230 jgs 102 \end{methoddesc}
231    
232 gross 625 \begin{methoddesc}[LinearPDE]{getFlux}{u}
233     returns the flux $J\hackscore{ij}$ \index{flux} for given solution \var{u}
234     defined by \eqn{LINEARPDE.SYSTEM.5} and \eqn{LINEARPDE.SINGLE.5}, respectively.
235 jgs 102 \end{methoddesc}
236    
237 gross 625
238 jgs 102 \begin{methoddesc}[LinearPDE]{isSymmetric}{}
239     returns \True if the PDE has been indicated to be symmetric.
240     Otherwise \False is returned.
241     \end{methoddesc}
242    
243     \begin{methoddesc}[LinearPDE]{setSymmetryOn}{}
244     indicates that the PDE is symmetric.
245     \end{methoddesc}
246    
247     \begin{methoddesc}[LinearPDE]{setSymmetryOff}{}
248     indicates that the PDE is not symmetric.
249     \end{methoddesc}
250    
251     \begin{methoddesc}[LinearPDE]{setReducedOrderOn}{}
252 gross 660 switches on the reduction of polynomial order for the solution and equation evaluation even if
253     a quadratic or higher interpolation order is defined in the \Domain. This feature may not
254 gross 625 be supported by all PDE libraries.
255 jgs 102 \end{methoddesc}
256    
257     \begin{methoddesc}[LinearPDE]{setReducedOrderOff}{}
258 gross 660 switches off the reduction of polynomial order for the solution and
259 jgs 102 equation evaluation.
260     \end{methoddesc}
261    
262     \begin{methoddesc}[LinearPDE]{getOperator}{}
263     returns the \Operator of the PDE.
264     \end{methoddesc}
265    
266 gross 625 \begin{methoddesc}[LinearPDE]{getRightHandSide}{}
267 jgs 102 returns the right hand side of the PDE as a \Data object. If
268     \var{ignoreConstraint}=\True the constraints are not considered
269     when building up the right hand side.
270     \end{methoddesc}
271    
272     \begin{methoddesc}[LinearPDE]{getSystem}{}
273     returns the \Operator and right hand side of the PDE.
274     \end{methoddesc}
275    
276 gross 625 \begin{methoddesc}[LinearPDE]{getSolution}{
277     \optional{verbose=False}
278     \optional{, reordering=LinearPDE.NO_REORDERING}
279     \optional{, iter_max=1000}
280     \optional{, drop_tolerance=0.01}
281     \optional{, drop_storage=1.20}
282     \optional{, truncation=-1}
283     \optional{, restart=-1}
284     }
285 gross 653 returns (an approximation of) the solution of the PDE. If \code{verbose=\True} some information during the solution process printed.
286 gross 660 \var{reordering} selects a reordering methods that is applied before or during the solution process
287 gross 653 (=\NOREORDERING ,\MINIMUMFILLIN ,\NESTEDDESCTION).
288 gross 660 \var{iter_max} specifies the maximum number of iteration steps that are allowed to reach the specified tolerance.
289 gross 625 \var{drop_tolerance} specifies a relative tolerance for small elements to be dropped when building a preconditioner
290 gross 653 (eg. in \ILUT). \var{drop_storage} limits the extra storage allowed when building a preconditioner
291 gross 660 (eg. in \ILUT). The extra storage is given relative to the size of the stiffness matrix, eg.
292     \var{drop_storage=1.2} will allow the preconditioner to use the $1.2$ fold storage space than used
293     for the stiffness matrix. \var{truncation} defines the truncation.
294 jgs 102 \end{methoddesc}
295    
296 gross 625 \begin{memberdesc}[LinearPDE]{DEFAULT}
297 gross 660 default method, preconditioner or package to be used to solve the PDE. An appropriate method should be
298 gross 625 chosen by the used PDE solver library.
299     \end{memberdesc}
300 jgs 102
301 gross 625 \begin{memberdesc}[LinearPDE]{SCSL}
302 gross 660 the SCSL library by SGI,~\Ref{SCSL}\footnote{The SCSL library will only be available on SGI systems}
303 gross 625 \end{memberdesc}
304 jgs 102
305 gross 625 \begin{memberdesc}[LinearPDE]{MKL}
306 gross 653 the MKL library by Intel,~\Ref{MKL}\footnote{The MKL library will only be available when the intel compilation environment is used.}.
307 gross 625 \end{memberdesc}
308 jgs 102
309 gross 625 \begin{memberdesc}[LinearPDE]{UMFPACK}
310 gross 653 the UMFPACK,~\Ref{UMFPACK}. Remark: UMFPACK is not parallelized.
311 gross 625 \end{memberdesc}
312 jgs 102
313 gross 625 \begin{memberdesc}[LinearPDE]{PASO}
314 gross 653 the solver library of \finley, see \Sec{CHAPTER ON FINLEY}.
315 gross 625 \end{memberdesc}
316 jgs 102
317 gross 625 \begin{memberdesc}[LinearPDE]{ITERATIVE}
318 gross 653 the default iterative method and preconditioner. The actually used method depends on the
319 gross 660 PDE solver library and the solver package been choosen. Typically, \PCG is used for symmetric PDEs
320     and \BiCGStab otherwise, both with \JACOBI preconditioner.
321 gross 625 \end{memberdesc}
322 jgs 102
323 gross 625 \begin{memberdesc}[LinearPDE]{DIRECT}
324 gross 660 the default direct linear solver.
325 gross 625 \end{memberdesc}
326 jgs 102
327 gross 625 \begin{memberdesc}[LinearPDE]{CHOLEVSKY}
328 gross 660 direct solver based on Cholevsky factorization (or similar), see~\Ref{Saad}. The solver will require a symmetric PDE.
329 gross 625 \end{memberdesc}
330 jgs 110
331 gross 625 \begin{memberdesc}[LinearPDE]{PCG}
332 gross 653 preconditioned conjugate gradient method, see~\Ref{WEISS}\index{linear solver!PCG}\index{PCG}. The solver will require a symmetric PDE.
333 gross 625 \end{memberdesc}
334 jgs 110
335 gross 625 \begin{memberdesc}[LinearPDE]{GMRES}
336 gross 653 the GMRES method, see~\Ref{WEISS}\index{linear solver!GMRES}\index{GMRES}. Truncation and restart are controlled by the parameters
337 gross 625 \var{truncation} and \var{restart} of \method{getSolution}.
338     \end{memberdesc}
339 jgs 102
340 gross 625 \begin{memberdesc}[LinearPDE]{LUMPING}
341 gross 660 uses lumping to solve the system of linear equations~\index{linear solver!lumping}\index{lumping}. This solver technique
342     condenses the stiffness matrix to a diagonal matrix so the solution of the linear systems becomes very cheap. It can be used when
343 gross 653 only \var{D} is present but in any case has to applied with care. The difference in the solutions with and without lumping can be significant
344 gross 660 but is expect to converge to zero when the mesh gets finer.
345     Lumping does not use the linear system solver library.
346 gross 625 \end{memberdesc}
347 jgs 107
348 gross 625 \begin{memberdesc}[LinearPDE]{PRES20}
349 gross 653 the GMRES method with truncation after five residuals and
350 gross 625 restart after 20 steps, see~\Ref{WEISS}.
351 gross 653 \end{memberdesc}[LinearPDE]{CR}
352 gross 625
353     \begin{memberdesc}[LinearPDE]{CGS}
354     conjugate gradient squared method, see~\Ref{WEISS}.
355 jgs 107 \end{memberdesc}
356    
357 gross 625 \begin{memberdesc}[LinearPDE]{BICGSTAB}
358 gross 660 stabilized bi-conjugate gradients methods, see~\Ref{WEISS}.
359 jgs 107 \end{memberdesc}
360    
361 gross 625 \begin{memberdesc}[LinearPDE]{SSOR}
362 gross 653 symmetric successive over-relaxation method, see~\Ref{WEISS}. Typically used as preconditioner but some linear solver libraries support
363 gross 660 this as a solver.
364 gross 625 \end{memberdesc}
365     \begin{memberdesc}[LinearPDE]{ILU0}
366 gross 660 the incomplete LU factorization preconditioner with no fill-in, see~\Ref{Saad}.
367 gross 653 \end{memberdesc}
368    
369 gross 625 \begin{memberdesc}[LinearPDE]{ILUT}
370 gross 653 the incomplete LU factorization preconditioner with fill-in, see~\Ref{Saad}. During the LU-factorization element with
371     relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
372 gross 660 \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
373     \method{getSolution} call.
374 gross 653 \end{memberdesc}
375    
376 gross 625 \begin{memberdesc}[LinearPDE]{JACOBI}
377 gross 653 the Jacobi preconditioner, see~\Ref{Saad}.
378     \end{memberdesc}
379    
380 gross 625 \begin{memberdesc}[LinearPDE]{AMG}
381 gross 660 the algebraic--multi grid method, see~\Ref{AMG}. This method can be used as linear solver method but is more robust when used
382 gross 653 in a preconditioner.
383     \end{memberdesc}
384    
385 gross 625 \begin{memberdesc}[LinearPDE]{RILU}
386 gross 653 recursive incomplete LU factorization preconditioner, see~\Ref{RILU}. This method is similar to \ILUT but uses smoothing
387     between levels. During the LU-factorization element with
388     relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
389 gross 660 \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
390     \method{getSolution} call.
391 gross 653 \end{memberdesc}
392 jgs 107
393 gross 653 \begin{memberdesc}[LinearPDE]{NO_REORDERING}
394     no ordering is used during factorization.
395     \end{memberdesc}
396 gross 625
397 gross 653 \begin{memberdesc}[LinearPDE]{MINIMUM_FILL_IN}
398     applies reordering before factorization using a fill-in minimization strategy. You have to check with the particular solver library or
399     linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
400     \end{memberdesc}
401 gross 625
402     \begin{memberdesc}[LinearPDE]{NESTED_DISSECTION}
403 gross 653 applies reordering before factorization using a nested dissection strategy. You have to check with the particular solver library or
404     linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
405     \end{memberdesc}
406 gross 625
407 jgs 102 \section{The \Poisson Class}
408     The \Poisson class provides an easy way to define and solve the Poisson
409     equation
410     \begin{equation}\label{POISSON.1}
411     -u\hackscore{,ii}=f\; .
412     \end{equation}
413     with homogeneous boundary conditions
414     \begin{equation}\label{POISSON.2}
415     n\hackscore{i}u\hackscore{,i}=0
416     \end{equation}
417     and homogeneous constraints
418     \begin{equation}\label{POISSON.3}
419     u=0 \mbox{ where } q>0
420     \end{equation}
421     $f$ has to be a \Scalar in the \Function and $q$ must be
422 gross 660 a \Scalar in the \SolutionFS.
423 jgs 102
424     \begin{classdesc}{Poisson}{domain}
425     opens a Poisson equation on the \Domain domain. \Poisson is derived from \LinearPDE.
426     \end{classdesc}
427     \begin{methoddesc}[Poisson]{setValue}{f=escript.Data(),q=escript.Data()}
428     assigns new values to \var{f} and \var{q}.
429     \end{methoddesc}
430 gross 625
431     \section{The \Helmholtz Class}
432 gross 660 The \Helmholtz class defines the Helmholtz problem
433     \begin{equation}\label{HZ.1}
434     \omega \; u - (k\; u\hackscore{,j})\hackscore{,j} = f
435     \end{equation}
436     with natural boundary conditons
437     \begin{equation}\label{HZ.2}
438     k\; u\hackscore{,j} n\hackscore{,j} = g- \alpha \; u
439     \end{equation}
440     and constraints:
441     \begin{equation}\label{HZ.3}
442     u=r \mbox{ where } q>0
443     \end{equation}
444     $\omega$, $k$, $f$ have to be a \Scalar in the \Function,
445     $g$ and $\alpha$ must be a \Scalar in the \FunctionOnBoundary,
446     and $q$ and $r$ must be a \Scalar in the \SolutionFS or must be mapped or interpolated into the particular \FunctionSpace.
447 gross 625
448 gross 660 \begin{classdesc}{Helmholtz}{domain}
449     opens a Helmholtz equation on the \Domain domain. \Helmholtz is derived from \LinearPDE.
450     \end{classdesc}
451     \begin{methoddesc}[Helmholtz]{setValue}{ \optional{omega} \optional{, k} \optional{, f} \optional{, alpha} \optional{, g} \optional{, r} \optional{, q}}
452     assigns new values to \var{omega}, \var{k}, \var{f}, \var{alpha}, \var{g}, \var{r}, \var{q}. By default all values are set to be zero.
453     \end{methoddesc}
454    
455 gross 625 \section{The \Lame Class}
456 gross 660 The \Lame class defines a Lame equation problem:
457     \begin{equation}\label{LE.1}
458     -\mu (u\hackscore{i,j}+u\hackscore{j,i})+\lambda u\hackscore{k,k})\hackscore{j} = F\hackscore{i}-\sigma\hackscore{ij,j}
459     \end{equation}
460     with natural boundary conditons:
461     \begin{equation}\label{LE.2}
462     n\hackscore{j}(\mu \; (u\hackscore{i,j}+u\hackscore{j,i})+\lambda*u\hackscore{k,k}) = f\hackscore{i}+n\hackscore{j}\sigma\hackscore{ij}
463     \end{equation}
464     and constraint
465     \begin{equation}\label{LE.3}
466     u\hackscore{i}=r\hackscore{i} \mbox{ where } q\hackscore{i}>0
467     \end{equation}
468     $\mu$, $\lambda$ have to be a \Scalar in the \Function,
469     $F$ has to be a \Vector in the \Function,
470     $\sigma$ has to be a \Tensor in the \Function,
471     $f$ must be a \Vector in the \FunctionOnBoundary,
472     and $q$ and $r$ must be a \Vector in the \SolutionFS or must be mapped or interpolated into the particular \FunctionSpace.
473 gross 625
474 gross 660 \begin{classdesc}{Lame}{domain}
475     opens a Lame equation on the \Domain domain. \Lame is derived from \LinearPDE.
476     \end{classdesc}
477     \begin{methoddesc}[Lame]{setValue}{ \optional{lame_lambda} \optional{, lame_mu} \optional{, F} \optional{, sigma} \optional{, f} \optional{, r} \optional{, q}}
478     assigns new values to
479     \var{lame_lambda},
480     \var{lame_mu},
481     \var{F},
482     \var{sigma},
483     \var{f},
484     \var{r} and
485     \var{q}
486     By default all values are set to be zero.
487     \end{methoddesc}
488    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26