# Diff of /trunk/doc/user/finley.tex

revision 2417 by gross, Wed May 13 08:18:47 2009 UTC revision 2722 by gross, Fri Oct 16 06:45:01 2009 UTC
# Line 1  Line 1
1
2  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3  %  %
4  % Copyright (c) 2003-2008 by University of Queensland  % Copyright (c) 2003-2009 by University of Queensland
5  % Earth Systems Science Computational Center (ESSCC)  % Earth Systems Science Computational Center (ESSCC)
6  % http://www.uq.edu.au/esscc  % http://www.uq.edu.au/esscc
7  %  %
# Line 254  $7$, $10$, $15$ and $20$, respectively. Line 254  $7$, $10$, $15$ and $20$, respectively.
254  \input{finleyelements}  \input{finleyelements}
255  \clearpage  \clearpage
256
257  \subsection{Linear Solvers in \LinearPDE}
258  Currently \finley supports the linear solvers \PCG, \GMRES, \PRESTWENTY and \BiCGStab.  \begin{table}
259  For \GMRES the options \var{truncation} and \var{restart} of the \method{getSolution} can be  {\scriptsize
260  used to control the truncation and restart during iteration. Default values are  \begin{tabular}{l||c|c|c|c|c|c|c|c}
261  \var{truncation}=5 and \var{restart}=20.  \member{setSolverMethod} & \member{DIRECT}& \member{PCG} & \member{GMRES} & \member{TFQMR} & \member{MINRES} & \member{PRES20} & \member{BICGSTAB} & \member{LUMPING} \\
262  The default solver is \BiCGStab  but if the symmetry flag is set \PCG is the default solver.  \hline
263  \finley supports the solver options \var{iter_max} which specifies the maximum number of iterations steps,   \hline
264  \var{verbose}=\True or \False and \var{preconditioner}=\constant{JACOBI} or \constant {ILU0}.   \member{setReordering} & $\checkmark$ & & & & & &\\
265  In some installations \finley supports the \Direct solver and the   \hline  \member{setRestart} &  & & $\checkmark$ & & & $20$ & \\
266  solver options \var{reordering}=\constant{util.NO_REORDERING},   \hline\member{setTruncation} &  & & $\checkmark$ & & & $5$ & \\
267  \constant{util.MINIMUM_FILL_IN} or \constant{util.NESTED_DISSECTION} (default is \constant{util.NO_REORDERING}),     \hline\member{setIterMax} &  & $\checkmark$& $\checkmark$ & $\checkmark$& $\checkmark$& $\checkmark$ & $\checkmark$ \\
268  \var{drop_tolerance} specifying the threshold for values to be dropped in the   \hline\member{setTolerance} &  & $\checkmark$& $\checkmark$ & $\checkmark$& $\checkmark$& $\checkmark$ & $\checkmark$ \\
269  incomplete elimination process (default is 0.01) and \var{drop_storage} specifying the maximum increase   \hline\member{setAbsoluteTolerance} &  & $\checkmark$& $\checkmark$ & $\checkmark$& $\checkmark$& $\checkmark$ & $\checkmark$ \\
270  in storage allowed in the  \hline\member{setReordering} & $\checkmark$ & & & & & & & \\
271  incomplete elimination process (default is 1.20).  \end{tabular}
272    }
273    \caption{Solvers available for
274    \finley
275    and the \PASO package and the relevant options in \class{SolverOptions}.
276    \MKL supports
277    \MINIMUMFILLIN
278    and
279    \NESTEDDESCTION
280    reordering.
281    Currently the \UMFPACK interface does not support any reordering.
282    \label{TAB FINLEY SOLVER OPTIONS 1} }
283    \end{table}
284
285    \begin{table}
286    {\scriptsize
287    \begin{tabular}{l||c|c|c|c|c|c|c|c}
288    \member{setPreconditioner} &
289    \member{NO_PRECONDITIONER} &
290    \member{AMG} &
291    \member{JACOBI} &
292    \member{GAUSS_SEIDEL}&
293    \member{REC_ILU}&
294    \member{RILU} &
295    \member{ILU0} &
296    \member{DIRECT} \\
297     \hline
298     status: &
299    later &
300    later &
301    $\checkmark$ &
302    $\checkmark$&
303    $\checkmark$ &
304    later &
305    $\checkmark$ &
306    later \\
307    \hline
308    \hline
309    \member{setCoarsening}&
310     &
311    $\checkmark$ &
312    &
313    &
314    &
315     &
316     &
317     \\
318
319
320    \hline\member{setLevelMax}&
321     &
322    $\checkmark$ &
323     &
324    &
325    &
326     &
327     &
328     \\
329
330    \hline\member{setCoarseningThreshold}&
331    &
332    $\checkmark$ &
333     &
334    &
335    &
336     &
337     &
338     \\
339
340    \hline\member{setMinCoarseMatrixSize} &
341     &
342    $\checkmark$ &
343     &
344    &
345    &
346     &
347     &
348     \\
349
350    \hline\member{setNumSweeps} &
351     &
352     &
353    $\checkmark$ &
354    $\checkmark$ &
355    &
356     &
357     &
358     \\
359
360    \hline\member{setNumPreSweeps}&
361     &
362    $\checkmark$ &
363      &
364     &
365     &
366      &
367      &
368      \\
369
370    \hline\member{setNumPostSweeps} &
371     &
372    $\checkmark$ &
373     &
374    &
375    &
376     &
377    &
378     \\
379
380    \hline\member{setInnerTolerance}&
381     &
382     &
383     &
384    &
385    &
386     &
387    &
388     \\
389
390    \hline\member{setDropTolerance}&
391     &
392     &
393     &
394    &
395    &
396     &
397    &
398     \\
399
400    \hline\member{setDropStorage}&
401     &
402     &
403     &
404    &
405    &
406     &
407    &
408     \\
409
410    \hline\member{setRelaxationFactor}&
411     &
412     &
413     &
414    &
415    &
416    $\checkmark$  &
417     &
418     \\
419
421     &
422     &
423     &
424    &
425    &
426     &
427    &
428     \\
429
430    \hline\member{setInnerIterMax}&
431     &
432     &
433     &
434    &
435    &
436     &
437    &
438     \\
439    \end{tabular}
440    }
441    \caption{Preconditioners available for \finley and the \PASO package and the relevant options in \class{SolverOptions}. \label{TAB FINLEY SOLVER OPTIONS 2}}
442    \end{table}
443
444    \subsection{Linear Solvers in \SolverOptions}
445    Table~\ref{TAB FINLEY SOLVER OPTIONS 1} and
446    Table~\ref{TAB FINLEY SOLVER OPTIONS 2} show the solvers and preconditioners supported by
447    \finley through the \PASO library. Currently direct solvers are not supported under MPI.
448    By default, \finley is using the iterative solvers \PCG for symmetric and \BiCGStab for non-symmetric problems.
449    If the direct solver is selected which can be useful when solving very ill-posedequations
450    \finley uses the \MKL solver package. If \MKL is not available \UMFPACK is used. If \UMFPACK is not available
451    a suitable iterative solver from the \PASO is used.
452
453  \subsection{Functions}  \subsection{Functions}
455  creates a \Domain object form the FEM mesh defined in  creates a \Domain object form the FEM mesh defined in
456  file \var{fileName}. The file must be given the \finley file format.  file \var{fileName}. The file must be given the \finley file format.
457  If \var{integrationOrder} is positive, a numerical integration scheme  If \var{integrationOrder} is positive, a numerical integration scheme
458  chosen which is accurate on each element up to a polynomial of  chosen which is accurate on each element up to a polynomial of
459  degree \var{integrationOrder} \index{integration order}. Otherwise  degree \var{integrationOrder} \index{integration order}. Otherwise
460    an appropriate integration order is chosen independently.
461    By default the labeling of mesh nodes and element distribution is
462    optimized. Set \var{optimize=False} to switch off relabeling and redistribution.
463    \end{funcdesc}
464
466    creates a \Domain object form the FEM mesh defined in
467    file \var{fileName}. The file must be given the \gmshextern file format.
468    If \var{integrationOrder} is positive, a numerical integration scheme
469    chosen which is accurate on each element up to a polynomial of
470    degree \var{integrationOrder} \index{integration order}. Otherwise
471  an appropriate integration order is chosen independently.  an appropriate integration order is chosen independently.
472    By default the labeling of mesh nodes and element distribution is
473    optimized. Set \var{optimize=False} to switch off relabeling and redistribution.
474    Currently \function{ReadGmsh} does not support MPI.
475  \end{funcdesc}  \end{funcdesc}
476
477
479  recovers a \Domain object from a dump file created by the \  recovers a \Domain object from a dump file created by the \
480  eateseates a \Domain object form the FEM mesh defined in  eateseates a \Domain object form the FEM mesh defined in
# Line 320  If \var{optimize}=\True mesh node relabe Line 515  If \var{optimize}=\True mesh node relabe
515  \end{funcdesc}  \end{funcdesc}
516
517  \begin{funcdesc}{Brick}{n0,n1,n2,order=1,l0=1.,l1=1.,l2=1., integrationOrder=-1, \\  \begin{funcdesc}{Brick}{n0,n1,n2,order=1,l0=1.,l1=1.,l2=1., integrationOrder=-1, \\
518    periodic0=\False,periodic1=\False,periodic2=\False,useElementsOnFace=\False,optimize=\False}    periodic0=\False,periodic1=\False,periodic2=\False,useElementsOnFace=\False,useMacroElements=\False, optimize=\False}
519  Generates a \Domain object representing a three dimensional brick between  Generates a \Domain object representing a three dimensional brick between
520  $(0,0,0)$ and $(l0,l1,l2)$ with orthogonal faces. The brick is filled with  $(0,0,0)$ and $(l0,l1,l2)$ with orthogonal faces. The brick is filled with
521  \var{n0} elements along the $x_0$-axis,  \var{n0} elements along the $x_0$-axis,

Legend:
 Removed from v.2417 changed lines Added in v.2722