41 
dom = Rectangle(9, 9) 
dom = Rectangle(9, 9) 
42 
\end{python} 
\end{python} 
43 


44 

Multiresolution domains are supported in \ripley via use of \class{MultiBrick} 
45 

and \class{MultiRectangle}. Each level of one of 
46 

these domains has twice the elements in each axis of the next lower resolution. 
47 

The \class{MultiBrick} is not currently supported when running \escript with 
48 

multiple processes using \MPI. Interpolation between these multiresolution 
49 

domains is possible providing they have matching dimensions and subdivisions, 
50 

along with a compatible number of elements. To simplify these conditions the 
51 

use of \class{MultiResolutionDomain} is highly recommended. The following 
52 

example creates two 2D domains of different resolutions and interpolates 
53 

between them: 
54 


55 

\begin{python} 
56 

from esys.ripley import MultiResolutionDomain 
57 

mrd = MultiResolutionDomain(2, n0=10, n1=10) 
58 

ten_by_ten = mrd.getLevel(0) 
59 

data10 = Vector(..., Function(ten_by_ten)) 
60 

... 
61 

forty_by_forty = mrd.getLevel(2) 
62 

data40 = interpolate(data10, Function(forty_by_forty)) 
63 

\end{python} 
64 


65 
\section{Formulation} 
\section{Formulation} 
66 
For a single PDE that has a solution with a single component the linear PDE is 
For a single PDE that has a solution with a single component the linear PDE is 
67 
defined in the following form: 
defined in the following form: 
145 
bottomleft node is located at $(5.5, 9.0)$ and the topright node has 
bottomleft node is located at $(5.5, 9.0)$ and the topright node has 
146 
coordinates $(15.5, 14.0)$, see Figure~\ref{fig:ripleyrect}. 
coordinates $(15.5, 14.0)$, see Figure~\ref{fig:ripleyrect}. 
147 


148 

The \class{MultiResolutionDomain} class is available as a wrapper, taking the 
149 

dimension of the domain followed by the same arguments as \class{Brick} (if 
150 

a twodimensional domain is requested, any extra arguments over those used by 
151 

\class{Rectangle} are ignored). All of these standard arguments to 
152 

\class{MultiResolutionDomain} must be supplied as keyword arguments 
153 

(e.g. \var{d0}=...). The \class{MultiResolutionDomain} can then generate 
154 

compatible domains for interpolation. 
155 


156 
\section{Linear Solvers in \SolverOptions} 
\section{Linear Solvers in \SolverOptions} 
157 
Currently direct solvers and GPUbased solvers are not supported under \MPI 
Currently direct solvers and GPUbased solvers are not supported under \MPI 
158 
when running with more than one rank. 
when running with more than one rank. 
166 
nonregular \MKL may return without a proper error code. If you observe 
nonregular \MKL may return without a proper error code. If you observe 
167 
suspicious solutions when using \MKL, this may be caused by a noninvertible 
suspicious solutions when using \MKL, this may be caused by a noninvertible 
168 
operator.} solver package. If \MKL is not available \UMFPACK is used. 
operator.} solver package. If \MKL is not available \UMFPACK is used. 
169 
If \UMFPACK is not available a suitable iterative solver from \PASO is used. 
If \UMFPACK is not available a suitable iterative solver from \PASO is used, but 
170 

if a direct solver was requested via the \SolverOptions an exception will be 
171 

raised. 
172 


173 


174 

