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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1811 - (show annotations)
Thu Sep 25 23:11:13 2008 UTC (10 years, 3 months ago) by ksteube
File MIME type: application/x-tex
File size: 22452 byte(s)
Copyright updated in all files

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26