Commit 6d9499e2 authored by Chris Cantwell's avatar Chris Cantwell
Browse files

Merge branch 'master' into feature/skip-blank-xml

parents aa8c2eff 50d5a1ee
......@@ -22,14 +22,17 @@ v4.3.0
(!537)
- Fix bug with initial conditions of CG simulations using variable P (!543)
- Fix bug in 3DH2D with non-zero Dirichlet boundary conditions (!545)
- Added in a method to convert equispaced interpolated points back to coefficients which requires the introduction of a new StdRegions matrix.(!561)
- Empty XML tags which would override non-empty XML tags are now ignored (!581)
- Add contribution guide (!551)
- Add a filter to calculate exponential moving averages (!566)
**APESolver:**
- Fix restarting from checkpoint file (!517)
**IncNavierStokesSolver**
- Fix floquet stability analysis for HalfMode case (!536)
- Add a filter to calculate Reynolds stresses (!566)
**FieldConvert:**
- Extended surface distance module to support hexahedra and quads (!524)
......@@ -41,6 +44,8 @@ v4.3.0
- Add module to enable mean mode of 3DH1D to be extracted (!530)
- Fix bug in C^0 projection (!541))
- Add command line option to set number of homogeneous planes (!540)
- Add module to project set of points to a fld file(!561)
- Add support for interpolating to a box of points and fix ability to run interppointstofld module in parallel when using a plane or box optio(!561)n
- Add option to output equi-spaced points in VTU format (!550)
- Add module innerproduct (!568)
- Add command line option of `--part-only` and `--part-only-overlapping` (!569)
......
......@@ -277,7 +277,7 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
# Build active components
IF (NEKTAR_BUILD_LIBRARY)
SET(NEKTAR++_LIBRARIES SolverUtils LibUtilities StdRegions SpatialDomains LocalRegions
MultiRegions Collections NekMeshUtils)
MultiRegions Collections GlobalMapping NekMeshUtils)
INCLUDE_DIRECTORIES(library)
ADD_SUBDIRECTORY(library)
INSTALL(EXPORT Nektar++Libraries DESTINATION ${LIB_DIR}/cmake COMPONENT dev)
......
......@@ -759,6 +759,7 @@ INPUT = @CMAKE_SOURCE_DIR@/docs/doxygen/ \
@CMAKE_SOURCE_DIR@/library/SpatialDomains/ \
@CMAKE_SOURCE_DIR@/library/LocalRegions/ \
@CMAKE_SOURCE_DIR@/library/MultiRegions/ \
@CMAKE_SOURCE_DIR@/library/GlobalMapping/ \
@CMAKE_SOURCE_DIR@/library/SolverUtils/ \
@CMAKE_SOURCE_DIR@/library/NekMeshUtils/ \
@CMAKE_SOURCE_DIR@/solvers/ \
......
......@@ -515,12 +515,12 @@ Available options of the motion type for the moving body include free, constrain
</SOLVERINFO>
\end{lstlisting}
A moving body type boundary condition should be specified in \inltt{BOUNDARYCONDITIONS} for the velocities on the far field and in-flow boundaries such as,
A moving body type boundary condition should be specified in \inltt{BOUNDARYCONDITIONS} for the velocities on the moving body,
\begin{lstlisting}[style=XMLStyle]
<BOUNDARYCONDITIONS>
<REGION REF="1">
<D VAR="u" USERDEFINEDTYPE="MovingBody" VALUE="1" />
<REGION REF="0">
<D VAR="u" USERDEFINEDTYPE="MovingBody" VALUE="0" />
<D VAR="v" USERDEFINEDTYPE="MovingBody" VALUE="0" />
<D VAR="w" VALUE="0" />
<N VAR="p" USERDEFINEDTYPE="H" VALUE="0" />
......@@ -577,6 +577,7 @@ value of the aerodynamic forces on boundary 0, defined in the
\inltt{GEOMETRY} section, will be output every 10 time steps.evaluates the aerodynamic forces along the moving body surface. The
forces for each computational plane are projected along the Cartesian axes and the pressure and viscous contributions are computed in each direction.
Also, to use this module a \inltt{MAPPING} needs to be specified, as described in section \ref{sec:mapping}. In the case of free and constrained motion presented here, the functions defined by the mapping act as initial conditions. Also, when using the MovingBody forcing, it is not necessary to set the \inltt{TIMEDEPENDENT} property of the mapping.
\section{Stability analysis Session file configuration}
\label{SecStabFile}
......@@ -775,6 +776,127 @@ Once these three files (the \inltt{Geometry} in \inlsh{Session.xml.gz}, the non
IncNavierStokesSolver Session.xml.gz Session.xml
\end{lstlisting}
\section{Coordinate transformations Session file configuration}\label{sec:mapping}
This section describes how to include a coordinate transformation
to the solution of the incompressible Navier-Stokes equations.
In some cases, this approach allows a slightly deformed geometry to
be mapped into a geometry with a homogeneous direction, which can be treated
using a quasi-3D method. It is also useful for problems with a moving body,
where otherwise a moving mesh would have to be employed.
\subsection{Solver Info}
To activate the mapping technique, \inltt{SolverType} needs to be set as:
\begin{lstlisting}[style=XMLStyle]
<I PROPERTY="SolverType" VALUE="VCSMapping" />
\end{lstlisting}
Also, there are other optional properties in the \inltt{SolverInfo} section:
\begin{lstlisting}[style=XMLStyle]
<I PROPERTY="MappingImplicitPressure" VALUE="TRUE"/> <!-- Default = FALSE -->
<I PROPERTY="MappingImplicitViscous" VALUE="TRUE"/> <!-- Default = FALSE -->
<I PROPERTY="MappingNeglectViscous" VALUE="FALSE"/> <!-- Default = FALSE -->
\end{lstlisting}
the first two options determine if the pressure and viscous terms resulting from the
coordinate transformation are treated implicitly using an iterative procedure. If the last
option is set to true, the viscous terms in the mapping are not computed. This leads to a
faster solution, but the effect on the results need to be determined for the specific case.
By default, all mapping terms are computed and treated explicitly.
\subsection{Parameters}
When treating the mapping terms implicitly, the following parameters can be set:
\begin{lstlisting}[style=XMLStyle]
<P> MappingPressureTolerance = 1e-8 </P> <!-- Default = 1e-12 -->
<P> MappingViscousTolerance = 1e-8 </P> <!-- Default = 1e-12 -->
<P> MappingPressureRelaxation = 0.9 </P> <!-- Default = 1.0 -->
<P> MappingViscousRelaxation = 0.9 </P> <!-- Default = 1.0 -->
\end{lstlisting}
They determine the tolerance of the iterative solution of the equations,
and a relaxation parameter which can improve the numerical stability of the method.
\subsection{Mapping}
The particular transformation employed is specified by:
\begin{lstlisting}[style=XMLStyle]
<MAPPING TYPE="XYofZ">
<COORDS>Mapping</COORDS>
<VEL>MappingVel</VEL>
<TIMEDEPENDENT>True</TIMEDEPENDENT> <!-- Default is False -->
</MAPPING>
\end{lstlisting}
where \inltt{TIMEDEPENDENT} indicates if the transformation varies
with time.
The available values for \inltt{TYPE}, and the transformations they represent,
are:
\begin{center}
\begin{tabular}{llll}
\toprule
Mapping type & $\bar{x}$ & $\bar{y}$ & $\bar{z}$ \\
\midrule
\inltt{Translation} & $x +f(t)$ & $y + g(t)$ & $z + h(t)$ \\
\inltt{XofZ} & $x + f(z,t)$ & $y$ & $z$ \\
\inltt{XofXZ} & $f(x,z,t)$ & $y$ & $z$ \\
\inltt{XYofZ} & $x + f(z,t)$ & $y + g(z,t)$ & $z$ \\
\inltt{XYofXY} & $f(x,y,t)$ & $g(x,y,t)$ & $z$ \\
\inltt{General} & $f(x,y,z,t)$ & $g(x,y,z,t)$ & $h(x,y,z,t)$ \\
\bottomrule
\end{tabular}
\end{center}
where $(\bar{x},\bar{y},\bar{z})$ are the Cartesian (physical) coordinates and
$(x,y,z)$ are the transformed coordinates. Note that for quasi-3D problems, the
$z$ coordinate cannot be transformed.
\subsection{Functions}
The function \inltt{COORDS} (and \inltt{VEL} for time dependent mappings)
indicated in the \inltt{MAPPING} section need to be defined, for example as:
\begin{lstlisting}[style=XMLStyle]
<FUNCTION NAME="Mapping">
<E VAR="x" VALUE="x + cos(PI*z)" />
<E VAR="y" VALUE="y + cos(2*PI*t)" />
</FUNCTION>
<FUNCTION NAME="MappingVel">
<E VAR="vx" VALUE="0.0" />
<E VAR="vy" VALUE="-1.0*2*PI*sin(2*PI*t)" />
</FUNCTION>
\end{lstlisting}
the transformation defined by these functions need to be valid
(non-zero Jacobian). By default, any component of \inltt{COORDS} that
is not specified is taken as a trivial transformation, e.g. $\bar{x} = x$,
and any velocity not specified is considered to be zero.
\subsection{Boundary conditions}
In case of a time-dependent mapping, a moving body boundary condition
is available:
\begin{lstlisting}[style=XMLStyle]
<BOUNDARYCONDITIONS>
<REGION REF="0">
<D VAR="u" USERDEFINEDTYPE="MovingBody" VALUE="0" />
<D VAR="v" USERDEFINEDTYPE="MovingBody" VALUE="0" />
<D VAR="w" VALUE="0" />
<N VAR="p" USERDEFINEDTYPE="H" VALUE="0" />
</REGION>
</BOUNDARYCONDITIONS>
\end{lstlisting}
When using the \inltt{MovingBody} boundary condition, the Dirichlet condition
is relative to the boundary, while the regular Dirichlet boundary condition
is taken in an absolute sense.
All Dirichlet boundary conditions are specified in the Cartesian (physical) space,
and are automatically transformed to the computational frame of reference.
\begin{notebox}
Examples of the use of mappings can be found in the test directory
\inlsh{NEKTAR/solvers/IncNavierStokesSolver/Tests}. See for example the files
\inlsh{KovaFlow\_3DH1D\_P8\_16modes\_Mapping-implicit.xml} and \inlsh{CylFlow\_Mov\_mapping.xml}.
\end{notebox}
\section{Adaptive polynomial order Session file configuration}
\label{SectionDriverAdaptive}
......
......@@ -107,6 +107,8 @@ Specifically, FieldConvert has these additional functionalities
\item \inltt{isocontour}: Extract an isocontour of ``fieldid'' variable and at value ``fieldvalue''. Optionally ``fieldstr'' can be specified for a string defiition or ``smooth'' for smoothing;
\item \inltt{jacobianenergy}: Shows high frequency energy of Jacobian;
\item \inltt{meanmode}: Extract mean mode (plane zero) of 3DH1D expansions;
\item \inltt{pointdatatofld}: Given discrete data at quadrature points
project them onto an expansion basis and output fld file;
\item \inltt{printfldnorms}: Print L2 and LInf norms to stdout;
\item \inltt{scalargrad}: Computes scalar gradient field;
\item \inltt{scaleinputfld}: Rescale input field by a constant factor;
......@@ -446,17 +448,33 @@ can be specified where \inltt{npts} is the number of equispaced points between
$(x0,y0)$ to $(x1,y1)$ which can also be used in 3D by specifying $(x0,y0,z0)$
to $(x1,y1,z1)$.
An extraction of a plane can also be specified by
\begin{lstlisting}[style=BashInputStyle]
FieldConvert -m interppoints:fromxml=file1.xml:fromfld=file1.fld:plane=npts1,\
npts2,x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3
An extraction of a plane of points can also be specified by
\begin{lstlisting}[style=BashInputStyle]
FieldConvert -m interppoints:fromxml=file1.xml:fromfld=file1.fld:\
plane=npts1,npts2,x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3
\end{lstlisting}
where \inltt{npts1,npts2} is the number of equispaced points in each
direction and $(x0,y0,z0)$, $(x1,y1,z1)$, $(x2,y2,z2)$ and $(x3,y3,z3)$
define the plane of points specified in a clockwise or anticlockwise direction.
%
\begin{notebox}
This module does not run in parallel.
In addition an extraction of a box of points can also be specified by
\begin{lstlisting}[style=BashInputStyle]
FieldConvert -m interppoints:fromxml=file1.xml:fromfld=file1.fld:\
box=npts1,npts2,npts3,xmin,xmax,ymin,ymax,zmin,zmax
\end{lstlisting}
where \inltt{npts1,npts2,npts3} is the number of equispaced points in each
direction and $(xmin,ymin,zmin)$ and $(xmax,ymax,zmax3)$
define the limits of the box of points.
For the plane and box interpolation there is an additional optional
argument \inltt{cp=p0,q} which adds to the interpolated fields the value of
$c_p=(p-p0)/q$ and $c_{p0}=(p-p0+0.5 u^2)/q$ where $p0$ is a reference
pressure and $q$ is the free stream dynamics pressure. If the input
does not contain a field ``p'' or a velocity field ``u,v,w'' then $cp$
and $cp0$ are not evaluated accordingly
%
\begin{notebox}
This module runs in parallel for the plane and box extraction of points. In this case a series of .dat files are generated that can be concatinated together. Other options do not run in parallel.
\end{notebox}
%
%
......@@ -535,6 +553,74 @@ The output file \inltt{file-mean.fld} can be processed in a similar
way as described in section \ref{s:utilities:fieldconvert:sub:convert}
to visualise the result either in Tecplot or in Paraview or VisIt.
setnantovalue option
%
%
%
\subsection{ Project point data to a field: \textit{pointdatatofld} module}
\label{s:utilities:fieldconvert:sub:pointdatatofld}
To project a series of points given at the same quadrature distribution as the .xml file and write out a .fld file use the pointdatatofld module:
%
\begin{lstlisting}[style=BashInputStyle]
FieldConvert --noequispaced -m pointdatatofld file.pts file.xml file.fld
\end{lstlisting}
%
This command will read in the points provided in the \inltt{file.pts}
and assume these are given at the same quadrature distribution as the
mesh and expansions defined in \inltt{file.xml} and output the field
to \inltt{file.fld}. If the points do not match an error will be dumped.
The file \inltt{file.pts} which is assumed to be given by an interpolation from another source is of the form:
%
\begin{lstlisting}[style=XMLStyle]
<?xml version="1.0" encoding="utf-8" ?>
<NEKTAR>
<POINTS DIM="3" FIELDS="p">
1.70415 -0.4 -0.0182028 -0.106893
1.70415 -0.395683 -0.0182028 -0.106794
1.70415 -0.3875 -0.0182028 -0.106698
1.70415 -0.379317 -0.0182028 -0.103815
</POINTS>
</NEKTAR>
\end{lstlisting}
%
where \inltt{DIM="3" FIELDS="p} specifies that the field is
three-dimensional and contains one variable, $p$. Each line defines a
point, the first, second, and third columns contains the
$x,y,z$-coordinate and subsequent columns contain the field values, in
this case the $p$-value So in the general case of $n$-dimensional
data, the $n$ coordinates are specified in the first $n$ columns
accordingly followed by the field data.
The default argument is to use the equipapced (but potentially
collapsed) coordinates which can be obtained from the command.
\begin{lstlisting}[style=BashInputStyle]
FieldConvert file.xml file.dat
\end{lstlisting}
In this case the pointdatatofld module shoudl be used without the
\inltt{--noequispaced} option. However this can lead to problems when
peforming an elemental forward projection/transform since the mass
matrix in a deformed element can be singular as the equispaced points
do not have a sufficiently accurate quadrature rule that spans the
polynomial space. Therefore it is adviseable to use the set of points
given by
\begin{lstlisting}[style=BashInputStyle]
FieldConvert --noequispaced file.xml file.dat
\end{lstlisting}
which produces a set of points at the gaussian collapsed
coordinates. In this case one must also use the \inltt{--noequispaced}
option when projecting to a field.
Finally the option \inltt{setnantovalue=0} can also be used which sets
any nan values in the interpolation to zero or any specified value in
this option.
%
%
%
......
......@@ -296,6 +296,21 @@ MeshConvert Mesh.msh output.xml:xml:uncompress
In the rest of these subsections, we discuss the various processing modules
available within \mc.
\subsection{Extract surfaces from a mesh}
To extract composite surfaces 2 and 3 from a mesh use the module \inltt{extract}
module:
%
\begin{lstlisting}[style=BashInputStyle]
MeshConvert -m extract:surf=2,3 Mesh.xml output.xml
\end{lstlisting}
%
If you also wish to have the boundaries of the extracted surface detected add the \inltt{detectbnd} option
%
\begin{lstlisting}[style=BashInputStyle]
MeshConvert -m extract:surf=2,3:detectbnd Mesh.xml output.xml
\end{lstlisting}
\subsection{Negative Jacobian detection}
To detect elements with negative Jacobian determinant, use the \inltt{jac}
......
......@@ -70,6 +70,72 @@ This will create a file named \inltt{MyAverageField.fld} averaging the
instantaneous fields every 10 time steps. The averaged field is however only
output every 100 time steps.
\subsection{Moving average of fields}
This filter computes the exponential moving average (in time) of
fields for each variable defined in the session file. The moving average
is defined as:
\[
\bar{u}_n = \alpha u_n + (1 - \alpha)\bar{u}_{n-1}
\]
with $0 < \alpha < 1$ and $\bar{u}_1 = u_1$.
The same parameters of the time-average filter are supported, with the output file
in the form \inltt{session\_*\_movAvg.fld}. In addition,
either $\alpha$ or the time-constant $\tau$ must be defined. They are related by:
\[
\alpha = \frac{t_s}{\tau + t_s}
\]
where $t_s$ is the time interval between consecutive samples.
As an example, consider:
\begin{lstlisting}[style=XMLStyle,gobble=2]
<FILTER TYPE="MovingAverage">
<PARAM NAME="OutputFile">MyMovingAverage</PARAM>
<PARAM NAME="OutputFrequency">100</PARAM>
<PARAM NAME="SampleFrequency"> 10 </PARAM>
<PARAM NAME="tau"> 0.1 </PARAM>
</FILTER>
\end{lstlisting}
This will create a file named \inltt{MyMovingAverage\_movAvg.fld} with a moving average
sampled every 10 time steps. The averaged field is however only
output every 100 time steps.
\subsection{Reynolds stresses}
\begin{notebox}
This filter is only supported for the incompressible Navier-Stokes solver.
\end{notebox}
This filter is an extended version of the time-average filter. It outputs
not only the time-average of the fields, but also the Reynolds stresses.
The same parameters supported in the time-average case can be used,
for example:
\begin{lstlisting}[style=XMLStyle,gobble=2]
<FILTER TYPE="ReynoldsStresses">
<PARAM NAME="OutputFile">MyAverageField</PARAM>
<PARAM NAME="OutputFrequency">100</PARAM>
<PARAM NAME="SampleFrequency"> 10 </PARAM>
</FILTER>
\end{lstlisting}
By default, this filter uses a simple average. Optionally, an exponential
time average can be used, in which case the output contain the moving
averages and the Reynolds stresses calculated based on them. For example:
\begin{lstlisting}[style=XMLStyle,gobble=2]
<FILTER TYPE="ReynoldsStresses">
<PARAM NAME="OutputFile">MyAverageField</PARAM>
<PARAM NAME="MovingAverage">true</PARAM>
<PARAM NAME="OutputFrequency">100</PARAM>
<PARAM NAME="SampleFrequency"> 10 </PARAM>
<PARAM NAME="alpha"> 0.01 </PARAM>
</FILTER>
\end{lstlisting}
\subsection{Checkpoint fields}
The checkpoint filter writes a checkpoint file, containing the instantaneous
......
......@@ -48,9 +48,14 @@ This force type allows a forcing function to be applied directly within the code
\subsection{Noise}
This force type allows the user to specify the magnitude of a white noise force.
Optional arguments can also be used to define the frequency in time steps to recompute the noise (default is never)
and the number of time steps to apply the noise (default is the entire simulation).
\begin{lstlisting}[style=XMLStyle]
<FORCE TYPE="Noise">
<WHITENOISE> [VALUE] <WHITENOISE/>
<!-- Optional arguments -->
<UPDATEFREQ> [VALUE] <UPDATEFREQ/>
<NSTEPS> [VALUE] <NSTEPS/>
</FORCE>
\end{lstlisting}
SET(LibrarySubDirs LibUtilities LocalRegions Collections
SET(LibrarySubDirs GlobalMapping LibUtilities LocalRegions Collections
MultiRegions SpatialDomains StdRegions SolverUtils NekMeshUtils)
SET(UnitTestSubDirs UnitTests)
SET(DemoSubDirs Demos)
......
......@@ -9,10 +9,10 @@
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">0.000198493</value>
<value tolerance="1e-9">0.000742677</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">0.000969191</value>
<value tolerance="1e-9">0.0102924</value>
</metric>
</metrics>
</test>
......
......@@ -9,10 +9,10 @@
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">1.61137e-06</value>
<value tolerance="1e-9">3.35253e-06</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">8.98093e-06</value>
<value tolerance="1e-9">4.45606e-05</value>
</metric>
</metrics>
</test>
......
......@@ -8,10 +8,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-8">0.000198493</value>
<value tolerance="1e-8">0.000742677</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-8">0.000969191</value>
<value tolerance="1e-8">0.0102924</value>
</metric>
</metrics>
</test>
......
......@@ -9,10 +9,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">0.000198493</value>
<value tolerance="3e-5">0.000450687</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">0.000969191</value>
<value tolerance="1e-9">0.00539787</value>
</metric>
</metrics>
</test>
......@@ -9,10 +9,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">0.000198493</value>
<value tolerance="3e-5">.000388881</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">0.000969191</value>
<value tolerance="1e-9">0.00575378</value>
</metric>
</metrics>
</test>
......@@ -8,10 +8,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-12">2.76145e-05</value>
<value tolerance="1e-12">4.61818e-05</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-12">0.000161114</value>
<value tolerance="1e-12">0.000329233</value>
</metric>
</metrics>
</test>
......@@ -9,10 +9,10 @@
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-12">5.48966e-05</value>
<value tolerance="1e-12">0.000126773</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-12">0.000344037</value>
<value tolerance="1e-12">0.00087551</value>
</metric>
</metrics>
</test>
......
......@@ -8,10 +8,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">0.000192586</value>
<value tolerance="1e-9">0.000205416</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">0.00193155</value>
<value tolerance="1e-9">0.00322597</value>
</metric>
</metrics>
</test>
......@@ -9,10 +9,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-9">0.000192586</value>
<value tolerance="1e-9">0.000205416</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-9">0.00193155</value>
<value tolerance="1e-9">0.00322597</value>
</metric>
</metrics>
</test>
......@@ -8,10 +8,10 @@
</files>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-12">3.52109e-05</value>
<value tolerance="1e-12">3.81489e-05</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-12">0.00093341</value>
<value tolerance="1e-12">0.00100069</value>
</metric>
</metrics>
</test>
......@@ -20,6 +20,10 @@ SET(StdProject_Diff2DSource StdProject_Diff2D.cpp)
ADD_NEKTAR_EXECUTABLE(StdProject_Diff2D demos StdProject_Diff2DSource)
TARGET_LINK_LIBRARIES(StdProject_Diff2D ${LinkLibraries})
SET(StdEquiToCoeff2DSource StdEquiToCoeff2D.cpp)
ADD_NEKTAR_EXECUTABLE(StdEquiToCoeff2D demos StdEquiToCoeff2DSource)
TARGET_LINK_LIBRARIES(StdEquiToCoeff2D ${LinkLibraries})
SET(StdProject3DSource StdProject3D.cpp)
ADD_NEKTAR_EXECUTABLE(StdProject3D demos StdProject3DSource)
TARGET_LINK_LIBRARIES(StdProject3D ${LinkLibraries})
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment