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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 652 by gross, Thu Mar 23 00:41:25 2006 UTC revision 653 by gross, Fri Mar 24 07:34:34 2006 UTC
# Line 162  switches the debug mode to on. Line 162  switches the debug mode to on.
162  \end{methoddesc}  \end{methoddesc}
163    
164  \begin{methoddesc}[LinearPDE]{isUsingLumping}{}  \begin{methoddesc}[LinearPDE]{isUsingLumping}{}
165  returns \True if lumping is switched on. Otherwise \False is returned.  returns \True if \LUMPING is set as the solver for the system of lienar equations.
166    Otherwise \False is returned.
167  \end{methoddesc}  \end{methoddesc}
168    
169  \begin{methoddesc}[LinearPDE]{setSolverMethod}{\optional{solver=LinearPDE.DEFAULT}\options{, preconditioner=LinearPDE.DEFAULT})  \begin{methoddesc}[LinearPDE]{setSolverMethod}{\optional{solver=LinearPDE.DEFAULT}\optional{, preconditioner=LinearPDE.DEFAULT}}
170  sets the solver method and preconditioner to be used. It is pointed out that a PDE solver library  sets the solver method and preconditioner to be used. It is pointed out that a PDE solver library
171  may not know the specified solver method but may choose a similar method and preconditioner.  may not know the specified solver method but may choose a similar method and preconditioner.
172  \end{methoddesc}  \end{methoddesc}
173    
174    \begin{methoddesc}[LinearPDE]{getSolverMethodName}{}
175    returns the name of the solver method and preconditioner which is currently been used.
176    \end{methoddesc}
177    
178    \begin{methoddesc}[LinearPDE]{getSolverMethod}{}
179    returns the solver method and preconditioner which is currently been used.
180    \end{methoddesc}
181    
182    \begin{methoddesc}[LinearPDE]{setSolverPackage}{\optional{package=LinearPDE.DEFAULT}}
183    Set the solver package to be used by PDE library to solve the linear systems of equations. The
184    specified package may not be supported by the PDE solver library. In this case, dependng on
185    the PDE solver, the default solver is used or an exeption is thrown.
186    If \var{package} is not specified, the default package of the PDE solver library is used.
187    \end{methoddesc}
188    
189    \begin{methoddesc}[LinearPDE]{getSolverPackage}{}
190    returns the linear solver package currently by the PDE solver library
191    \end{methoddesc}
192    
193    
194  \begin{methoddesc}[LinearPDE]{setTolerance}{\optional{tol=1.e-8}}:  \begin{methoddesc}[LinearPDE]{setTolerance}{\optional{tol=1.e-8}}:
195  resets the tolerance for solution. The actually meaning of tolerance is  resets the tolerance for solution. The actually meaning of tolerance is
196  depending on the underlying PDE library. In most cases, the tolerance  depending on the underlying PDE library. In most cases, the tolerance
# Line 210  returns the flux $J\hackscore{ij}$ \inde Line 231  returns the flux $J\hackscore{ij}$ \inde
231  defined by \eqn{LINEARPDE.SYSTEM.5} and \eqn{LINEARPDE.SINGLE.5}, respectively.  defined by \eqn{LINEARPDE.SYSTEM.5} and \eqn{LINEARPDE.SINGLE.5}, respectively.
232  \end{methoddesc}  \end{methoddesc}
233    
 \begin{methoddesc}[LinearPDE]{getSolverMethodName}{}  
 \begin{methoddesc}[LinearPDE]{getSolverMethod}{}  
 \begin{methoddesc}[LinearPDE]{setSolverPackage}{\optional{package=None}}  
 \begin{methoddesc}[LinearPDE]{getSolverPackage}{}  
234    
235  \begin{methoddesc}[LinearPDE]{isSymmetric}{}  \begin{methoddesc}[LinearPDE]{isSymmetric}{}
236  returns \True if the PDE has been indicated to be symmetric.  returns \True if the PDE has been indicated to be symmetric.
# Line 262  returns the \Operator and right hand sid Line 279  returns the \Operator and right hand sid
279  \optional{, truncation=-1}  \optional{, truncation=-1}
280  \optional{, restart=-1}  \optional{, restart=-1}
281  }  }
282  returns (an approximation of) the solution of the PDE. If \code{verbose=True} some information during the solution process pronted. \var{reordering} selects a reordering methods that is applied before or during the solution process.  returns (an approximation of) the solution of the PDE. If \code{verbose=\True} some information during the solution process printed.
283  \var{iter_max} specifies the maximum number of iteration steps that are allowed to reach the specified tolerence.  \var{reordering} selects a reordering methods that is applied before or during the solution process
284    (=\NOREORDERING ,\MINIMUMFILLIN ,\NESTEDDESCTION).
285    \var{iter_max} specifies the maximum number of iteration steps that are allowed to reach the specified tolerance.
286  \var{drop_tolerance} specifies a relative tolerance for small elements to be dropped when building a preconditioner  \var{drop_tolerance} specifies a relative tolerance for small elements to be dropped when building a preconditioner
287  (eg. in ILUT \Ref{SAAD}). \var{drop_storage} limits the extra storage allowed when building a preconditioner  (eg. in \ILUT). \var{drop_storage} limits the extra storage allowed when building a preconditioner
288  (eg. in ILUT \Ref{SAAD}). The extra storage is given relative to the size of the siffness matrix, eg.  (eg. in \ILUT). The extra storage is given relative to the size of the stiffness matrix, eg.
289  \var{drop_storage=1.2} will allow the preconditioner to use the $1.2$ fold storage space than used  \var{drop_storage=1.2} will allow the preconditioner to use the $1.2$ fold storage space than used
290  for the stiffness matrix. \var{truncation} defines the truncation  for the stiffness matrix. \var{truncation} defines the truncation.
291  \end{methoddesc}  \end{methoddesc}
292    
 ==================  
293  \begin{memberdesc}[LinearPDE]{DEFAULT}  \begin{memberdesc}[LinearPDE]{DEFAULT}
294  default method, preconditioner or package to be used to solve the PDE. An appropriate method should be  default method, preconditioner or package to be used to solve the PDE. An appropriate method should be
295  chosen by the used PDE solver library.  chosen by the used PDE solver library.
296  \end{memberdesc}  \end{memberdesc}
297    
298  \begin{memberdesc}[LinearPDE]{SCSL}  \begin{memberdesc}[LinearPDE]{SCSL}
299    the SCSL library by SGI,~\Ref{SCSL}\footnote{The SCSL library will only be available on SGI systems}
300  \end{memberdesc}  \end{memberdesc}
301    
302  \begin{memberdesc}[LinearPDE]{MKL}  \begin{memberdesc}[LinearPDE]{MKL}
303    the MKL library by Intel,~\Ref{MKL}\footnote{The MKL library will only be available when the intel compilation environment is used.}.
304  \end{memberdesc}  \end{memberdesc}
305    
306  \begin{memberdesc}[LinearPDE]{UMFPACK}  \begin{memberdesc}[LinearPDE]{UMFPACK}
307    the UMFPACK,~\Ref{UMFPACK}. Remark: UMFPACK is not parallelized.
308  \end{memberdesc}  \end{memberdesc}
309    
310  \begin{memberdesc}[LinearPDE]{PASO}  \begin{memberdesc}[LinearPDE]{PASO}
311    the solver library of \finley, see \Sec{CHAPTER ON FINLEY}.
312  \end{memberdesc}  \end{memberdesc}
313    
314  \begin{memberdesc}[LinearPDE]{ITERATIVE}  \begin{memberdesc}[LinearPDE]{ITERATIVE}
315    the default iterative method and preconditioner. The actually used method depends on the
316    PDE solver library and the solver package been choosen. Typically, \PCG is used for symmetric PDEs
317    and \BiCGStab otherwise, both with \JACOBI preconditioner.
318  \end{memberdesc}  \end{memberdesc}
319    
320  \begin{memberdesc}[LinearPDE]{DIRECT}  \begin{memberdesc}[LinearPDE]{DIRECT}
321  direct linear solver~\Ref{SAAD}  the default direct linear solver.
322  \end{memberdesc}  \end{memberdesc}
323    
324  \begin{memberdesc}[LinearPDE]{CHOLEVSKY}  \begin{memberdesc}[LinearPDE]{CHOLEVSKY}
325  direct solver based on Cholevsky factorization (or similar), see~\Ref{SAAD}. The solver will require a symmetric PDE.  direct solver based on Cholevsky factorization (or similar), see~\Ref{Saad}. The solver will require a symmetric PDE.
326  \end{memberdesc}  \end{memberdesc}
327    
328  \begin{memberdesc}[LinearPDE]{PCG}  \begin{memberdesc}[LinearPDE]{PCG}
329  preconditioned conjugate gradient method, see~\Ref{WEISS}. The solver will require a symmetric PDE.  preconditioned conjugate gradient method, see~\Ref{WEISS}\index{linear solver!PCG}\index{PCG}. The solver will require a symmetric PDE.
330  \end{memberdesc}  \end{memberdesc}
331    
332  \begin{memberdesc}[LinearPDE]{GMRES}  \begin{memberdesc}[LinearPDE]{GMRES}
333  the GMRES method, see~\Ref{WEISS}. Truncation and restart ar econtrolled by the parameters  the GMRES method, see~\Ref{WEISS}\index{linear solver!GMRES}\index{GMRES}. Truncation and restart are controlled by the parameters
334  \var{truncation} and \var{restart} of \method{getSolution}.  \var{truncation} and \var{restart} of \method{getSolution}.
335  \end{memberdesc}  \end{memberdesc}
336    
337  \begin{memberdesc}[LinearPDE]{LUMPING}  \begin{memberdesc}[LinearPDE]{LUMPING}
338  conjugate residual method, see~\Ref{WEISS}.  uses lumping to solve the system of linear equations~\index{linear solver!lumping}\index{lumping}. This solver technique
339    condenses the stiffness matrix to a diagonal matrix so the solution of the linear systems becomes very cheap. It can be used when
340    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
341    but is expect to converge to zero when the mesh gets finer.  
342    Lumping does not use the linear system solver library.  
343  \end{memberdesc}  \end{memberdesc}
344    
345  \begin{memberdesc}[LinearPDE]{PRES20}  \begin{memberdesc}[LinearPDE]{PRES20}
346  the GMRES method with trunction after five residuals and  the GMRES method with truncation after five residuals and
347  restart after 20 steps, see~\Ref{WEISS}.  restart after 20 steps, see~\Ref{WEISS}.
348    \end{memberdesc}[LinearPDE]{CR}
 \begin{memberdesc}[LinearPDE]{CR}  
349    
350  \begin{memberdesc}[LinearPDE]{CGS}  \begin{memberdesc}[LinearPDE]{CGS}
351  conjugate gradient squared method, see~\Ref{WEISS}.  conjugate gradient squared method, see~\Ref{WEISS}.
352  \end{memberdesc}  \end{memberdesc}
353    
354  \begin{memberdesc}[LinearPDE]{BICGSTAB}  \begin{memberdesc}[LinearPDE]{BICGSTAB}
355  stabilzed bi-conjugate gradients methods, see~\Ref{WEISS}.  stabilized bi-conjugate gradients methods, see~\Ref{WEISS}.
356  \end{memberdesc}  \end{memberdesc}
357    
358  \begin{memberdesc}[LinearPDE]{SSOR}  \begin{memberdesc}[LinearPDE]{SSOR}
359  symmetric successive overrelaxtion method, see~\Ref{WEISS}.  symmetric successive over-relaxation method, see~\Ref{WEISS}. Typically used as preconditioner but some linear solver libraries support
360    this as a solver.  
361  \end{memberdesc}  \end{memberdesc}
362  \begin{memberdesc}[LinearPDE]{ILU0}  \begin{memberdesc}[LinearPDE]{ILU0}
363    the incomplete LU factorization preconditioner with no fill-in, see~\Ref{Saad}.
364    \end{memberdesc}
365    
366  \begin{memberdesc}[LinearPDE]{ILUT}  \begin{memberdesc}[LinearPDE]{ILUT}
367  \begin{memberdesc}[LinearPDE]{JACOBI}  the incomplete LU factorization preconditioner with fill-in, see~\Ref{Saad}. During the  LU-factorization element with
368  \begin{memberdesc}[LinearPDE]{AMG}  relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
369  \begin{memberdesc}[LinearPDE]{RILU}  \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
370    \method{getSolution} call.
371    \end{memberdesc}
372    
373    \begin{memberdesc}[LinearPDE]{JACOBI}
374    the Jacobi preconditioner, see~\Ref{Saad}.
375    \end{memberdesc}
376    
377    \begin{memberdesc}[LinearPDE]{AMG}
378    the algebraic--multi grid method, see~\Ref{AMG}. This method can be used as linear solver method but is more robust when used
379    in a preconditioner.
380    \end{memberdesc}
381    
382    \begin{memberdesc}[LinearPDE]{RILU}
383    recursive incomplete LU factorization preconditioner, see~\Ref{RILU}. This method is similar to \ILUT but uses smoothing
384    between levels. During the  LU-factorization element with
385    relative size less then \var{drop_tolerance} are dropped. Moreover, the size of the LU-factorization is restricted to the
386    \var{drop_storage}-fold of the stiffness matrix. \var{drop_tolerance} and \var{drop_storage} are both set in the
387    \method{getSolution} call.
388    \end{memberdesc}
389    
390  \begin{memberdesc}[LinearPDE]{NO_REORDERING}  \begin{memberdesc}[LinearPDE]{NO_REORDERING}
391  \begin{memberdesc}[LinearPDE]{MINIMUM_FILL_IN}  no ordering is used during factorization.
392  \begin{memberdesc}[LinearPDE]{NESTED_DISSECTION}  \end{memberdesc}
   
   
   
393    
394  \begin{memberdesc}[LinearPDE]{BICGSTAB}  \begin{memberdesc}[LinearPDE]{MINIMUM_FILL_IN}
395    applies reordering before factorization using a fill-in minimization strategy. You have to check with the particular solver library or
396    linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
397    \end{memberdesc}
398    
399    \begin{memberdesc}[LinearPDE]{NESTED_DISSECTION}
400    applies reordering before factorization using a nested dissection strategy. You have to check with the particular solver library or
401    linear solver package if this is supported. In any case, it is advisable to apply reordering on the mesh to minimize fill-in.
402    \end{memberdesc}
403    
404  \section{The \Poisson Class}  \section{The \Poisson Class}
405  The \Poisson class provides an easy way to define and solve the Poisson  The \Poisson class provides an easy way to define and solve the Poisson

Legend:
Removed from v.652  
changed lines
  Added in v.653

  ViewVC Help
Powered by ViewVC 1.1.26