[dune-pdelab] Uknown exception in convection-diffusion/transsporttest
Christian Engwer
christian.engwer at uni-muenster.de
Thu Nov 28 23:50:14 CET 2013
On Thu, Nov 28, 2013 at 02:13:38PM +0100, Christoph Grüninger wrote:
> Hi PDELabers,
> convection-diffusion/transsporttest throws an unknown exception. GDB was
> not helpful and Valgrind complained about dtmin and first_stage not
> being initialized in transportccfv.hh:313 and :322. I added a dummy
> initialization and the warnings vanished, but not the unknown exception.
> Would you mind having a look? The output is attached below.
>
> Additionally, find attached two patches:
> - one fixes some occurrences of the deprecated YaspGrid constructor.
> - the other fixes a CMake file that used a wrong syntax.
I assume you get an stl exception. You can add the catch with the
attached patch. Let us know what the error message will be...
The easiest appraoch to debug this is to use the gdb and use "catch
throw". I don't see a reason why it should be different in this case...
Without looking for the reason I get the following output:
christi at sansibar:~/Uni/Dune/pdelab-howto/build.g++-4.7/src/convection-diffusion$ ./transporttest 1 0.1 10 1
parallel run on 1 process(es)
constrained dofs=0 of 100
Initial defect: 2.2361e-01
Matrix row: min=3 max=5 average=4.6
Using superlu
Building hierarchy of 1 levels (inclusive coarse solver) took 0 seconds.
=== BiCGSTABSolver
0.5 8.95421e-17
=== rate=1.60356e-31, T=0, TIT=0, IT=0.5
Newton iteration 1. New defect: 1.2440e-10. Reduction (this): 5.5635e-10. Reduction (total): 5.5635e-10
constrained dofs=0 of 100
STL error: basic_ios::clear
Ciao
Christian
> Thanks in advance
> Christoph
>
>
> dune-pdelab-howto/src/convection-diffusion> ./transporttest 1 0.1 10 1
> This is a sequential program.
> constrained dofs=0 of 100
> Initial defect: 2.2361e-01
> Using DIRECTSOLVER
> Building hierarchy of 1 levels (inclusive coarse solver) took 0.001 seconds.
> === BiCGSTABSolver
> 0.5 8.95421e-17
> === rate=1.60356e-31, T=0, TIT=0, IT=0.5
> Newton iteration 1. New defect: 1.2440e-10. Reduction (this):
> 5.5635e-10. Reduction (total): 5.5635e-10
> constrained dofs=0 of 100
> Unknown exception thrown!
>
>
> --
> Une science n'était vraiment développée que quand elle
> pouvait utiliser les mathématiques. (Paul Lafargue)
> *********************************************
> CMWR 2014: 10th - 13th June 2014 in Stuttgart
> Please visit www.cmwr14.de
> *********************************************
> From 7c4beabc29848adef703908fb9caa4a3163c2e10 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich at dune-project.org>
> Date: Thu, 28 Nov 2013 12:09:50 +0100
> Subject: Use new constructor for YaspGrid with array and bitset.
>
> ---
> src/convection-diffusion/dgdiffusion.cc | 8 ++++----
> src/convection-diffusion/transporttest.cc | 4 ++--
> src/utility/gridexamples.hh | 7 ++++---
> 3 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/src/convection-diffusion/dgdiffusion.cc b/src/convection-diffusion/dgdiffusion.cc
> index 5758c79..b6d176a 100644
> --- a/src/convection-diffusion/dgdiffusion.cc
> +++ b/src/convection-diffusion/dgdiffusion.cc
> @@ -254,8 +254,8 @@ int main(int argc, char** argv)
> {
> const int dim = 2;
> Dune::FieldVector<double,dim> L(1.0);
> - Dune::FieldVector<int,dim> N(1);
> - Dune::FieldVector<bool,dim> P(false);
> + Dune::array<int,2> N = { {1,1} };
> + std::bitset<dim> P(false);
> typedef Dune::YaspGrid<dim> Grid;
> Grid grid(L,N,P,0);
> typedef Grid::LeafGridView GV;
> @@ -328,8 +328,8 @@ int main(int argc, char** argv)
> {
> const int dim = 3;
> Dune::FieldVector<double,dim> L(1.0);
> - Dune::FieldVector<int,dim> N(1);
> - Dune::FieldVector<bool,dim> P(false);
> + Dune::array<int,3> N = { {1,1,1} };
> + std::bitset<dim> P(false);
> typedef Dune::YaspGrid<dim> Grid;
> Grid grid(L,N,P,0);
> typedef Grid::LeafGridView GV;
> diff --git a/src/convection-diffusion/transporttest.cc b/src/convection-diffusion/transporttest.cc
> index b3ec281..ad8103c 100644
> --- a/src/convection-diffusion/transporttest.cc
> +++ b/src/convection-diffusion/transporttest.cc
> @@ -478,8 +478,8 @@ int main(int argc, char** argv)
> if (true)
> {
> Dune::FieldVector<double,2> L(1.0);
> - Dune::FieldVector<int,2> N(n);
> - Dune::FieldVector<bool,2> periodic(false);
> + Dune::array<int,2> N = { {n,n} };
> + std::bitset<2> periodic(false);
> int overlap=o;
> Dune::YaspGrid<2> grid(helper.getCommunicator(),L,N,periodic,overlap);
> typedef Dune::YaspGrid<2>::LeafGridView GV;
> diff --git a/src/utility/gridexamples.hh b/src/utility/gridexamples.hh
> index 2ed7ae6..f99334d 100644
> --- a/src/utility/gridexamples.hh
> +++ b/src/utility/gridexamples.hh
> @@ -89,9 +89,10 @@ void createGrid(GridType &grid, int n)
> class YaspUnitSquare : public Dune::YaspGrid<2>
> {
> public:
> - YaspUnitSquare () : Dune::YaspGrid<2>(Dune::FieldVector<double,2>(1.0),
> - Dune::FieldVector<int,2>(1),
> - Dune::FieldVector<bool,2>(false),0)
> + YaspUnitSquare()
> + : Dune::YaspGrid<2>(Dune::FieldVector<double,2>(1.0),
> + Dune::array<int,2>{ {1,1} },
> + std::bitset<2>(false), 0)
> {}
> };
>
> --
> 1.8.1.4
>
> From bcda102832b4c2a5da51679d229eb433a1b3bd3c Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich at dune-project.org>
> Date: Thu, 28 Nov 2013 14:10:16 +0100
> Subject: [CMake] Fix wrong syntax in foreach loop.
>
> ---
> src/boilerplatetutorial/CMakeLists.txt | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/boilerplatetutorial/CMakeLists.txt b/src/boilerplatetutorial/CMakeLists.txt
> index 1e6870d..cf22583 100644
> --- a/src/boilerplatetutorial/CMakeLists.txt
> +++ b/src/boilerplatetutorial/CMakeLists.txt
> @@ -5,10 +5,10 @@ if(ALUGRID_FOUND)
> advection_stationary
> advection_instationary
> heat_instationary)
> - foreach(prog in ${ALUGRIDPROGRAMS})
> + foreach(prog ${ALUGRIDPROGRAMS})
> add_executable(${prog} ${prog}.cc)
> add_dune_superlu_flags(${prog})
> add_dune_alugrid_flags(${prog})
> target_link_libraries(${prog} ${DUNE_LIBS})
> - endforeach(prog in ${ALUGRIDPROGRAMS})
> + endforeach(prog ${ALUGRIDPROGRAMS})
> endif(ALUGRID_FOUND)
> \ No newline at end of file
> --
> 1.8.1.4
>
> _______________________________________________
> dune-pdelab mailing list
> dune-pdelab at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab
--
Prof. Dr. Christian Engwer
Institut für Numerische und Angewandte Mathematik
Fachbereich Mathematik und Informatik der Universität Münster
Einsteinstrasse 62
48149 Münster
E-Mail christian.engwer at uni-muenster.de
Telefon +49 251 83-35067
FAX +49 251 83-32729
More information about the dune-pdelab
mailing list