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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 969 - (show annotations)
Tue Feb 13 23:02:23 2007 UTC (13 years, 1 month ago) by ksteube
File MIME type: application/x-tex
File size: 22315 byte(s)
Parallelization using MPI for solution of implicit problems.

Parallelization for explicit problems has already been accomplished in
the main SVN branch.

This is incomplete and is not ready for use.


1 % $Id$
2 %
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
10
11 \chapter{The module \linearPDEs}
12
13 \declaremodule{extension}{linearPDEs} \modulesynopsis{Linear partial pifferential equation handler}
14 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 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 to define the Poisson equation \index{Poisson}.
23
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 the outer normal field on $\Gamma$.
31
32 For a single PDE with a solution with a single component the linear PDE is defined in the
33 following form:
34 \begin{equation}\label{LINEARPDE.SINGLE.1}
35 -(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 \end{equation}
37 $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 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 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 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 or \eqn{LINEARPDE.SINGLE.2}.
56
57 For a system of PDEs and a solution with several components the PDE has the form
58 \begin{equation}\label{LINEARPDE.SYSTEM.1}
59 -(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 \end{equation}
61 $A$ is a \RankFour, $B$ and $C$ are each a \RankThree, $D$ and $X$ are each a \RankTwo and $Y$ is a \RankOne.
62 The natural boundary conditions \index{boundary condition!natural} take the form:
63 \begin{equation}\label{LINEARPDE.SYSTEM.2}
64 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 \end{equation}
66 The coefficient $d$ is a \RankTwo and $y$ is a
67 \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 $r$ and $q$ are each \RankOne. Notice that not necessarily all components must
72 have a constraint at all locations.
73
74 \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 defined as
78 \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 In the context of discontinuities \index{discontinuity} $n$ denotes the normal on the
86 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 The coefficient $d^{contact}$ is a \RankTwo and $y^{contact}$ is a
95 \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
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 d^{contact}\hackscore{ik}=d^{contact}\hackscore{ki}
115 \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 This is the general class to define a linear PDE in \escript. We list a selction of the most
121 important methods of the class only and refer to reference guide \ReferenceGuide for a complete list.
122
123 \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 If \var{numEquations} and \var{numSolutions} is non-positive, the number of equations
127 and the number solutions, respctively, stay undefined until a coefficient is
128 defined.
129 \end{classdesc}
130
131 \begin{methoddesc}[LinearPDE]{setValue}{
132 \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 If the new coefficient value is not a \Data object, it is converted into a \Data object in the
143 appropriate \FunctionSpace.
144 \end{methoddesc}
145
146 \begin{methoddesc}[LinearPDE]{getCoefficient}{name}
147 return the value assigned to coefficient \var{name}. If \var{name} is not a valid name
148 an exception is raised.
149 \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 \begin{methoddesc}[LinearPDE]{getFunctionSpaceForCoefficient}{name}
156 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 \begin{methoddesc}[LinearPDE]{isUsingLumping}{}
168 returns \True if \LUMPING is set as the solver for the system of lienar equations.
169 Otherwise \False is returned.
170 \end{methoddesc}
171
172 \begin{methoddesc}[LinearPDE]{setSolverMethod}{\optional{solver=LinearPDE.DEFAULT}\optional{, preconditioner=LinearPDE.DEFAULT}}
173 sets the solver method and preconditioner to be used. It is pointed out that a PDE solver library
174 may not know the specified solver method but may choose a similar method and preconditioner.
175 \end{methoddesc}
176
177 \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 Set the solver package to be used by PDE library to solve the linear systems of equations. The
187 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 If \var{package} is not specified, the default package of the PDE solver library is used.
190 \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 \begin{methoddesc}[LinearPDE]{setTolerance}{\optional{tol=1.e-8}}:
198 resets the tolerance for solution. The actually meaning of tolerance is
199 depending on the underlying PDE library. In most cases, the tolerance
200 will only consider the error from solving the discerete problem but will
201 not consider any discretization error.
202 \end{methoddesc}
203
204 \begin{methoddesc}[LinearPDE]{getTolerance}{}
205 returns the current tolerance of the solution
206 \end{methoddesc}
207
208 \begin{methoddesc}[LinearPDE]{getDomain}{}
209 returns the \Domain of the PDE.
210 \end{methoddesc}
211
212 \begin{methoddesc}[LinearPDE]{getDim}{}
213 returns the spatial dimension of the PDE.
214 \end{methoddesc}
215
216 \begin{methoddesc}[LinearPDE]{getNumEquations}{}
217 returns the number of equations.
218 \end{methoddesc}
219
220 \begin{methoddesc}[LinearPDE]{getNumSolutions}{}
221 returns the number of components of the solution.
222 \end{methoddesc}
223
224 \begin{methoddesc}[LinearPDE]{checkSymmetry}{verbose=\False}
225 returns \True if the PDE is symmetric and \False otherwise.
226 The method is very computational expensive and should only be
227 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 \end{methoddesc}
231
232 \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 \end{methoddesc}
236
237
238 \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 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 be supported by all PDE libraries.
255 \end{methoddesc}
256
257 \begin{methoddesc}[LinearPDE]{setReducedOrderOff}{}
258 switches off the reduction of polynomial order for the solution and
259 equation evaluation.
260 \end{methoddesc}
261
262 \begin{methoddesc}[LinearPDE]{getOperator}{}
263 returns the \Operator of the PDE.
264 \end{methoddesc}
265
266 \begin{methoddesc}[LinearPDE]{getRightHandSide}{}
267 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 \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 returns (an approximation of) the solution of the PDE. If \code{verbose=\True} some information during the solution process printed.
286 \var{reordering} selects a reordering methods that is applied before or during the solution process
287 (=\NOREORDERING ,\MINIMUMFILLIN ,\NESTEDDESCTION).
288 \var{iter_max} specifies the maximum number of iteration steps that are allowed to reach the specified tolerance.
289 \var{drop_tolerance} specifies a relative tolerance for small elements to be dropped when building a preconditioner
290 (eg. in \ILUT). \var{drop_storage} limits the extra storage allowed when building a preconditioner
291 (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 \end{methoddesc}
295
296 \begin{memberdesc}[LinearPDE]{DEFAULT}
297 default method, preconditioner or package to be used to solve the PDE. An appropriate method should be
298 chosen by the used PDE solver library.
299 \end{memberdesc}
300
301 \begin{memberdesc}[LinearPDE]{SCSL}
302 the SCSL library by SGI,~\Ref{SCSL}\footnote{The SCSL library will only be available on SGI systems}
303 \end{memberdesc}
304
305 \begin{memberdesc}[LinearPDE]{MKL}
306 the MKL library by Intel,~\Ref{MKL}\footnote{The MKL library will only be available when the intel compilation environment is used.}.
307 \end{memberdesc}
308
309 \begin{memberdesc}[LinearPDE]{UMFPACK}
310 the UMFPACK,~\Ref{UMFPACK}. Remark: UMFPACK is not parallelized.
311 \end{memberdesc}
312
313 \begin{memberdesc}[LinearPDE]{TRILINOS}
314 the TRILINOS,~\Ref{TRILINOS}. Remark: TRILINOS is a class library of parallel sparse solvers from Sandia National Laboratory
315 \end{memberdesc}
316
317 \begin{memberdesc}[LinearPDE]{PASO}
318 the solver library of \finley, see \Sec{CHAPTER ON FINLEY}.
319 \end{memberdesc}
320
321 \begin{memberdesc}[LinearPDE]{ITERATIVE}
322 the default iterative method and preconditioner. The actually used method depends on the
323 PDE solver library and the solver package been choosen. Typically, \PCG is used for symmetric PDEs
324 and \BiCGStab otherwise, both with \JACOBI preconditioner.
325 \end{memberdesc}
326
327 \begin{memberdesc}[LinearPDE]{DIRECT}
328 the default direct linear solver.
329 \end{memberdesc}
330
331 \begin{memberdesc}[LinearPDE]{CHOLEVSKY}
332 direct solver based on Cholevsky factorization (or similar), see~\Ref{Saad}. The solver will require a symmetric PDE.
333 \end{memberdesc}
334
335 \begin{memberdesc}[LinearPDE]{PCG}
336 preconditioned conjugate gradient method, see~\Ref{WEISS}\index{linear solver!PCG}\index{PCG}. The solver will require a symmetric PDE.
337 \end{memberdesc}
338
339 \begin{memberdesc}[LinearPDE]{GMRES}
340 the GMRES method, see~\Ref{WEISS}\index{linear solver!GMRES}\index{GMRES}. Truncation and restart are controlled by the parameters
341 \var{truncation} and \var{restart} of \method{getSolution}.
342 \end{memberdesc}
343
344 \begin{memberdesc}[LinearPDE]{LUMPING}
345 uses lumping to solve the system of linear equations~\index{linear solver!lumping}\index{lumping}. This solver technique
346 condenses the stiffness matrix to a diagonal matrix so the solution of the linear systems becomes very cheap. It can be used when
347 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
348 but is expect to converge to zero when the mesh gets finer.
349 Lumping does not use the linear system solver library.
350 \end{memberdesc}
351
352 \begin{memberdesc}[LinearPDE]{PRES20}
353 the GMRES method with truncation after five residuals and
354 restart after 20 steps, see~\Ref{WEISS}.
355 \end{memberdesc}[LinearPDE]{CR}
356
357 \begin{memberdesc}[LinearPDE]{CGS}
358 conjugate gradient squared method, see~\Ref{WEISS}.
359 \end{memberdesc}
360
361 \begin{memberdesc}[LinearPDE]{BICGSTAB}
362 stabilized bi-conjugate gradients methods, see~\Ref{WEISS}.
363 \end{memberdesc}
364
365 \begin{memberdesc}[LinearPDE]{SSOR}
366 symmetric successive over-relaxation method, see~\Ref{WEISS}. Typically used as preconditioner but some linear solver libraries support
367 this as a solver.
368 \end{memberdesc}
369 \begin{memberdesc}[LinearPDE]{ILU0}
370 the incomplete LU factorization preconditioner with no fill-in, see~\Ref{Saad}.
371 \end{memberdesc}
372
373 \begin{memberdesc}[LinearPDE]{ILUT}
374 the incomplete LU factorization preconditioner with fill-in, see~\Ref{Saad}. During the LU-factorization element with
375 relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
376 \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
377 \method{getSolution} call.
378 \end{memberdesc}
379
380 \begin{memberdesc}[LinearPDE]{JACOBI}
381 the Jacobi preconditioner, see~\Ref{Saad}.
382 \end{memberdesc}
383
384 \begin{memberdesc}[LinearPDE]{AMG}
385 the algebraic--multi grid method, see~\Ref{AMG}. This method can be used as linear solver method but is more robust when used
386 in a preconditioner.
387 \end{memberdesc}
388
389 \begin{memberdesc}[LinearPDE]{RILU}
390 recursive incomplete LU factorization preconditioner, see~\Ref{RILU}. This method is similar to \ILUT but uses smoothing
391 between levels. During the LU-factorization element with
392 relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
393 \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
394 \method{getSolution} call.
395 \end{memberdesc}
396
397 \begin{memberdesc}[LinearPDE]{NO_REORDERING}
398 no ordering is used during factorization.
399 \end{memberdesc}
400
401 \begin{memberdesc}[LinearPDE]{MINIMUM_FILL_IN}
402 applies reordering before factorization using a fill-in minimization strategy. You have to check with the particular solver library or
403 linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
404 \end{memberdesc}
405
406 \begin{memberdesc}[LinearPDE]{NESTED_DISSECTION}
407 applies reordering before factorization using a nested dissection strategy. You have to check with the particular solver library or
408 linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
409 \end{memberdesc}
410
411 \section{The \Poisson Class}
412 The \Poisson class provides an easy way to define and solve the Poisson
413 equation
414 \begin{equation}\label{POISSON.1}
415 -u\hackscore{,ii}=f\; .
416 \end{equation}
417 with homogeneous boundary conditions
418 \begin{equation}\label{POISSON.2}
419 n\hackscore{i}u\hackscore{,i}=0
420 \end{equation}
421 and homogeneous constraints
422 \begin{equation}\label{POISSON.3}
423 u=0 \mbox{ where } q>0
424 \end{equation}
425 $f$ has to be a \Scalar in the \Function and $q$ must be
426 a \Scalar in the \SolutionFS.
427
428 \begin{classdesc}{Poisson}{domain}
429 opens a Poisson equation on the \Domain domain. \Poisson is derived from \LinearPDE.
430 \end{classdesc}
431 \begin{methoddesc}[Poisson]{setValue}{f=escript.Data(),q=escript.Data()}
432 assigns new values to \var{f} and \var{q}.
433 \end{methoddesc}
434
435 \section{The \Helmholtz Class}
436 The \Helmholtz class defines the Helmholtz problem
437 \begin{equation}\label{HZ.1}
438 \omega \; u - (k\; u\hackscore{,j})\hackscore{,j} = f
439 \end{equation}
440 with natural boundary conditons
441 \begin{equation}\label{HZ.2}
442 k\; u\hackscore{,j} n\hackscore{,j} = g- \alpha \; u
443 \end{equation}
444 and constraints:
445 \begin{equation}\label{HZ.3}
446 u=r \mbox{ where } q>0
447 \end{equation}
448 $\omega$, $k$, $f$ have to be a \Scalar in the \Function,
449 $g$ and $\alpha$ must be a \Scalar in the \FunctionOnBoundary,
450 and $q$ and $r$ must be a \Scalar in the \SolutionFS or must be mapped or interpolated into the particular \FunctionSpace.
451
452 \begin{classdesc}{Helmholtz}{domain}
453 opens a Helmholtz equation on the \Domain domain. \Helmholtz is derived from \LinearPDE.
454 \end{classdesc}
455 \begin{methoddesc}[Helmholtz]{setValue}{ \optional{omega} \optional{, k} \optional{, f} \optional{, alpha} \optional{, g} \optional{, r} \optional{, q}}
456 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.
457 \end{methoddesc}
458
459 \section{The \Lame Class}
460 The \Lame class defines a Lame equation problem:
461 \begin{equation}\label{LE.1}
462 -\mu (u\hackscore{i,j}+u\hackscore{j,i})+\lambda u\hackscore{k,k})\hackscore{j} = F\hackscore{i}-\sigma\hackscore{ij,j}
463 \end{equation}
464 with natural boundary conditons:
465 \begin{equation}\label{LE.2}
466 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}
467 \end{equation}
468 and constraint
469 \begin{equation}\label{LE.3}
470 u\hackscore{i}=r\hackscore{i} \mbox{ where } q\hackscore{i}>0
471 \end{equation}
472 $\mu$, $\lambda$ have to be a \Scalar in the \Function,
473 $F$ has to be a \Vector in the \Function,
474 $\sigma$ has to be a \Tensor in the \Function,
475 $f$ must be a \Vector in the \FunctionOnBoundary,
476 and $q$ and $r$ must be a \Vector in the \SolutionFS or must be mapped or interpolated into the particular \FunctionSpace.
477
478 \begin{classdesc}{Lame}{domain}
479 opens a Lame equation on the \Domain domain. \Lame is derived from \LinearPDE.
480 \end{classdesc}
481 \begin{methoddesc}[Lame]{setValue}{ \optional{lame_lambda} \optional{, lame_mu} \optional{, F} \optional{, sigma} \optional{, f} \optional{, r} \optional{, q}}
482 assigns new values to
483 \var{lame_lambda},
484 \var{lame_mu},
485 \var{F},
486 \var{sigma},
487 \var{f},
488 \var{r} and
489 \var{q}
490 By default all values are set to be zero.
491 \end{methoddesc}
492

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26