[Dune-devel] [Dune-Commit] [Commit] dune-grid-howto - 2f0a5d8: [gettingstarted] Replace SGrid by YaspGrid.
Dominic Kempf
dominic.r.kempf at gmail.com
Fri Oct 10 14:56:22 CEST 2014
I had a look into it and I have found a lot more places that need fixing in
the howto in this regard.
While doing so, I was wondering whether SGrid should vanish completely from
the howto for 2.4. I think so, as deprecated features shouldnt be used for
teaching IMO. Any objections?
On Sat, Oct 4, 2014 at 10:21 AM, Christoph GrĂ¼ninger <
gruenich at dune-project.org> wrote:
> New commit, appeared at Sat Oct 4 10:21:33 2014 +0200
> as part of the following ref changes:
>
> branch refs/heads/master updated from 45c2ea1 -> 2f0a5d8
>
> Browsable version:
> http://cgit.dune-project.org/repositories/dune-grid-howto/commit/?id=2f0a5d8e4083ed26434d26392d91ca4ec79ec1b1
>
> ======================================================================
>
> commit 2f0a5d8e4083ed26434d26392d91ca4ec79ec1b1
> Author: Christoph GrĂ¼ninger <gruenich at dune-project.org>
> Date: Sat Oct 4 10:21:20 2014 +0200
>
> [gettingstarted] Replace SGrid by YaspGrid.
>
> doc/grid-howto.tex | 41 +++++++++++++++++++++--------------------
> gettingstarted.cc | 20 ++++++++++----------
> 2 files changed, 31 insertions(+), 30 deletions(-)
>
>
>
> diff --git a/doc/grid-howto.tex b/doc/grid-howto.tex
> index ffdeee5..5fb0de1 100644
> --- a/doc/grid-howto.tex
> +++ b/doc/grid-howto.tex
> @@ -1,5 +1,6 @@
>
> \documentclass[11pt,a4paper,headinclude,footinclude,DIV16,headings=normal]{scrreprt}
> \usepackage[automark]{scrpage2}
> +\usepackage{scrhack}
> \usepackage[ansinew]{inputenc}
> \usepackage{amsmath}
> \usepackage{amsfonts}
> @@ -312,7 +313,7 @@ the different classes before we go into the details.
>
> \section{Creating your first grid}
>
> -Let us start with a replacement of the famous ``hello world''
> +Let us start with a replacement of the famous \emph{hello world}
> program given below.
>
> \begin{lst}[File dune-grid-howto/gettingstarted.cc] \mbox{}
> @@ -326,8 +327,8 @@ produced by the \lstinline!configure! script in the
> application's
> build system. It contains the current configuration and can be used to
> compile different versions of your code depending on the configuration
> selected. It is important that this file is included before any other
> -\Dune{} header files. The next file \lstinline!dune/grid/sgrid.hh!
> -includes the headers for the \lstinline!SGrid! class which provides a
> +\Dune{} header files. The file \lstinline!dune/grid/yaspgrid.hh!
> +includes the headers for the \lstinline!YaspGrid! class which provides a
> special implementation of the \Dune{} grid interface with a
> structured mesh of arbitrary dimension. Then
> \lstinline!dune/grid/common/gridinfo.hh! loads the headers of some
> @@ -335,7 +336,7 @@ functions which print useful information about a grid.
>
> Since the dimension will be used as a template parameter in many
> places below we define it as a constant in line number \ref{gs:dim}.
> -The \lstinline!SGrid! class template takes two template parameters
> +The \lstinline!YaspGrid! class template takes two template parameters
> which are the dimension of the grid and the
> dimension of the space where the grid is embedded in (its world
> dimension). If the world dimension is strictly greater than the
> @@ -346,17 +347,16 @@ the selected value for the dimension. All
> identifiers of the \Dune{}
> framework are within the \lstinline!Dune! namespace.
>
> Lines \ref{gs:par0}-\ref{gs:par1} prepare the arguments for the
> -construction of an \lstinline!SGrid! object. These arguments use the
> -class template \lstinline!FieldVector<T,n>! which is a vector with
> +construction of a \lstinline!YaspGrid! object. The first argument use
> +the class template \lstinline!FieldVector<T,n>! which is a vector with
> \lstinline!n! components of type \lstinline!T!. You can either assign
> the same value to all components in the constructor (as is done here)
> or you could use \lstinline!operator[]! to assign values to individual
> -components. The variable \lstinline!N! defines the number of cells or
> -elements to be used in the respective dimension of the grid.
> -\lstinline!L! defines the coordinates of the lower left corner of the
> -cube and \lstinline!H! defines the coordinates of the upper right corner
> of the cube.
> +components. The variable \lstinline!length! defines the lengths of
> +the cube. The variable \lstinline!elements! defines the number of
> +cells or elements to be used in the respective dimension of the grid.
> Finally in line \ref{gs:grid} we are now able to
> -instantiate the \lstinline!SGrid! object.
> +instantiate the \lstinline!YaspGrid! object.
>
> The only thing we do with the grid in this little example is printing
> some information about it. After successfully running the executable
> @@ -365,14 +365,14 @@ some information about it. After successfully
> running the executable
> \begin{lst}[Output of gettingstarted] \mbox{}
>
> \begin{lstlisting}[basicstyle=\ttfamily\scriptsize]
> -=> SGrid(dim=3,dimworld=3)
> -level 0 codim[0]=27 codim[1]=108 codim[2]=144 codim[3]=64
> -leaf codim[0]=27 codim[1]=108 codim[2]=144 codim[3]=64
> -leaf dim=3
> geomTypes=((cube,3)[0]=27,(cube,2)[1]=108,(cube,1)[2]=144,(cube,0)[3]=64)
> +=> Dune::YaspGrid<3, Dune::EquidistantCoordinates<double, 3> > (dim=3,
> dimworld=3)
> +level 0 codim[0]=64 codim[1]=240 codim[2]=300 codim[3]=125
> +leaf codim[0]=64 codim[1]=240 codim[2]=300 codim[3]=125
> +leaf dim=3 geomTypes=((cube, 3)[0]=64,(cube, 2)[1]=240,(simplex,
> 1)[2]=300,(simplex, 0)[3]=125)
> \end{lstlisting}
> \end{lst}
>
> -The first line tells you that you are looking at an \lstinline!SGrid!
> +The first line tells you that you are looking at an \lstinline!YaspGrid!
> object of the given dimensions. The \Dune{} grid interface supports
> unstructured, locally refined, logically nested grids. The coarsest
> grid is called level-0-grid or macro grid. Elements can be
> @@ -385,13 +385,14 @@ output tells us that this grid object consists only
> of a single level
> (level $0$) while the next line tells us that that level 0 coincides
> also with the leaf grid in this case. Each line reports about the
> number of grid entities which make up the grid. We see that there are
> -27 elements (codimension 0), 108 faces (codimension 1), 144 edges
> -(codimension 2) and 64 vertices (codimension 3) in the grid. The last
> +64 elements (codimension 0), 240 faces (codimension 1), 300 edges
> +(codimension 2) and 125 vertices (codimension 3) in the grid. The last
> line reports on the different types of entities making up the grid. In
> -this case all entities are of type ``cube''.
> +this case all entities are of type \emph{cube}, as a line and a point
> +are both \emph{cube} and \emph{simplex}.
>
> \begin{exc} Try to play around with different grid sizes by assigning
> - different values to the \lstinline!N! parameter. You can also change
> + different values to the \lstinline!element! parameter. You can also
> change
> the dimension of the grid by varying \lstinline!dim!. Don't be
> modest. Also try dimensions 4 and 5!
> \end{exc}
> diff --git a/gettingstarted.cc b/gettingstarted.cc
> index 3379e1d..b4386b2 100644
> --- a/gettingstarted.cc
> +++ b/gettingstarted.cc
> @@ -1,13 +1,13 @@
> // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
> // vi: set et ts=4 sw=2 sts=2:
> -// $Id$
>
> // Dune includes
> -#include "config.h" // file constructed by ./configure script
> /*@\label{gs:inc0}@*/
> -#include <dune/grid/sgrid.hh> // load sgrid definition
> -#include <dune/grid/common/gridinfo.hh> // definition of gridinfo
> /*@\label{gs:inc1}@*/
> +#include <config.h> // file constructed by ./configure script
> /*@\label{gs:inc0}@*/
> +#include <array>
> +#include <memory>
> #include <dune/common/parallel/mpihelper.hh> // include mpi helper class
> -
> +#include <dune/grid/yaspgrid.hh> // load Yasp grid definition
> +#include <dune/grid/common/gridinfo.hh> // definition of gridinfo
> /*@\label{gs:inc1}@*/
>
> int main(int argc, char **argv)
> {
> @@ -18,11 +18,11 @@ int main(int argc, char **argv)
> try{
> // make a grid
> const int dim=3;
> /*@\label{gs:dim}@*/
> - typedef Dune::SGrid<dim,dim> GridType;
> /*@\label{gs:gridtype}@*/
> - Dune::FieldVector<int,dim> N(3);
> /*@\label{gs:par0}@*/
> - Dune::FieldVector<GridType::ctype,dim> L(-1.0);
> - Dune::FieldVector<GridType::ctype,dim> H(1.0);
> /*@\label{gs:par1}@*/
> - GridType grid(N,L,H);
> /*@\label{gs:grid}@*/
> + typedef Dune::YaspGrid<dim> GridType;
> /*@\label{gs:gridtype}@*/
> + Dune::FieldVector<double,dim> length(1.0);
> /*@\label{gs:par0}@*/
> + std::array<int,dim> elements;
> + std::fill(elements.begin(), elements.end(), 4);
> /*@\label{gs:par1}@*/
> + GridType grid(length,elements);
> /*@\label{gs:grid}@*/
>
> // print some information about the grid
> Dune::gridinfo(grid);
>
> _______________________________________________
> Dune-Commit mailing list
> Dune-Commit at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-commit
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20141010/5036b48c/attachment.htm>
More information about the Dune-devel
mailing list