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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1316 - (hide annotations)
Tue Sep 25 03:18:30 2007 UTC (12 years, 10 months ago) by ksteube
File MIME type: application/x-tex
File size: 22352 byte(s)
Quickly edited chapters 1 and 2 of the User Guide, but it needs more work.
Ran entire document through spell checker.

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26