Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Nektar
Nektar
Commits
1bbea9fa
Commit
1bbea9fa
authored
Sep 04, 2014
by
Chris Cantwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Precompiled package installation instructions
Passed through getting started section and ADRSolver docs.
parent
370bf399
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
856 additions
and
378 deletions
+856
-378
docs/user-guide/installation/installation.tex
docs/user-guide/installation/installation.tex
+6
-0
docs/user-guide/installation/precompiled.tex
docs/user-guide/installation/precompiled.tex
+5
-6
docs/user-guide/installation/source.tex
docs/user-guide/installation/source.tex
+172
-18
docs/user-guide/solvers/adr.tex
docs/user-guide/solvers/adr.tex
+250
-354
solvers/ADRSolver/Examples/Advection1D.xml
solvers/ADRSolver/Examples/Advection1D.xml
+96
-0
solvers/ADRSolver/Examples/Helmholtz2D_modal.xml
solvers/ADRSolver/Examples/Helmholtz2D_modal.xml
+327
-0
No files found.
docs/user-guide/installation/installation.tex
View file @
1bbea9fa
\chapter
{
Installation
}
Nektar++ is available in both a source-code distribution and a number of
pre-compiled binary packages for a number of operating systems. We recommend
using the pre-compiled packages if you wish to use existing Nektar++ solvers for
simulation and do not need to perform additional code development.
\input
{
precompiled
}
\input
{
source
}
docs/user-guide/installation/precompiled.tex
View file @
1bbea9fa
...
...
@@ -2,7 +2,7 @@
\label
{
s:installation:debian
}
Binary packages are available for current Debian/Ubuntu based Linux
distributions. These can be installed through the use of standard system package
management utilities such as Apt if administrative access is
management utilities
,
such as Apt
,
if administrative access is
available.
\begin{enumerate}
...
...
@@ -56,16 +56,15 @@ following contents
\begin{lstlisting}
[style=BashInputStyle]
[Nektar]
name=nektar
baseurl=<baseurl>
\end{lstlisting}
Add a line specifying the
\inlsh
{
baseurl
}
, depending on the version of your
distribution:
substituting
\inlsh
{
<baseurl>
}
for the appropriate line from the table below.
{
\small
\begin{center}
\begin{tabular}
{
ll
}
\toprule
Distribution
&
baseurl
\\
Distribution
&
\inlsh
{
<
baseurl
>
}
\\
\midrule
Fedora 20
&
\texttt
{
http://ww.nektar.info/fedora/20/
\$
basearch
}
\\
...
...
@@ -75,7 +74,7 @@ Fedora 20 &
}
\begin{notebox}
The
\inltt
{
\$
basearch
}
variable is
replaced
automatically by Yum with
The
\inltt
{
\$
basearch
}
variable is automatically
replaced
by Yum with
the architecture of your system.
\end{notebox}
...
...
docs/user-guide/installation/source.tex
View file @
1bbea9fa
\section
{
Installing from Source
}
\label
{
s:installation:source
}
This section explains how to build Nektar++ from the source-code package. We
recommend using pre-built binaries for your distribution, if available. See
Sections~
\ref
{
s:installation:debian
}
-
\ref
{
s:installation:osx
}
.
This section explains how to build Nektar++ from the source-code package.
Nektar++ uses a number of third-party libraries. Some of these are required,
others are optional. It is generally more straightforward to use
versions of these libraries supplied pre-packaged for your operating system,
but if you run into difficulties with compilation errors or failing regression tests, the Nektar++
build system can automatically build tried and tested versions of these
libraries for you. This requires enabling the relevant options
in the CMake configuration.
% \begin{custombox}{Warning}{\bcdanger}{red}
% Don't do this.
% \end{custombox}
others are optional. It is generally more straightforward to use versions of
these libraries supplied pre-packaged for your operating system, but if you run
into difficulties with compilation errors or failing regression tests, the
Nektar++ build system can automatically build tried-and-tested versions of these
libraries for you. This requires enabling the relevant options in the CMake
configuration.
\subsection
{
Obtaining the source code
}
...
...
@@ -26,9 +20,9 @@ There are two ways to obtain the source code for \nekpp:
\item
Clone the git repository
\begin{itemize}
\item
Using anonymous access. This does not require
credentials but any changes to the code cannot be pushed to the
repository. Use
this if you would like to try using Nektar++ and do not intend to be an active
developer
.
credentials but any changes to the code cannot be pushed to the
public repository. Use this initially if you would like to try using
Nektar++
.
\begin{lstlisting}
[style=BashInputStyle]
git clone http://gitlab.nektar.info/clone/nektar.git nektar++
\end{lstlisting}
...
...
@@ -37,6 +31,10 @@ There are two ways to obtain the source code for \nekpp:
\begin{lstlisting}
[style=BashInputStyle]
git clone git@gitlab.nektar.info:nektar.git nektar++
\end{lstlisting}
\begin{tipbox}
You can easily switch to using the authenticated access from anonymous
access at a later date.
\end{tipbox}
\end{itemize}
\end{itemize}
...
...
@@ -46,7 +44,7 @@ There are two ways to obtain the source code for \nekpp:
\begin{itemize}
\item
CMake
\item
BLAS and LAPACK
\item
M
odern C++ compiler: g++, icpc, etc
\item
A m
odern C++ compiler: g++, icpc, etc
\end{itemize}
This software should be available through your Linux distribution.
...
...
@@ -267,7 +265,163 @@ From a terminal (Applications->Utilities->Terminal):
\subsection
{
Windows
}
3.4/UserGuide/Compile/Windows
The following software must be pre-installed on your system:
\begin{itemize}
\item
Microsoft Visual Studio 2008
\begin{itemize}
\item
Visual Studio 2008 Service Pack 1 is required
\end{itemize}
\item
Python Compiler 2.7.2+ (download from
\url
{
http://www.http//python.org/download/
}
)
\item
CMake 2.8.7+ (download from
\url
{
http://www.cmake.org/HTML/index.html
}
)
\begin{itemize}
\item
When prompted, select the option to add CMake to the system PATH.
\end{itemize}
\item
WinRAR (download from
\url
{
http://www.rarlab.com/download.htm
}
)
\end{itemize}
\newcommand
{
\nekver
}{
\input
{
../../VERSION
}}
\subsubsection
{
Unpack the tarballs
}
\begin{itemize}
\item
Unpack the
\inlsh
{
nektar++-
\nekver
.tar.gz
}
file using
WinRAR
\item
Unpack the
\inlsh
{
ThirdParty-
\nekver
.tar.gz
}
file using WinRAR
\item
Rename the resulting directory to
\inlsh
{
ThirdParty
}
and put it in
\inlsh
{
nektar++-
\nekver
}
. (This will mean
\inlsh
{
library
}
and
\inlsh
{
ThirdParty
}
are both sub-directories of the original
\inlsh
{
nektar++-
\nekver
}
.) Note: Some windows version do not
recognise the path of a folder which has '++' in the name. If you think that
your windows version can not handle path containing special characters, you
should rename
\inlsh
{
nektar++-
\nekver
}
to
\inlsh
{
nektar-
\nekver
}
.
\end{itemize}
\subsubsection
{
Building ThirdParty libraries
}
\begin{itemize}
\item
\textbf
{
TinyXML
}
Extract the
\inlsh
{
tinyxml
\_
2
\_
4
\_
3.zip
}
archive into
the ThirdParty directory using WinRAR. This will create a
\inlsh
{
tinyxml
}
sub-directory.
\item
\textbf
{
Loki
}
Extract the
\inlsh
{
loki-0.1.3.tar.bz2
}
archive into the
ThirdParty directory using WinRAR. This will create a
\inlsh
{
loki-0.1.3
}
sub-directory.
\item
\textbf
{
Mod-METIS
}
Extract the
\inlsh
{
modmetis-4.0.tar.bz2
}
archive
into the ThirdParty directory using WinRAR. This will create a
\inlsh
{
modmetis-4.0
}
sub-directory.
\begin{itemize}
\item
Open a command-line terminal and change to
\inlsh
{
ThirdParty
\textbackslash
modmetis-4.0
\textbackslash
build
}
.
\item
Run
\begin{lstlisting}
[style=BashInputStyle]
cmake ..
\
vcbuild "ModifiedMetis.sln"
vcbuild "INSTALL.vcproj"
\end{lstlisting}
\end{itemize}
\item
\textbf
{
NIST SparseBLAS
}
Extract the
\inlsh
{
spblastk0.9b
}
archive
into the ThirdParty directory using WinRAR. This will create a
\inlsh
{
spblastk0.9b
}
sub-directory.
\begin{itemize}
\item
From a command-line terminal change to
\inlsh
{
ThirdParty
\textbackslash
spblastk0.9b
\textbackslash
build
}
.
\item
Run
\begin{lstlisting}
[style=BashInputStyle]
cmake ..
\
vcbuild "NistSparseBlasToolkit.sln"
vcbuild "INSTALL.vcproj"
\end{lstlisting}
\end{itemize}
\item
\textbf
{
BLAS/LAPACK
}
Extract the
\inlsh
{
blaslapack-dll.zip
}
archive
into the ThirdParty directory using WinRAR. This will create
\inlsh
{
blas
\_
win32.*
}
and
\inlsh
{
lapack
\_
win32.*
}
files in the ThirdParty
directory.
\item
\textbf
{
ZLib
}
Extract the
\inlsh
{
zlib-1.2.3.tar.bz2
}
archive using
WinRAR. This will create a
\inlsh
{
zlib-1.2.3
}
sub-directory.
\item
\textbf
{
Boost
}
Extract the
\inlsh
{
boost
\_
1
\_
49
\_
0.tar.bz2
}
archive using
WinRAR. This will create a
{{{
boost
\_
1
\_
49
\_
0
}}}
sub-directory.
\begin{itemize}
\item
Open a command-line terminal and change to the
\inlsh
{
boost
\_
1
\_
49
\_
0
}
directory and run:
\begin{lstlisting}
[style=BashInputStyle]
bootstrap.bat
b2.exe -s ZLIB
_
SOURCE=..
\.
.
\.
.
\.
.
\zlib
-1.2.3
\
--prefix=..
\boost
toolset=msvc-9.0 install
\end{lstlisting}
\end{itemize}
\begin{notebox}
Boost might not be able to find the
\inlsh
{
zlib-1.2.3
}
directory specified
by the relative path in the command line above. If this happens, you can
replace the relative path with the absolute path of the
\inlsh
{
zlib-1.2.3
}
directory (surround it in quotes).
\end{notebox}
\end{itemize}
\subsubsection
{
Building Nektar++
}
Change to the
\inlsh
{
nektar++-
\nekver\textbackslash
builds
}
directory.
\begin{lstlisting}
[style=BashInputStyle]
cmake ..
\
vcbuild "Nektar++.sln"
vcbuild "INSTALL.vcproj"
\end{lstlisting}
To modify the default configuration use
\inlsh
{
cmake -i ..
\textbackslash
}
or use
the CMake-gui application.
\subsubsection
{
Notes on building on windows 7 64 bit with Visual Studio 10
}
To get a build working on a windows 7 64 bit machine with VS10, the following
modifications were helpful or necessary:
\begin{itemize}
\item
Instead of vcbuild (which doesn't exist in VS10) use msbuild.
\item
You may need to run
\\
\inlsh
{
C:
\textbackslash
Program Files
(x86)
\textbackslash
Microsoft Visual Studio 10.0
\textbackslash
VC
\textbackslash
vcvarsall.bat
}
\\
first to set up some registry entries to run
msbuild.
Try without first.
\item
You will probably wish to put msbuild into your path
\item
project files created by cmake are likely to have the extension .vcxproj
rather than .vcproj.
\item
When running b2.exe, provide the full path to zlib. Not doing so will only
cause an error later when running cmake for Nektar++
\item
When running b2.exe, use toolset=msvc-10.0 instead of toolset=msvc-9.0
\item
When using cmake for nektar++, it is helpful to use the cmake gui
\item
Using the cmake gui, set the BOOST
\_
ROOT variable to the appropriate path
for boost * Set Boost
\_
USE
\_
STATIC
\_
LIBS = ON (I did this by editing
CMakeLists.txt, but setting it from the gui should work)
\item
When running msbuild "Nektar++.sln" I got error can't find zlib.lib. As a
workaround, copy the files zlibd.lib (two of them) and rename the copies zlib.lib.
However, I believe these are the debug builds, so it would be better to work
out how to build in release mode.
\item
At this stage, when running msbuild "Nektar++.sln", I got boost link
errors.
To fix them, look for the line
\begin{lstlisting}
[style=BashInputStyle]
ADD
_
DEFINITIONS(-DBOOST
_
ALL
_
NO
_
LIB -DBOOST
_
PROGRAM
_
OPTIONS
_
DYN
_
LINK
\
-DBOOST
_
IOSTREAMS
_
DYN
_
LINK -DBOOST
_
THREAD
_
DYN
_
LINK)
\end{lstlisting}
in the
\inlsh
{
CMakeLists.txt
}
file and comment it out (and run cmake again)
\item
At this point, when building Nektar, linking against boost is fine, but I
got a compile error in TestData.cpp. This could be fixed by editing TestData.cpp
and replacing the line
\begin{lstlisting}
m
_
doc = new TiXmlDocument(pFilename.file
_
string().c
_
str());
\end{lstlisting}
with
\begin{lstlisting}
m
_
doc =new TiXmlDocument(pFilename.string().c
_
str());
\end{lstlisting}
\end{itemize}
\begin{notebox}
The step of building INSTALL.vcproj causes executables and dlls to be copied
into a directory
\inlsh
{
<path>
\textbackslash
nektar
\textbackslash
builds-test
\textbackslash
dist
\textbackslash
bin
}
.
The executables should be run from here so that they can find the dlls they need.
\end{notebox}
If you wish to put a breakpoint in to step through Nektar++, you may need to run
from the folder the executable was built in so that the pdb files are in the
expected place. Then a workaround is to copy the dlls into that folder.
\subsection
{
CMake Option Reference
}
\label
{
s:installation:source:cmake
}
...
...
docs/user-guide/solvers/adr.tex
View file @
1bbea9fa
This diff is collapsed.
Click to expand it.
solvers/ADRSolver/Examples/Advection1D.xml
0 → 100644
View file @
1bbea9fa
<?xml version="1.0" encoding="UTF-8"?>
<NEKTAR>
<GEOMETRY
DIM=
"1"
SPACE=
"1"
>
<VERTEX>
<V
ID=
"0"
>
-1.0 0.0 0.0
</V>
<V
ID=
"1"
>
-0.8 0.0 0.0
</V>
<V
ID=
"2"
>
-0.6 0.0 0.0
</V>
<V
ID=
"3"
>
-0.4 0.0 0.0
</V>
<V
ID=
"4"
>
-0.2 0.0 0.0
</V>
<V
ID=
"5"
>
0.0 0.0 0.0
</V>
<V
ID=
"6"
>
0.2 0.0 0.0
</V>
<V
ID=
"7"
>
0.4 0.0 0.0
</V>
<V
ID=
"8"
>
0.6 0.0 0.0
</V>
<V
ID=
"9"
>
0.8 0.0 0.0
</V>
<V
ID=
"10"
>
1.0 0.0 0.0
</V>
</VERTEX>
<ELEMENT>
<S
ID=
"0"
>
0 1
</S>
<S
ID=
"1"
>
1 2
</S>
<S
ID=
"2"
>
2 3
</S>
<S
ID=
"3"
>
3 4
</S>
<S
ID=
"4"
>
4 5
</S>
<S
ID=
"5"
>
5 6
</S>
<S
ID=
"6"
>
6 7
</S>
<S
ID=
"7"
>
7 8
</S>
<S
ID=
"8"
>
8 9
</S>
<S
ID=
"9"
>
9 10
</S>
</ELEMENT>
<COMPOSITE>
<C
ID=
"0"
>
S[0-9]
</C>
<C
ID=
"1"
>
V[0]
</C>
<C
ID=
"2"
>
V[10]
</C>
</COMPOSITE>
<DOMAIN>
C[0]
</DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E
COMPOSITE=
"C[0]"
FIELDS=
"u"
TYPE=
"GLL_LAGRANGE_SEM"
NUMMODES=
"4"
/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P>
FinTime = 20
</P>
<P>
TimeStep = 0.01
</P>
<P>
NumSteps = FinTime/TimeStep
</P>
<P>
IO_CheckSteps = 100000
</P>
<P>
IO_InfoSteps = 100000
</P>
<P>
advx = 1
</P>
<P>
advy = 0
</P>
</PARAMETERS>
<SOLVERINFO>
<I
PROPERTY=
"EQTYPE"
VALUE=
"UnsteadyAdvection"
/>
<I
PROPERTY=
"Projection"
VALUE=
"DisContinuous"
/>
<I
PROPERTY=
"AdvectionType"
VALUE=
"FRDG"
/>
<I
PROPERTY=
"UpwindType"
VALUE=
"Upwind"
/>
<I
PROPERTY=
"TimeIntegrationMethod"
VALUE=
"ClassicalRungeKutta4"
/>
</SOLVERINFO>
<VARIABLES>
<V
ID=
"0"
>
u
</V>
</VARIABLES>
<BOUNDARYREGIONS>
<B
ID=
"0"
>
C[1]
</B>
<B
ID=
"1"
>
C[2]
</B>
</BOUNDARYREGIONS>
<BOUNDARYCONDITIONS>
<REGION
REF=
"0"
>
<P
VAR=
"u"
VALUE=
"[1]"
/>
</REGION>
<REGION
REF=
"1"
>
<P
VAR=
"u"
VALUE=
"[0]"
/>
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION
NAME=
"AdvectionVelocity"
>
<E
VAR=
"Vx"
VALUE=
"advx"
/>
</FUNCTION>
<FUNCTION
NAME=
"InitialConditions"
>
<E
VAR=
"u"
VALUE=
"exp(-20.0*x*x)"
/>
</FUNCTION>
<FUNCTION
NAME=
"ExactSolution"
>
<E
VAR=
"u"
VALUE=
"exp(-20.0*x*x)"
/>
</FUNCTION>
</CONDITIONS>
</NEKTAR>
\ No newline at end of file
solvers/ADRSolver/Examples/Helmholtz2D_modal.xml
0 → 100644
View file @
1bbea9fa
<?xml version="1.0" encoding="utf-8"?>
<NEKTAR
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://www.nektar.info/schema/nektar.xsd"
>
<GEOMETRY
DIM=
"2"
SPACE=
"2"
>
<VERTEX>
<V
ID=
"0"
>
-1.000000000000000 3.500000000000000 0.0
</V>
<V
ID=
"1"
>
-1.000000000000000 0.500000000000000 0.0
</V>
<V
ID=
"2"
>
-1.000000000000000 2.500000000000000 0.0
</V>
<V
ID=
"3"
>
-1.000000000000000 1.500000000000000 0.0
</V>
<V
ID=
"4"
>
3.800000000000000 4.500000000000000 0.0
</V>
<V
ID=
"5"
>
0.200000000000000 4.500000000000000 0.0
</V>
<V
ID=
"6"
>
2.900000000000000 4.500000000000000 0.0
</V>
<V
ID=
"7"
>
2.000000000000000 4.500000000000000 0.0
</V>
<V
ID=
"8"
>
1.100000000000000 4.500000000000000 0.0
</V>
<V
ID=
"9"
>
5.000000000000000 0.500000000000000 0.0
</V>
<V
ID=
"10"
>
5.000000000000000 3.500000000000000 0.0
</V>
<V
ID=
"11"
>
5.000000000000000 1.500000000000000 0.0
</V>
<V
ID=
"12"
>
5.000000000000000 2.500000000000000 0.0
</V>
<V
ID=
"13"
>
0.200000000000000 -0.500000000000000 0.0
</V>
<V
ID=
"14"
>
3.800000000000000 -0.500000000000000 0.0
</V>
<V
ID=
"15"
>
1.100000000000000 -0.500000000000000 0.0
</V>
<V
ID=
"16"
>
2.000000000000000 -0.500000000000000 0.0
</V>
<V
ID=
"17"
>
2.900000000000000 -0.500000000000000 0.0
</V>
<V
ID=
"18"
>
-0.400000000000000 4.000000000000000 0.0
</V>
<V
ID=
"19"
>
4.400000000000000 4.000000000000000 0.0
</V>
<V
ID=
"20"
>
4.400000000000000 0.0 0.0
</V>
<V
ID=
"21"
>
-0.400000000000000 0.0 0.0
</V>
<V
ID=
"22"
>
-0.040000000000000 2.700000000000000 0.0
</V>
<V
ID=
"23"
>
0.920000000000000 1.900000000000000 0.0
</V>
<V
ID=
"24"
>
1.880000000000000 1.100000000000000 0.0
</V>
<V
ID=
"25"
>
2.840000000000000 0.300000000000000 0.0
</V>
<V
ID=
"26"
>
-0.119314370713000 1.785562178050000 0.0
</V>
<V
ID=
"27"
>
1.713659159880000 0.169773145192000 0.0
</V>
<V
ID=
"28"
>
0.677713625957000 1.180143861910000 0.0
</V>
<V
ID=
"29"
>
-0.188491169544000 0.869785275722000 0.0
</V>
<V
ID=
"30"
>
0.715978655871000 0.336366878402000 0.0
</V>
<V
ID=
"31"
>
3.289084972900000 0.882472796343000 0.0
</V>
<V
ID=
"32"
>
3.682080702820000 1.501561993610000 0.0
</V>
<V
ID=
"33"
>
3.972007805980000 2.179240079990000 0.0
</V>
<V
ID=
"34"
>
4.218223358320000 2.817871076440000 0.0
</V>
<V
ID=
"35"
>
4.379282019760000 3.315489806910000 0.0
</V>
<V
ID=
"36"
>
3.668892462910000 3.970508359810000 0.0
</V>
<V
ID=
"37"
>
3.155413025260000 3.802413365130000 0.0
</V>
<V
ID=
"38"
>
2.269709494930000 3.615953163480000 0.0
</V>
<V
ID=
"39"
>
1.341308209110000 3.906056835480000 0.0
</V>
<V
ID=
"40"
>
0.934565531168000 3.565834210030000 0.0
</V>
<V
ID=
"41"
>
0.461690231830000 3.150972034220000 0.0
</V>
<V
ID=
"42"
>
1.383772742880000 2.431995597660000 0.0
</V>
<V
ID=
"43"
>
2.324656705230000 1.661732140030000 0.0
</V>
<V
ID=
"44"
>
3.642425028600000 3.246403386770000 0.0
</V>
<V
ID=
"45"
>
4.022057777820000 3.634175940310000 0.0
</V>
<V
ID=
"46"
>
1.833157069900000 2.985307743670000 0.0
</V>
<V
ID=
"47"
>
2.755342831120000 2.226765404480000 0.0
</V>
<V
ID=
"48"
>
3.179196984040000 2.779077508740000 0.0
</V>
</VERTEX>
<EDGE>
<E
ID=
"0"
>
1 21
</E>
<E
ID=
"1"
>
13 21
</E>
<E
ID=
"2"
>
13 15
</E>
<E
ID=
"3"
>
15 16
</E>
<E
ID=
"4"
>
16 17
</E>
<E
ID=
"5"
>
14 17
</E>
<E
ID=
"6"
>
1 3
</E>
<E
ID=
"7"
>
1 29
</E>
<E
ID=
"8"
>
21 29
</E>
<E
ID=
"9"
>
21 30
</E>
<E
ID=
"10"
>
13 30
</E>
<E
ID=
"11"
>
15 30
</E>
<E
ID=
"12"
>
15 27
</E>
<E
ID=
"13"
>
16 27
</E>
<E
ID=
"14"
>
16 25
</E>
<E
ID=
"15"
>
17 25
</E>
<E
ID=
"16"
>
3 29
</E>
<E
ID=
"17"
>
29 30
</E>
<E
ID=
"18"
>
27 30
</E>
<E
ID=
"19"
>
25 27
</E>
<E
ID=
"20"
>
2 3
</E>
<E
ID=
"21"
>
3 26
</E>
<E
ID=
"22"
>
26 29
</E>
<E
ID=
"23"
>
28 29
</E>
<E
ID=
"24"
>
28 30
</E>
<E
ID=
"25"
>
24 30
</E>
<E
ID=
"26"
>
24 27
</E>
<E
ID=
"27"
>
2 26
</E>
<E
ID=
"28"
>
26 28
</E>
<E
ID=
"29"
>
24 28
</E>
<E
ID=
"30"
>
0 2
</E>
<E
ID=
"31"
>
2 22
</E>
<E
ID=
"32"
>
22 26
</E>
<E
ID=
"33"
>
23 26
</E>
<E
ID=
"34"
>
23 28
</E>
<E
ID=
"35"
>
0 22
</E>
<E
ID=
"36"
>
22 23
</E>
<E
ID=
"37"
>
23 24
</E>
<E
ID=
"38"
>
24 25
</E>
<E
ID=
"39"
>
14 25
</E>
<E
ID=
"40"
>
0 18
</E>
<E
ID=
"41"
>
22 41
</E>
<E
ID=
"42"
>
23 42
</E>
<E
ID=
"43"
>
24 43
</E>
<E
ID=
"44"
>
25 31
</E>
<E
ID=
"45"
>
14 20
</E>
<E
ID=
"46"
>
18 41
</E>
<E
ID=
"47"
>
41 42
</E>
<E
ID=
"48"
>
42 43
</E>
<E
ID=
"49"
>
31 43
</E>
<E
ID=
"50"
>
20 31
</E>
<E
ID=
"51"
>
5 18
</E>
<E
ID=
"52"
>
40 41
</E>
<E
ID=
"53"
>
42 46
</E>
<E
ID=
"54"
>
43 47
</E>
<E
ID=
"55"
>
31 32
</E>
<E
ID=
"56"
>
9 20
</E>
<E
ID=
"57"
>
5 40
</E>
<E
ID=
"58"
>
40 46
</E>
<E
ID=
"59"
>
46 47
</E>
<E
ID=
"60"
>
32 47
</E>
<E
ID=
"61"
>
9 32
</E>
<E
ID=
"62"
>
5 8
</E>
<E
ID=
"63"
>
39 40
</E>
<E
ID=
"64"
>
38 46
</E>
<E
ID=
"65"
>
47 48
</E>
<E
ID=
"66"
>
32 33
</E>
<E
ID=
"67"
>
9 11
</E>
<E
ID=
"68"
>
8 39
</E>
<E
ID=
"69"
>
7 8
</E>
<E
ID=
"70"
>
38 39
</E>
<E
ID=
"71"
>
7 38
</E>
<E
ID=
"72"
>
38 48
</E>
<E
ID=
"73"
>
33 48
</E>
<E
ID=
"74"
>
11 33
</E>
<E
ID=
"75"
>
6 7
</E>
<E
ID=
"76"
>
37 38
</E>
<E
ID=
"77"
>
44 48
</E>
<E
ID=
"78"
>
33 34
</E>
<E
ID=
"79"
>
11 12
</E>
<E
ID=
"80"
>
6 37
</E>
<E
ID=
"81"
>
37 44
</E>
<E
ID=
"82"
>
34 44
</E>
<E
ID=
"83"
>
12 34
</E>
<E
ID=
"84"
>
4 6
</E>
<E
ID=
"85"
>
36 37
</E>
<E
ID=
"86"
>
44 45
</E>
<E
ID=
"87"
>
34 35
</E>
<E
ID=
"88"
>
10 12
</E>
<E
ID=
"89"
>
4 36
</E>
<E
ID=
"90"
>
36 45
</E>
<E
ID=
"91"
>
35 45
</E>
<E
ID=
"92"
>
10 35
</E>
<E
ID=
"93"
>
19 45
</E>
<E
ID=
"94"
>
4 19
</E>
<E
ID=
"95"
>
10 19
</E>
</EDGE>
<ELEMENT>
<T
ID=
"0"
>
6 7 16
</T>
<T
ID=
"1"
>
0 8 7
</T>
<T
ID=
"2"
>
9 17 8
</T>
<T
ID=
"3"
>
1 10 9
</T>
<T
ID=
"4"
>
2 11 10
</T>
<T
ID=
"5"
>
11 12 18
</T>
<T
ID=
"6"
>
3 13 12
</T>
<T
ID=
"7"
>
14 19 13
</T>
<T
ID=
"8"
>
4 15 14
</T>
<T
ID=
"9"
>
5 39 15
</T>
<T
ID=
"10"
>
21 27 20
</T>
<T
ID=
"11"
>
16 22 21
</T>
<T
ID=
"12"
>
23 28 22
</T>
<T
ID=
"13"
>
17 24 23
</T>
<T
ID=
"14"
>
24 25 29
</T>
<T
ID=
"15"
>
18 26 25
</T>
<T
ID=
"16"
>
19 38 26
</T>
<T
ID=
"17"
>
30 31 35
</T>
<T
ID=
"18"
>
27 32 31
</T>
<T
ID=
"19"
>
32 33 36
</T>
<T
ID=
"20"
>
28 34 33
</T>
<T
ID=
"21"
>
29 37 34
</T>
<Q
ID=
"22"
>
35 41 46 40
</Q>
<Q
ID=
"23"
>
36 42 47 41
</Q>
<Q
ID=
"24"
>
37 43 48 42
</Q>
<Q
ID=
"25"
>
38 44 49 43
</Q>
<Q
ID=
"26"
>
39 45 50 44
</Q>
<Q
ID=
"27"
>
46 52 57 51
</Q>
<Q
ID=
"28"
>
47 53 58 52
</Q>
<Q
ID=
"29"
>
48 54 59 53
</Q>
<Q
ID=
"30"
>
49 55 60 54
</Q>
<Q
ID=
"31"
>
50 56 61 55
</Q>
<Q
ID=
"32"
>
57 63 68 62
</Q>
<Q
ID=
"33"
>
58 64 70 63
</Q>
<Q
ID=
"34"
>
59 65 72 64
</Q>
<Q
ID=
"35"
>
60 66 73 65
</Q>
<Q
ID=
"36"
>
61 67 74 66
</Q>
<Q
ID=
"37"
>
68 70 71 69
</Q>
<Q
ID=
"38"
>
71 76 80 75
</Q>
<Q
ID=
"39"
>
72 77 81 76
</Q>
<Q
ID=
"40"
>
73 78 82 77
</Q>
<Q
ID=
"41"
>
74 79 83 78
</Q>
<Q
ID=
"42"
>
80 85 89 84
</Q>
<Q
ID=
"43"
>
81 86 90 85
</Q>
<Q
ID=
"44"
>
82 87 91 86
</Q>
<Q
ID=
"45"
>
83 88 92 87
</Q>
<Q
ID=
"46"
>
89 90 93 94
</Q>
<Q
ID=
"47"
>
91 92 95 93
</Q>
</ELEMENT>
<COMPOSITE>
<C
ID=
"0"
>
Q[22-47]
</C>
<C
ID=
"1"
>
T[0-21]
</C>
<C
ID=
"2"
>
E[0-1]
</C>
<C
ID=
"3"
>
E[2-5]
</C>
<C
ID=
"4"
>
E[45]
</C>
<C
ID=
"5"
>
E[56]
</C>
<C
ID=
"6"
>
E[67]
</C>
<C
ID=
"7"
>
E[79]
</C>
<C
ID=
"8"
>
E[88]
</C>
<C
ID=
"9"
>
E[94-95]
</C>
<C
ID=
"10"
>
E[84,75,69,62,51,40,30,20,6]
</C>
</COMPOSITE>
<DOMAIN>
C[0-1]
</DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E
COMPOSITE=
"C[0]"
NUMMODES=
"7"
FIELDS=
"u"
TYPE=
"MODIFIED"
/>
<E
COMPOSITE=
"C[1]"
NUMMODES=
"7"
FIELDS=
"u"
TYPE=
"MODIFIED"
/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>