Dear all,<div><br></div><div>From reading [<a href="http://users.dune-project.org/projects/1/wiki/Grid-Manager_Features" target="_blank">http://users.dune-project.org/projects/1/wiki/Grid-Manager_Features</a>], I understand that if I want to use a supported 3D grid manager that uses simplices and uses a conforming refinement routine on parallel meshes, I should use UG. </div>
<div><br></div><div>The instructions from [<a href="http://www.dune-project.org/external_libraries/install_ug.html" target="_blank">http://www.dune-project.org/external_libraries/install_ug.html</a>] seem unclear when compiling against the 2.2 release of DUNE. The set of patches for the 2.0 release of DUNE lead to a configure error (the version is too old) so that UG is not enabled. The set of patches for the current svn version of DUNE configure fine and work well with the code in dune-grid-howto (parfinitevolume.cc).</div>
<div><br></div><div>However, when using UGGRID as the GRIDTYPE with dune-fem code (for example the school code in 03.poisson/src/poisson.cc) leads to the following compiler error:</div><div></div><div></div><div></div><div>
</div><div style="line-height:1.2;color:rgb(34,34,34);font-size:1em;font-family:Helvetica,arial,freesans,clean,sans-serif;border:none">
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;overflow:auto;margin:1em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;white-space:pre-wrap;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block;padding:0.5em;color:rgb(51,51,51);background-color:rgb(248,248,255);background-repeat:initial initial">$ make poisson GRIDTYPE=UGGRID
mpic++ -std=c++0x -DHAVE_CONFIG_H -I. -I../../.. -I/home/tom/software/dune/dune-common -I/home/tom/software/dune/dune-istl -I/home/tom/software/dune/dune-geometry -I/home/tom/software/dune/dune-grid -I/home/tom/software/dune/dune-localfunctions -I/home/tom/software/dune/dune-fem-1.3.0 -I/home/tom/software/dune/dune-common -I/home/tom/software/dune/dune-istl -I/home/tom/software/dune/dune-geometry -I/home/tom/software/dune/dune-grid -I/home/tom/software/dune/dune-localfunctions -I/home/tom/software/dune/modules/SuiteSparse/UMFPACK/Include -I/home/tom/software/dune/modules/SuiteSparse/UFconfig -I/home/tom/software/dune/modules/SuiteSparse/AMD/Include -DENABLE_UMFPACK=1 -I/home/tom/software/dune/dune-fem-1.3.0 -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1 -I/home/tom/software/dune/dune-common -I/home/tom/software/dune/dune-istl -I/home/tom/software/dune/dune-geometry -DGRIDDIM=2 -DWORLDDIM=2 -DUGGRID -I/home/tom/software/dune/modules/alberta-3.x-20120316-3708/include -I/home/tom/software/dune/modules/alberta-3.x-20120316-3708/include/alberta -DALBERTA_DIM=2 -DENABLE_ALBERTA -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1 -I/home/tom/software/dune/modules/UG/ug/install/include/ug -DENABLE_UG -DModelP -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1 -I/home/tom/software/dune/modules/ALUGrid-1.50/include -I/home/tom/software/dune/modules/ALUGrid-1.50/include/serial -I/home/tom/software/dune/modules/ALUGrid-1.50/include/duneinterface -DENABLE_ALUGRID -I/home/tom/software/dune/modules/ALUGrid-1.50/include/parallel -I/home/tom/software/dune/dune-grid -I/home/tom/software/dune/dune-localfunctions -I/home/tom/software/dune/modules/SuiteSparse/UMFPACK/Include -I/home/tom/software/dune/modules/SuiteSparse/UFconfig -I/home/tom/software/dune/modules/SuiteSparse/AMD/Include -DENABLE_UMFPACK=1 -I/home/tom/software/dune/dune-fem-1.3.0 -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1 -DPOLORDER=1 -DWANT_ISTL=1 -O2 -Wall -Wfatal-errors -Wno-deprecated-declarations -MT poisson.o -MD -MP -MF .deps/poisson.Tpo -c -o poisson.o poisson.cc
In file included from /home/tom/software/dune/dune-grid/dune/grid/uggrid.hh:104:0,
from ../../../config.h:528,
from poisson.cc:1:
/home/tom/software/dune/dune-grid/dune/grid/uggrid/uggridleafiterator.hh: In member function ‘void Dune::UGGridLeafIterator<codim, pitype, GridImp>::globalIncrement() [with int codim = 1, Dune::PartitionIteratorType pitype = (Dune::PartitionIteratorType)4u, GridImp = const Dune::UGGrid<2>]’:
/home/tom/software/dune/dune-grid/dune/grid/uggrid/uggridleafiterator.hh:63:13: instantiated from ‘void Dune::UGGridLeafIterator<codim, pitype, GridImp>::increment() [with int codim = 1, Dune::PartitionIteratorType pitype = (Dune::PartitionIteratorType)4u, GridImp = const Dune::UGGrid<2>]’
/home/tom/software/dune/dune-grid/dune/grid/common/entityiterator.hh:47:7: instantiated from ‘Dune::EntityIterator<codim, Grid, IteratorImp>& Dune::EntityIterator<codim, Grid, IteratorImp>::operator++() [with int codim = 1, Grid = const Dune::UGGrid<2>, IteratorImp = Dune::UGGridLeafIterator<1, (Dune::PartitionIteratorType)4u, const Dune::UGGrid<2> >, Dune::EntityIterator<codim, Grid, IteratorImp> = Dune::EntityIterator<1, const Dune::UGGrid<2>, Dune::UGGridLeafIterator<1, (Dune::PartitionIteratorType)4u, const Dune::UGGrid<2> > >]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/gridpart/adaptiveleafindexset.hh:998:66: instantiated from ‘void Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::setupCodimSet(const std::integral_constant<bool, <span>true</span>>&) const [with int codim = 1, TraitsImp = Dune::Fem::AdaptiveLeafIndexSetTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>> >]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/gridpart/adaptiveleafindexset.hh:510:11: instantiated from ‘Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::IndexType Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::index(const typename TraitsImp::GridPartType::GridType::Codim<codim>::Entity&) const [with int codim = 1, TraitsImp = Dune::Fem::AdaptiveLeafIndexSetTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>> >, Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::IndexType = unsigned int, typename TraitsImp::GridPartType::GridType::Codim<codim>::Entity = Dune::Entity<1, 2, const Dune::UGGrid<2>, Dune::UGGridEntity>]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/gridpart/adaptiveleafindexset.hh:499:53: instantiated from ‘Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::IndexType Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::index(const Entity&) const [with Entity = Dune::UGMakeableEntity<1, 2, Dune::UGGrid<2> >, TraitsImp = Dune::Fem::AdaptiveLeafIndexSetTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>> >, Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::IndexType = unsigned int]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/space/dofmapper/dofmapper.hh:481:70: <span>[ skipping 12 instantiation contexts ]</span>
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/function/common/discretefunction_inline.hh:169:59: instantiated from ‘Dune::Fem::DiscreteFunctionDefault<DFTraits>::RangeFieldType Dune::Fem::DiscreteFunctionDefault<DFTraits>::scalarProductDofs(const DiscreteFunctionInterfaceType&) const [with DiscreteFunctionTraits = Dune::Fem::AdaptiveDiscreteFunctionTraits<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::DiscreteFunctionDefault<DFTraits>::RangeFieldType = double, Dune::Fem::DiscreteFunctionDefault<DFTraits>::DiscreteFunctionInterfaceType = Dune::Fem::DiscreteFunctionInterface<Dune::Fem::AdaptiveDiscreteFunctionTraits<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> > >]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/solver/cginverseoperator.hh:444:87: instantiated from ‘void Dune::Fem::ConjugateGradientSolver<Operator>::solve(const OperatorType&, const PreconditionerType&, const RangeFunctionType&, Dune::Fem::ConjugateGradientSolver<Operator>::DomainFunctionType&) const [with Operator = Dune::Fem::Operator<Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> > >, Dune::Fem::ConjugateGradientSolver<Operator>::OperatorType = Dune::Fem::Operator<Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> > >, Dune::Fem::ConjugateGradientSolver<Operator>::PreconditionerType = Dune::Fem::Operator<Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> > >, typename Operator::DomainFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, typename Operator::RangeFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::ConjugateGradientSolver<Operator>::RangeFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::ConjugateGradientSolver<Operator>::DomainFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >]’
/home/tom/software/dune/dune-fem-1.3.0/dune/fem/solver/cginverseoperator.hh:254:13: instantiated from ‘void Dune::Fem::Solver::CGInverseOperator<DiscreteFunction>::operator()(const DomainFunctionType&, Dune::Fem::Solver::CGInverseOperator<DiscreteFunction>::RangeFunctionType&) const [with DiscreteFunction = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::Solver::CGInverseOperator<DiscreteFunction>::DomainFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::Solver::CGInverseOperator<DiscreteFunction>::RangeFunctionType = Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>>, 1, Dune::Fem::CachingStorage> >]’
femscheme.hh:149:5: instantiated from ‘void FemScheme<Model>::solve(bool) [with Model = DiffusionModel<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u, <span>false</span>> >]’
poisson.cc:67:3: instantiated from ‘double algorithm(HGridType&, int) [with HGridType = Dune::UGGrid<2>]’
poisson.cc:137:61: instantiated from here
/home/tom/software/dune/dune-grid/dune/grid/uggrid/uggridleafiterator.hh:124:9: error: invalid conversion from ‘void*’ to ‘Dune::UG_NS<2>::Entity<1>::T* {aka UG::D2::edge*}’ [-fpermissive]
compilation terminated due to -Wfatal-errors.
make: *** [poisson.o] Error 1</code></pre>
</div><div></div><div></div><div>For information,</div><div></div><div style="line-height:1.2;color:rgb(34,34,34);font-size:1em;font-family:Helvetica,arial,freesans,clean,sans-serif;border:none">
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;overflow:auto;margin:1em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;white-space:pre-wrap;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block;padding:0.5em;color:rgb(51,51,51);background-color:rgb(248,248,255);background-repeat:initial initial">$ mpic++ --version
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source <span style="color:rgb(51,51,51);font-weight:bold">for</span> copying conditions. There is NO
warranty; not even <span style="color:rgb(51,51,51);font-weight:bold">for</span> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</code></pre>
</div><div></div><div>I use the core dune modules release version 2.2 and dune-fem 1.3.0. I've attached the config.log files for dune-grid, dune-fem and ug.</div><div><br></div><div>Does anyone have any ideas what I'm doing wrong and how to fix this?</div>
<div><br></div><div>Kind Regards,</div><div>Tom</div><div></div>