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

revision 2747 by gross, Fri Oct 16 06:45:01 2009 UTC revision 2748 by gross, Tue Nov 17 07:32:59 2009 UTC
# Line 67  is quite a poor approximation of the ell Line 67  is quite a poor approximation of the ell
67  positioning those nodes located on an edge expected to describe the boundary, onto the boundary.  positioning those nodes located on an edge expected to describe the boundary, onto the boundary.
68  In this case the triangle gets a curved edge which requires a parametrization of the triangle using a  In this case the triangle gets a curved edge which requires a parametrization of the triangle using a
69  quadratic polynomial. For this case, the solution is also approximated by a piecewise quadratic polynomial  quadratic polynomial. For this case, the solution is also approximated by a piecewise quadratic polynomial
70  (which explains the name isoparametrical elements), see \Ref{Zienc,NumHand} for more details.    (which explains the name isoparametrical elements), see \Ref{Zienc,NumHand} for more details.
71    \finley supports macro elements\index{macro elements}. For these elements a piecewise linear approximation is used on an element which is further subdivided (in the case \finley halved). As such these elements do not provide more than a further mesh refinement but should be used in the case of incompressible flows, see \class{StokesProblemCartesian}. For these problems a linear approximation of the pressure across the element is used (use the \ReducedSolutionFS \FunctionSpace) while the refined element is used to approximate velocity. So a macro element provides a continuous pressure approximation together with a velocity approximation on a refined mesh. This approach is necessary to make sure that the  incompressible flow has a unique solution.
72
73  The union of all elements defines the domain of the PDE.  The union of all elements defines the domain of the PDE.
74  Each element is defined by the nodes used to describe its shape. In \fig{FINLEY FIG 0} the element,  Each element is defined by the nodes used to describe its shape. In \fig{FINLEY FIG 0} the element,
# Line 116  contact regions line up.  The rich versi Line 117  contact regions line up.  The rich versi
117  $4$ is of type \finleyelement{Rec4Face_Contact} and is defined by the nodes $9$, $12$, $16$, $18$, $6$, $5$, $0$ and  $4$ is of type \finleyelement{Rec4Face_Contact} and is defined by the nodes $9$, $12$, $16$, $18$, $6$, $5$, $0$ and
118  $2$.  $2$.
119
120
121
122  \tab{FINLEY TAB 1} shows the interior element types and the corresponding element types to be used  \tab{FINLEY TAB 1} shows the interior element types and the corresponding element types to be used
123  on the face and contacts. \fig{FINLEY.FIG:1}, \fig{FINLEY.FIG:2} and \fig{FINLEY.FIG:4} show the ordering of  on the face and contacts. \fig{FINLEY.FIG:1}, \fig{FINLEY.FIG:2} and \fig{FINLEY.FIG:4} show the ordering of
124  the nodes within an element.  the nodes within an element.
# Line 133  the nodes within an element. Line 136  the nodes within an element.
136  \linev{\finleyelement{Tet10}}{\finleyelement{Tri9}}{\finleyelement{Tet10Face}}{\finleyelement{Tri9_Contact}}{\finleyelement{Tet10Face_Contact}}  \linev{\finleyelement{Tet10}}{\finleyelement{Tri9}}{\finleyelement{Tet10Face}}{\finleyelement{Tri9_Contact}}{\finleyelement{Tet10Face_Contact}}
137  \linev{\finleyelement{Hex8}}{\finleyelement{Rec4}}{\finleyelement{Hex8Face}}{\finleyelement{Rec4_Contact}}{\finleyelement{Hex8Face_Contact}}  \linev{\finleyelement{Hex8}}{\finleyelement{Rec4}}{\finleyelement{Hex8Face}}{\finleyelement{Rec4_Contact}}{\finleyelement{Hex8Face_Contact}}
138  \linev{\finleyelement{Hex20}}{\finleyelement{Rec8}}{\finleyelement{Hex20Face}}{\finleyelement{Rec8_Contact}}{\finleyelement{Hex20Face_Contact}}  \linev{\finleyelement{Hex20}}{\finleyelement{Rec8}}{\finleyelement{Hex20Face}}{\finleyelement{Rec8_Contact}}{\finleyelement{Hex20Face_Contact}}
139    \linev{\finleyelement{Hex27}}{\finleyelement{Rec9}}{N\textbackslash A}{N\textbackslash A}{N\textbackslash A}
140    \linev{\finleyelement{Hex27Macro}}{\finleyelement{Rec9Macro}}{N\textbackslash A}{N\textbackslash A}{N\textbackslash A}
141    \linev{\finleyelement{Tet10Macro}}{\finleyelement{Tri6Macro}}{N\textbackslash A}{N\textbackslash A}{N\textbackslash A}
142    \linev{\finleyelement{Rec9Macro}}{\finleyelement{Line3Macro}}{N\textbackslash A}{N\textbackslash A}{N\textbackslash A}
143    \linev{\finleyelement{Tri6Macro}}{\finleyelement{Line3Macro}}{N\textbackslash A}{N\textbackslash A}{N\textbackslash A}
144  \end{tablev}  \end{tablev}
145  \caption{Finley elements and corresponding elements to be used on domain faces and contacts.  \caption{Finley elements and corresponding elements to be used on domain faces and contacts.
146  The rich types have to be used if the gradient of function is to be calculated on faces and contacts, respectively.}  The rich types have to be used if the gradient of function is to be calculated on faces and contacts, respectively.}
# Line 254  $7$, $10$, $15$ and $20$, respectively. Line 262  $7$, $10$, $15$ and $20$, respectively.
262  \input{finleyelements}  \input{finleyelements}
263  \clearpage  \clearpage
264
265    \section{Macro Elements}
266    \label{SEC FINLEY MACRO}
267
268
269
270  \begin{table}  \begin{table}
271  {\scriptsize  {\scriptsize
# Line 447  Table~\ref{TAB FINLEY SOLVER OPTIONS 2} Line 459  Table~\ref{TAB FINLEY SOLVER OPTIONS 2}
459  \finley through the \PASO library. Currently direct solvers are not supported under MPI.  \finley through the \PASO library. Currently direct solvers are not supported under MPI.
460  By default, \finley is using the iterative solvers \PCG for symmetric and \BiCGStab for non-symmetric problems.  By default, \finley is using the iterative solvers \PCG for symmetric and \BiCGStab for non-symmetric problems.
461  If the direct solver is selected which can be useful when solving very ill-posedequations  If the direct solver is selected which can be useful when solving very ill-posedequations
462  \finley uses the \MKL solver package. If \MKL is not available \UMFPACK is used. If \UMFPACK is not available  \finley uses the \MKL \footnote{If the stiffness matrix is non-regular \MKL may return without
463    returning a proper error code. If you observe suspicious solutions when using MKL, this may cause by a non-invertible operator. } solver package. If \MKL is not available \UMFPACK is used. If \UMFPACK is not available
464  a suitable iterative solver from the \PASO is used.  a suitable iterative solver from the \PASO is used.
465
466  \subsection{Functions}  \subsection{Functions}
# Line 462  By default the labeling of mesh nodes an Line 475  By default the labeling of mesh nodes an
475  optimized. Set \var{optimize=False} to switch off relabeling and redistribution.  optimized. Set \var{optimize=False} to switch off relabeling and redistribution.
476  \end{funcdesc}  \end{funcdesc}
477
479  creates a \Domain object form the FEM mesh defined in  creates a \Domain object form the FEM mesh defined in
480  file \var{fileName}. The file must be given the \gmshextern file format.  file \var{fileName}. The file must be given the \gmshextern file format.
481  If \var{integrationOrder} is positive, a numerical integration scheme  If \var{integrationOrder} is positive, a numerical integration scheme
# Line 471  degree \var{integrationOrder} \index{int Line 484  degree \var{integrationOrder} \index{int
484  an appropriate integration order is chosen independently.  an appropriate integration order is chosen independently.
485  By default the labeling of mesh nodes and element distribution is  By default the labeling of mesh nodes and element distribution is
486  optimized. Set \var{optimize=False} to switch off relabeling and redistribution.  optimized. Set \var{optimize=False} to switch off relabeling and redistribution.
487    If \var{useMacroElements} is set, second order elements are interpreated as macro elements~\index{macro elements}.
488  Currently \function{ReadGmsh} does not support MPI.    Currently \function{ReadGmsh} does not support MPI.
489  \end{funcdesc}  \end{funcdesc}
490
491    \begin{funcdesc}{MakeDomain}{design\optional{, integrationOrder=-1\optional{, optimizeLabeling=True\optional{, useMacroElements=False}}}}
492    Creates a Finley \Domain from a \class{Design} object using \gmshextern.
493    The \class{Design} \var{design} defines the geometry.
494    If \var{integrationOrder} is positive, a numerical integration scheme
495    chosen which is accurate on each element up to a polynomial of
496    degree \var{integrationOrder} \index{integration order}. Otherwise
497    an appropriate integration order is chosen independently.
498    Set \var{optimizeLabeling=False} to switch off relabeling and redistribution (not recommended).
499    If \var{useMacroElements} is set, macro elements~\index{macro elements} are used.
500    Currently \function{MakeDomain} does not support MPI.
501    \end{funcdesc}
502
503
505  recovers a \Domain object from a dump file created by the \  recovers a \Domain object from a dump file created by the \
# Line 485  degree \var{integrationOrder} \index{int Line 511  degree \var{integrationOrder} \index{int
511  an appropriate integration order is chosen independently.  an appropriate integration order is chosen independently.
512  \end{funcdesc}  \end{funcdesc}
513
514
515  \begin{funcdesc}{Rectangle}{n0,n1,order=1,l0=1.,l1=1., integrationOrder=-1, \\  \begin{funcdesc}{Rectangle}{n0,n1,order=1,l0=1.,l1=1., integrationOrder=-1, \\
516    periodic0=\False,periodic1=\False,useElementsOnFace=\False,optimize=\False}    periodic0=\False, periodic1=\False, useElementsOnFace=\False, useMacroElements=\False, optimize=\False}
517  Generates a \Domain object representing a two dimensional rectangle between  Generates a \Domain object representing a two dimensional rectangle between
518  $(0,0)$ and $(l0,l1)$ with orthogonal edges. The rectangle is filled with  $(0,0)$ and $(l0,l1)$ with orthogonal edges. The rectangle is filled with
519  \var{n0} elements along the $x_0$-axis and  \var{n0} elements along the $x_0$-axis and
# Line 497  For \var{order}=1 and \var{order}=2 Line 524  For \var{order}=1 and \var{order}=2
524  In the case of \var{useElementsOnFace}=\False,  In the case of \var{useElementsOnFace}=\False,
525  \finleyelement{Line2} and    \finleyelement{Line2} and
526  \finleyelement{Line3} are used to subdivide the edges of the rectangle, respectively.  \finleyelement{Line3} are used to subdivide the edges of the rectangle, respectively.
527    If \var{order}=-1, \finleyelement{Rec8Macro} and \finleyelement{Line3Macro}~\index{macro elements}. This option should be used when solving incompressible fluid flow problem, e.g. \class{StokesProblemCartesian}.
528  In the case of \var{useElementsOnFace}=\True (this option should be used if gradients  In the case of \var{useElementsOnFace}=\True (this option should be used if gradients
529  are calculated on domain faces),  are calculated on domain faces),
530  \finleyelement{Rec4Face} and    \finleyelement{Rec4Face} and
# Line 515  If \var{optimize}=\True mesh node relabe Line 543  If \var{optimize}=\True mesh node relabe
543  \end{funcdesc}  \end{funcdesc}
544
545  \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, \\
546    periodic0=\False,periodic1=\False,periodic2=\False,useElementsOnFace=\False,useMacroElements=\False, optimize=\False}    periodic0=\False,periodic1=\False,periodic2=\False,useElementsOnFace=\False, useMacroElements=\False, optimize=\False}
547  Generates a \Domain object representing a three dimensional brick between  Generates a \Domain object representing a three dimensional brick between
548  $(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
549  \var{n0} elements along the $x_0$-axis,  \var{n0} elements along the $x_0$-axis,
# Line 531  In the case of \var{useElementsOnFace}=\ Line 559  In the case of \var{useElementsOnFace}=\
559  are calculated on domain faces),  are calculated on domain faces),
560  \finleyelement{Hex8Face} and    \finleyelement{Hex8Face} and
561  \finleyelement{Hex20Face} are used on the brick faces, respectively.    \finleyelement{Hex20Face} are used on the brick faces, respectively.
562    If \var{order}=-1, \finleyelement{Hex20Macro} and \finleyelement{Rec8Macro}~\index{macro elements}. This option should be used when solving incompressible fluid flow problem, e.g. \class{StokesProblemCartesian}.
563  If \var{integrationOrder} is positive, a numerical integration scheme  If \var{integrationOrder} is positive, a numerical integration scheme
564  chosen which is accurate on each element up to a polynomial of  chosen which is accurate on each element up to a polynomial of
565  degree \var{integrationOrder} \index{integration order}. Otherwise  degree \var{integrationOrder} \index{integration order}. Otherwise

Legend:
 Removed from v.2747 changed lines Added in v.2748