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
5b1f43de
Commit
5b1f43de
authored
Jan 08, 2016
by
Michael Turner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
edit user doc
parent
bfc91090
Changes
40
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
1227 additions
and
1219 deletions
+1227
-1219
docs/user-guide/faq/faq.tex
docs/user-guide/faq/faq.tex
+3
-3
docs/user-guide/installation/source.tex
docs/user-guide/installation/source.tex
+57
-58
docs/user-guide/utilities/fieldconvert.tex
docs/user-guide/utilities/fieldconvert.tex
+138
-138
docs/user-guide/utilities/nekmesh.tex
docs/user-guide/utilities/nekmesh.tex
+34
-25
docs/user-guide/utilities/utilities.tex
docs/user-guide/utilities/utilities.tex
+1
-1
docs/user-guide/xml/xml.tex
docs/user-guide/xml/xml.tex
+2
-2
library/NekMeshUtils/ExtLibInterface/TriangleInterface.h
library/NekMeshUtils/ExtLibInterface/TriangleInterface.h
+1
-1
pkg/CMakeLists.txt
pkg/CMakeLists.txt
+12
-12
solvers/VortexWaveInteraction/utilities/MeshMove.cpp
solvers/VortexWaveInteraction/utilities/MeshMove.cpp
+920
-920
utilities/FieldConvert/Module.h
utilities/FieldConvert/Module.h
+2
-2
utilities/NekMesh/InputModules/InputCAD.h
utilities/NekMesh/InputModules/InputCAD.h
+2
-2
utilities/NekMesh/InputModules/InputGmsh.cpp
utilities/NekMesh/InputModules/InputGmsh.cpp
+1
-1
utilities/NekMesh/InputModules/InputGmsh.h
utilities/NekMesh/InputModules/InputGmsh.h
+2
-2
utilities/NekMesh/InputModules/InputNek.h
utilities/NekMesh/InputModules/InputNek.h
+2
-2
utilities/NekMesh/InputModules/InputNekpp.h
utilities/NekMesh/InputModules/InputNekpp.h
+2
-2
utilities/NekMesh/InputModules/InputPly.h
utilities/NekMesh/InputModules/InputPly.h
+2
-2
utilities/NekMesh/InputModules/InputSem.h
utilities/NekMesh/InputModules/InputSem.h
+2
-2
utilities/NekMesh/InputModules/InputStar.h
utilities/NekMesh/InputModules/InputStar.h
+2
-2
utilities/NekMesh/InputModules/InputStarTec.h
utilities/NekMesh/InputModules/InputStarTec.h
+2
-2
utilities/NekMesh/InputModules/InputSwan.h
utilities/NekMesh/InputModules/InputSwan.h
+2
-2
utilities/NekMesh/InputModules/InputVtk.h
utilities/NekMesh/InputModules/InputVtk.h
+2
-2
utilities/NekMesh/Module.h
utilities/NekMesh/Module.h
+2
-2
utilities/NekMesh/NekMesh.cpp
utilities/NekMesh/NekMesh.cpp
+2
-2
utilities/NekMesh/OutputModules/OutputGmsh.h
utilities/NekMesh/OutputModules/OutputGmsh.h
+2
-2
utilities/NekMesh/OutputModules/OutputNekpp.h
utilities/NekMesh/OutputModules/OutputNekpp.h
+2
-2
utilities/NekMesh/OutputModules/OutputVtk.h
utilities/NekMesh/OutputModules/OutputVtk.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessBL.h
utilities/NekMesh/ProcessModules/ProcessBL.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessCyl.h
utilities/NekMesh/ProcessModules/ProcessCyl.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessDetectSurf.h
utilities/NekMesh/ProcessModules/ProcessDetectSurf.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessExtractSurf.h
utilities/NekMesh/ProcessModules/ProcessExtractSurf.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessExtractTetPrismInterface.h
.../NekMesh/ProcessModules/ProcessExtractTetPrismInterface.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessJac.h
utilities/NekMesh/ProcessModules/ProcessJac.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessLinear.h
utilities/NekMesh/ProcessModules/ProcessLinear.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessOptiExtract.h
utilities/NekMesh/ProcessModules/ProcessOptiExtract.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessPerAlign.h
utilities/NekMesh/ProcessModules/ProcessPerAlign.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessScalar.h
utilities/NekMesh/ProcessModules/ProcessScalar.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessSpherigon.h
utilities/NekMesh/ProcessModules/ProcessSpherigon.h
+2
-2
utilities/NekMesh/ProcessModules/ProcessTetSplit.h
utilities/NekMesh/ProcessModules/ProcessTetSplit.h
+2
-2
utilities/NekMesh/Tests/StarTec/CubePer.tst
utilities/NekMesh/Tests/StarTec/CubePer.tst
+1
-1
utilities/NekMesh/Tests/StarTec/StraightRW.tst
utilities/NekMesh/Tests/StarTec/StraightRW.tst
+1
-1
No files found.
docs/user-guide/faq/faq.tex
View file @
5b1f43de
...
...
@@ -87,11 +87,11 @@ should be used.
Nektar
++
supports a number of mesh input formats. These are converted to the
Nektar
++
native XML format
(
see Section~
\ref
{
s:xml
}
)
using the
Mesh
Convert
utility
(
see Section~
\ref
{
s:utilities:mesh
convert
}
. Supported
Nek
Mesh utility
(
see Section~
\ref
{
s:utilities:
nek
mesh
}
. Supported
formats include:
\begin
{
itemize
}
\item
Gmsh
(
.msh
)
\item
Gmsh
(
.msh
)
\item
Polygon
(
.ply
)
\item
Nektar
(
.rea
)
\item
Nektar
(
.rea
)
\item
Semtex
(
.sem
)
\end
{
itemize
}
docs/user-guide/installation/source.tex
View file @
5b1f43de
...
...
@@ -21,7 +21,7 @@ There are two ways to obtain the source code for \nekpp:
\begin{itemize}
\item
Using anonymous access. This does not require
credentials but any changes to the code cannot be pushed to the
public repository. Use this initially if you would like to try using
public repository. Use this initially if you would like to try using
Nektar++ or make local changes to the code.
\begin{lstlisting}
[style=BashInputStyle]
git clone http://gitlab.nektar.info/clone/nektar/nektar.git nektar++
...
...
@@ -99,7 +99,7 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\end{lstlisting}
Change into the
\inlsh
{
nektar++
}
source code directory
\begin{lstlisting}
[style=BashInputStyle]
mkdir -p build
&&
cd build
mkdir -p build
&&
cd build
ccmake ../
make install
\end{lstlisting}
...
...
@@ -111,13 +111,13 @@ From a terminal:
\begin{lstlisting}
[style=BashInputStyle]
tar -zxvf nektar++-(*
\nekver*
).tar.gz
\end{lstlisting}
\item
Change into the source-code directory, create a
\inltt
{
build
}
subdirectory and enter it
subdirectory and enter it
\begin{lstlisting}
[style=BashInputStyle]
mkdir -p build
&&
cd build
\end{lstlisting}
\item
Run the CMake GUI and configure the build by pressing
\inltt
{
c
}
\begin{lstlisting}
[style=BashInputStyle]
ccmake ../
...
...
@@ -129,7 +129,7 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\item
Select the optional libraries you would like to use (prefixed with
\inltt
{
NEKTAR
\_
USE
\_
}
) for additional functionality.
\item
Select the libraries not already available on your system which
you wish to be compiled automatically (prefixed with
you wish to be compiled automatically (prefixed with
\inltt
{
THIRDPARTY
\_
BUILD
\_
}
)
\end{itemize}
A full list of configuration options can be found in
...
...
@@ -142,24 +142,24 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
recommended to install the libraries system-wide through your
package-management system.
\end{notebox}
\item
Press
\inltt
{
c
}
to configure the build. If errors arise relating to
missing libraries, review the
\inltt
{
THIRDPARTY
\_
BUILD
\_
}
selections in
the configuration step above or install the missing libraries manually or
from system packages.
\item
When configuration completes without errors, press
\inltt
{
c
}
again
until the option
\inltt
{
g
}
to generate build files appears. Press
\inltt
{
g
}
to generate the build files and exit CMake.
\item
Compile the code
\begin{lstlisting}
[style=BashInputStyle]
make install
\end{lstlisting}
During the build, missing third-party libraries will be automatically
downloaded, configured and built in the
\nekpp
\inlsh
{
build
}
directory.
% Hacky way to get an lstlisting to an argument of a macro
\newsavebox\installationLinuxTip
\begin{lrbox}
{
\installationLinuxTip
}
\begin{minipage}
{
0.8
\linewidth
}
...
...
@@ -168,17 +168,17 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\end{lstlisting}
\end{minipage}
\end{lrbox}
\begin{tipbox}
If you have multiple processors/cores on your system, compilation can be
significantly increased by adding the
\inlsh
{
-jX
}
option to make, where X is
the number of simultaneous jobs to spawn. For example, use
\noindent\usebox\installationLinuxTip
on a quad-core system.
\end{tipbox}
\item
Test the build by running unit and regression tests.
\begin{lstlisting}
[style=BashInputStyle]
ctest
...
...
@@ -192,7 +192,7 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
functionality. Some of these are
\emph
{
required
}
and must be installed prior to
compiling Nektar++, most of which are available on
\emph
{
MacPorts
}
(www.macports.org) or can be installed manually by a
\emph
{
user
}
. Others are
optional and required only for specific features, or can be downloaded and
optional and required only for specific features, or can be downloaded and
compiled for use with Nektar++
\emph
{
automatically
}
(but not installed
system-wide).
...
...
@@ -268,7 +268,7 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\end{lstlisting}
Change into the
\inlsh
{
nektar++
}
source code directory
\begin{lstlisting}
[style=BashInputStyle]
mkdir -p build
&&
cd build
mkdir -p build
&&
cd build
ccmake ../
make install
\end{lstlisting}
...
...
@@ -282,11 +282,11 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\end{lstlisting}
\item
Change into the source-code directory, create a
\inltt
{
build
}
subdirectory and enter it
subdirectory and enter it
\begin{lstlisting}
[style=BashInputStyle]
mkdir -p build
&&
cd build
\end{lstlisting}
\item
Run the CMake GUI and configure the build
\begin{lstlisting}
[style=BashInputStyle]
ccmake ../
...
...
@@ -300,9 +300,9 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\item
Select the optional libraries you would like to use (prefixed with
\inltt
{
NEKTAR
\_
USE
\_
}
) for additional functionality.
\item
Select the libraries not already available on your system which
you wish to be compiled automatically (prefixed with
you wish to be compiled automatically (prefixed with
\inltt
{
THIRDPARTY
\_
BUILD
\_
}
)
\item
\item
\end{itemize}
A full list of configuration options can be found in
Section~
\ref
{
s:installation:source:cmake
}
.
...
...
@@ -313,23 +313,23 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\nekpp
directory. If you have administrative access to your machine, it is
recommended to install the libraries system-wide through MacPorts.
\end{notebox}
\item
Press
\inltt
{
c
}
to configure the build. If errors arise relating to
missing libraries (variables set to
\inlsh
{
NOTFOUND
}
), review the
missing libraries (variables set to
\inlsh
{
NOTFOUND
}
), review the
\inltt
{
THIRDPARTY
\_
BUILD
\_
}
selections in the previous
step or install the missing libraries manually or through MacPorts.
step or install the missing libraries manually or through MacPorts.
\item
When configuration completes without errors, press
\inltt
{
c
}
again
until the option
\inltt
{
g
}
to generate build files appears. Press
\inltt
{
g
}
to generate the build files and exit CMake.
\item
Compile the code
\begin{lstlisting}
[style=BashInputStyle]
make install
\end{lstlisting}
During the build, missing third-party libraries will be automatically
downloaded, configured and built in the
\nekpp
\inlsh
{
build
}
directory.
% Hacky way to get an lstlisting to an argument of a macro
\newsavebox\installationMacTip
\begin{lrbox}
{
\installationMacTip
}
\begin{minipage}
{
0.8
\linewidth
}
...
...
@@ -338,14 +338,14 @@ tar -zxvf nektar++-(*\nekver*).tar.gz
\end{lstlisting}
\end{minipage}
\end{lrbox}
\begin{tipbox}
If you have multiple processors/cores on your system, compilation can be
significantly increased by adding the
\inlsh
{
-jX
}
option to make, where X is
the number of simultaneous jobs to spawn. For example,
\noindent\usebox\installationMacTip
\end{tipbox}
\item
Test the build by running unit and regression tests.
\begin{lstlisting}
[style=BashInputStyle]
ctest
...
...
@@ -470,7 +470,7 @@ options may change.
Components of the
\nekpp
package can be selected using the following options:
\begin{itemize}
\item
\inlsh
{
NEKTAR
\_
BUILD
\_
DEMOS
}
(Recommended)
Compiles the demonstration programs. These are primarily used by the
regression testing suite to verify the
\nekpp
library, but also provide an
example of the basic usage of the framework.
...
...
@@ -483,12 +483,12 @@ Components of the \nekpp package can be selected using the following options:
\end
{
lstlisting
}
\item
\inlsh
{
NEKTAR
\_
BUILD
\_
LIBRARY
}
(
Required
)
Compiles the Nektar
++
framework libraries. This is required for all other
options.
\item
\inlsh
{
NEKTAR
\_
BUILD
\_
SOLVERS
}
(
Recommended
)
Compiles the solvers distributed with the
\nekpp
framework.
If enabling
\inlsh
{
NEKTAR
\_
BUILD
\_
SOLVERS
}
, individual solvers can be
...
...
@@ -511,9 +511,9 @@ Components of the \nekpp package can be selected using the following options:
\item
\inlsh
{
NEKTAR
\_
BUILD
\_
UTILITIES
}
Compiles utilities for pre
-
and post
-
processing simulation data.
\item
\inlsh
{
NEKTAR
\_
SOLVER
\_
X
}
Enabled compilation of the 'X' solver.
\end
{
itemize
}
...
...
@@ -526,60 +526,60 @@ can be selected using the following options:
Use the optimised BLAS library for AMD processors.
\item
\inlsh
{
NEKTAR
\_
USE
\_
ACCELERATE
\_
FRAMEWORK
}
Use the Mac Osx accelerate framework for BLAS and LAPACK
methods. This option should only be required under in a Mac OSX
environment.
\item
\inlsh
{
NEKTAR
\_
USE
\_
ARPACK
}
Build
\nekpp
with support for ARPACK. This provides routines used for
linear stability analyses. Alternative Arnoldi algorithms are also
implemented directly in
\nekpp
.
\item
\inlsh
{
NEKTAR
\_
USE
\_
BLAS
\_
LAPACK
}
(
Required
)
Enables the use of Basic Linear Algebra Subroutines libraries for linear
algebra operations.
\item
\inlsh
{
NEKTAR
\_
USE
\_
SYSTEM
\_
BLAS
\_
LAPACK
}
(
Recommended
)
On Linux systems, use the default BLAS and LAPACK library on the system.
This may not be the implementation offering the highest performance for your
architecture, but it is the most likely to work without problem.
\item
\inlsh
{
NEKTAR
\_
USE
\_
CCM
}
Use the ccmio library provided with the Star
-
CCM package for
reading ccm files. This option is required as part of Mesh
Convert
reading ccm files. This option is required as part of
Nek
Mesh
if you wish to convert a Star
-
CCM mesh into the Nektar format. It
is possible to read a Tecplot plt file from Star
-
CCM but this
output currently needs to be converted to ascii format using the
Tecplot package.
\item
\inlsh
{
NEKTAR
\_
USE
\_
FFTW
}
Build
\nekpp
with support for FFTW for performing Fast Fourier Transforms
(
FFTs
)
. This is used only when using domains with homogeneous coordinate
directions.
\item
\inlsh
{
NEKTAR
\_
USE
\_
MKL
}
Use the Intel MKL library. This is typically available on cluster
environments and should offer performance tuned for the specific cluster
environment.
\item
\inlsh
{
NEKTAR
\_
USE
\_
MPI
}
(
Recommended
)
Build Nektar
++
with MPI parallelisation. This allows solvers to be run in
serial or parallel.
\item
\inlsh
{
NEKTAR
\_
USE
\_
OPENBLAS
}
Use OpenBLAS for the BLAS library. OpenBLAS is based on the Goto BLAS
implementation and generally offers better performance than a non
-
optimised
system BLAS. However, the library must be installed on the system.
\item
\inlsh
{
NEKTAR
\_
USE
\_
PETSC
}
Build
\nekpp
with support for the PETSc package for solving linear systems.
...
...
@@ -596,10 +596,10 @@ can be selected using the following options:
Build
\nekpp
with support for optimised sparse matrix
-
vector operations.
\item
\inlsh
{
NEKTAR
\_
USE
\_
VTK
}
Build
\nekpp
with support for VTK libraries. This is only needed for
specialist utilities and is not needed for general use.
\begin
{
notebox
}
The VTK libraries are not needed for converting the output of simulations to
VTK format for visualization as this is handled internally.
...
...
@@ -617,15 +617,15 @@ automatically built during the \nekpp build process. Below are the choices of X:
automatically.
\item
\inlsh
{
GSMPI
}
(
MPI
-
only
)
Parallel communication library.
\item
\inlsh
{
LOKI
}
An implementation of a singleton.
\item
\inlsh
{
METIS
}
A graph partitioning library used for substructuring of matrices and mesh
partitioning when
\nekpp
is run in parallel.
...
...
@@ -639,7 +639,6 @@ automatically built during the \nekpp build process. Below are the choices of X:
\nekpp
is run in parallel.
\item
\inlsh
{
TINYXML
}
Library for reading and writing XML files.
\end
{
itemize
}
docs/user-guide/utilities/fieldconvert.tex
View file @
5b1f43de
This diff is collapsed.
Click to expand it.
docs/user-guide/utilities/mesh
convert
.tex
→
docs/user-guide/utilities/
nek
mesh.tex
View file @
5b1f43de
\chapter
{
Mesh
Convert
}
\label
{
s:utilities:mesh
convert
}
\chapter
{
Nek
Mesh
}
\label
{
s:utilities:
nek
mesh
}
\newcommand
{
\mc
}{
\texttt
{
Mesh
Convert
}
\xspace
}
\newcommand
{
\mc
}{
\texttt
{
Nek
Mesh
}
\xspace
}
\newcommand
{
\gmsh
}{
\texttt
{
Gmsh
}
\xspace
}
\mc
is a utility bundled with
\nekpp
which has two purposes:
...
...
@@ -12,6 +12,15 @@
processing modules.
\end{itemize}
\begin{notebox}
\mc
replaces a previous utility called MeshConvert. This change is to reflect
the fact that the program no longer only converts and manipulates meshes but
can now also generate them from a CAD definition. This mesh generator is in
a early beta stage of development and as such is disabled by default. For the
time being those not using the beta mesh generator can use
\mc
as they would
have used MeshConvert, none of the functionality or methodology has changed.
\end{notebox}
There is also some limited support for other output formats. We begin by running
through a basic example to show how a mesh can be converted from the widely-used
mesh-generator
\gmsh
to the XML file format.
...
...
@@ -95,7 +104,7 @@ Assuming that you have compiled \nekpp according to the compilation
instructions, run the command
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
test.msh test.xml
Nek
Mesh test.msh test.xml
\end{lstlisting}
%
to generate the XML file.
...
...
@@ -129,7 +138,7 @@ the element. Whilst a resulting simulation may run, the results may not be valid
because of this problem, or excessively large amounts of time may be needed to
solve the resulting linear system.
\section
{
Mesh
Convert
modules
}
\section
{
Nek
Mesh modules
}
\mc
is designed to provide a pipeline approach to mesh generation. To do this,
we break up tasks into three different types. Each task is called a
...
...
@@ -164,14 +173,14 @@ The figure below depicts how these might be coupled together to form a pipeline:
On the command line, we would define this as:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m process1 -m process2 input.msh output.xml
Nek
Mesh -m process1 -m process2 input.msh output.xml
\end{lstlisting}
%
Process modules can also have parameters passed to them, that can take
arguments, or not.
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m process1:p1=123:booleanparam input.msh output.xml
Nek
Mesh -m process1:p1=123:booleanparam input.msh output.xml
\end{lstlisting}
%
To list all available modules use the
\inltt
{
-l
}
command line argument:
...
...
@@ -225,7 +234,7 @@ Note that you can override the module used on the command line. For example,
\inltt
{
pipe-3d
}
we can convert this using the syntax
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
pipe-3d:sem pipe-3d.xml
Nek
Mesh pipe-3d:sem pipe-3d.xml
\end{lstlisting}
Typically, mesh generators allow physical surfaces and volumes to contain many
...
...
@@ -275,26 +284,26 @@ To detect elements with negative Jacobian determinant, use the \inltt{jac}
module:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m jac Mesh.xml output.xml
Nek
Mesh -m jac Mesh.xml output.xml
\end{lstlisting}
%
To get a detailed list of elements which have negative Jacobians, one may use
the
\inltt
{
list
}
option:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m jac:list Mesh.xml output.xml
Nek
Mesh -m jac:list Mesh.xml output.xml
\end{lstlisting}
%
and to extract the elements for the purposes of visualisation within the domain,
use the
\inltt
{
extract
}
boolean parameter:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m jac:extract Mesh.xml MeshWithNegativeElements.xml
Nek
Mesh -m jac:extract Mesh.xml MeshWithNegativeElements.xml
\end{lstlisting}
To turn off curvature associated with negative jacobians one can try to use the
\inltt
{
removecurveifsingular
}
boolean parameter:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m jac:removecurveifsingular Mesh.xml output.xml
Nek
Mesh -m jac:removecurveifsingular Mesh.xml output.xml
\end{lstlisting}
This option will remove the high order curvature on prismatic faces
with singular jacobians. This does not guarantee a non-singular mesh
...
...
@@ -320,7 +329,7 @@ To apply spherigon patches on two connected surfaces 11 and 12 use the following
command:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m spherigon:surf=11,12
\
Nek
Mesh -m spherigon:surf=11,12
\
MeshWithStraighEdges.xml MeshWithSpherigons.xml
\end{lstlisting}
%
...
...
@@ -329,7 +338,7 @@ which is $C^0$ continuous but not $C^1$ smooth, use two separate instances of
the spherigon module.
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m spherigon:surf=11 -m spherigon:surf=12
\
Nek
Mesh -m spherigon:surf=11 -m spherigon:surf=12
\
MeshWithStraighEdges.xml MeshWithSpherigons.xml
\end{lstlisting}
%
...
...
@@ -338,7 +347,7 @@ This is to avoid the approximated surface normals being incorrect at the edge.
If you have a high-resolution mesh of the surfaces 11 and 12 in
\inltt
{
ply
}
format it can be used to improve the normal definition of the spherigons. Run:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m spherigon:surf=11,12:usenormalfile=Surf
_
11-12
_
Mesh.ply
\
Nek
Mesh -m spherigon:surf=11,12:usenormalfile=Surf
_
11-12
_
Mesh.ply
\
MeshWithStraighEdges.xml MeshWithSpherigons.xml
\end{lstlisting}
...
...
@@ -368,7 +377,7 @@ specified in \gmsh, and an axis which defines the periodicity direction, the
following command attempts to reorder the composites:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m peralign:surf1=11:surf2=12:dir=y
\
Nek
Mesh -m peralign:surf1=11:surf2=12:dir=y
\
-m peralign:surf1=13:surf2=14:dir=z Mesh.xml Mesh
_
aligned.xml
\end{lstlisting}
%
...
...
@@ -386,7 +395,7 @@ the surfaces, additional logic is needed to guarantee connectivity in the XML
file. In this case we append the
\inltt
{
orient
}
parameter:
%
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m peralign:surf1=11:surf2=12:dir=y:orient input.dat output.xml
Nek
Mesh -m peralign:surf1=11:surf2=12:dir=y:orient input.dat output.xml
\end{lstlisting}
\begin{notebox}
...
...
@@ -433,7 +442,7 @@ in figure~\ref{fig:util:mc:split}.
To split a prism boundary layer on surface 11 into 3 layers with a growth rate
of 2 and 7 integration points per element use the following command:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m bl:surf=11:layers=3:r=2:nq=7 MeshWithOnePrismLayer.xml
\
Nek
Mesh -m bl:surf=11:layers=3:r=2:nq=7 MeshWithOnePrismLayer.xml
\
MeshWith3PrismsLayers.xml
\end{lstlisting}
%
...
...
@@ -462,7 +471,7 @@ with the $z$-coordinate axis, to generate accurate high-order curvature
information along the edges.
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m cyl:surf=2:r=1.0:N=5 LinearCylinder.xml HighOrderCylinder.xml
Nek
Mesh -m cyl:surf=2:r=1.0:N=5 LinearCylinder.xml HighOrderCylinder.xml
\end{lstlisting}
The module parameters are:
...
...
@@ -491,7 +500,7 @@ surface.
To extract a surface use the command:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m extract:surf=12,3,4 volume-mesh.xml surface-mesh.xml
Nek
Mesh -m extract:surf=12,3,4 volume-mesh.xml surface-mesh.xml
\end{lstlisting}
where the integers are surface IDs to be extracted.
...
...
@@ -501,10 +510,10 @@ where the integers are surface IDs to be extracted.
The ability to remove all the high-order information in a mesh can be useful
at times.
To do this in Mesh
Convert
use the command:
To do this in
Nek
Mesh use the command:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m linearise high-order-mesh.xml linear-mesh.xml
Nek
Mesh -m linearise high-order-mesh.xml linear-mesh.xml
\end{lstlisting}
The output will contain only the linear mesh information, all curved information
...
...
@@ -523,7 +532,7 @@ boundary layer.
To use this module you therefore use the command:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m extracttetprisminterface input.xml output.xml
Nek
Mesh -m extracttetprisminterface input.xml output.xml
\end{lstlisting}
There are no configuration options for this module, as it is highly specific to
...
...
@@ -538,7 +547,7 @@ connected to precisely one element. This can be done using the \inltt{detect}
module:
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m detect volume.xml volumeWithBoundaryComposite.xml
Nek
Mesh -m detect volume.xml volumeWithBoundaryComposite.xml
\end{lstlisting}
\subsection
{
Scalar function curvature
}
...
...
@@ -549,7 +558,7 @@ Gaussian $z = \exp[-(x^2+y^2)]$ using 7 quadrature points in each direction, we
may issue the command
\begin{lstlisting}
[style=BashInputStyle]
Mesh
Convert
-m scalar:surf=1:nq=7:scalar=exp
\(
x
*
x
+
y
*
y
\)
mesh.xml deformed.xml
Nek
Mesh -m scalar:surf=1:nq=7:scalar=exp
\(
x
*
x
+
y
*
y
\)
mesh.xml deformed.xml
\end{lstlisting}
\begin{notebox}
...
...
docs/user-guide/utilities/utilities.tex
View file @
5b1f43de
\input
{
mesh
convert
}
\input
{
nek
mesh
}
\input
{
fieldconvert
}
...
...
docs/user-guide/xml/xml.tex
View file @
5b1f43de
...
...
@@ -52,10 +52,10 @@ files as illustrated below:
elements from earlier files.
\medskip
For example, the
\inlsh
{
Mesh
Convert
}
utility will produce a default
For example, the
\inlsh
{
Nek
Mesh
}
utility will produce a default
\inltt
{
EXPANSIONS
}
element and blank
\inltt
{
CONDITIONS
}
element. Specifying
a custom-written XML file containing these sections
\emph
{
after
}
the
file produced by
\inlsh
{
Mesh
Convert
}
will override these defaults.
file produced by
\inlsh
{
Nek
Mesh
}
will override these defaults.
\end{notebox}
\input
{
xml/xml-geometry.tex
}
...
...
library/NekMeshUtils/ExtLibInterface/TriangleInterface.h
View file @
5b1f43de
...
...
@@ -121,7 +121,7 @@ private:
std
::
vector
<
NodeSharedPtr
>
m_stienerpoints
;
/// coordinates of the centers of the loops
std
::
vector
<
Array
<
OneD
,
NekDouble
>
>
m_centers
;
/// map from
meshconvert
id to triangle id
/// map from
NekMesh
id to triangle id
std
::
map
<
int
,
NodeSharedPtr
>
nodemap
;
/// id of the surface
int
sid
;
...
...
pkg/CMakeLists.txt
View file @
5b1f43de
...
...
@@ -12,15 +12,15 @@ list(APPEND nektar++-incnavierstokes-solver_BINS IncNavierStokesSolver)
list
(
APPEND nektar++-cardiacep-solver_BINS CardiacEPSolver
)
list
(
APPEND nektar++-compressibleflow-solver_BINS CompressibleFlowSolver
)
list
(
APPEND nektar++-adr-solver_BINS ADRSolver
)
list
(
APPEND nektar++-diffusion-solver_BINS DiffusionSolver
list
(
APPEND nektar++-diffusion-solver_BINS DiffusionSolver
DiffusionSolverTimeInt
)
list
(
APPEND nektar++-shallowwater-solver_BINS ShallowWaterSolver
)
list
(
APPEND nektar++-pulsewave-solver_BINS PulseWaveSolver
)
list
(
APPEND nektar++-utilities_BINS Mesh
Convert
FieldConvert
list
(
APPEND nektar++-utilities_BINS
Nek
Mesh FieldConvert
XmlToVtk XmlToTecplot ProbeFld
)
list
(
APPEND nektar++-demos_BINS Helmholtz1D Helmholtz2D Helmholtz3D
Helmholtz3DHomo1D Helmholtz3DHomo2D
StdProject0D StdProject1D StdProject2D StdProject3D
StdProject0D StdProject1D StdProject2D StdProject3D
StdProject_Diff1D StdProject_Diff2D StdProject_Diff3D
SteadyAdvectionDiffusionReaction2D SteadyLinearAdvectionReaction2D
LocProject1D LocProject2D LocProject3D LocProject_Diff1D
...
...
@@ -31,7 +31,7 @@ list(APPEND nektar++-demos_BINS Helmholtz1D Helmholtz2D Helmholtz3D
list
(
APPEND nektar++_LIBS LibUtilities StdRegions SpatialDomains LocalRegions
Collections MultiRegions SolverUtils
)
list
(
APPEND nektar++_BINS ADRSolver IncNavierStokesSolver CardiacEPSolver
CompressibleFlowSolver DiffusionSolver
CompressibleFlowSolver DiffusionSolver
DiffusionSolverTimeInt ShallowWaterSolver
PulseWaveSolver
${
nektar++-utilities_BINS
}
...
...
@@ -206,7 +206,7 @@ if (NEKTAR_BUILD_LIBRARY)
add_rpm_package
(
NAME libnektar++-utilities
SUMMARY
"Nektar++ library utilities"
DESCRIPTION
DESCRIPTION
"This library provides core routines including linear algebra and
integration with ThirdParty libraries."
INSTALL_LIBS
"
${
libnektar++-utilities_LIBS
}
"
)
...
...
@@ -220,7 +220,7 @@ if (NEKTAR_BUILD_LIBRARY)
add_rpm_package
(
NAME libnektar++-spatialdomains
SUMMARY
"Nektar++ SpatialDomains library"