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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26