[dune-fem] UG linking problems
Martin Nolte
nolte at mathematik.uni-freiburg.de
Fri Sep 14 15:10:07 CEST 2012
Ahh, I see. Could this problem originate from the namespace change? In
adaptiveleafindexset.hh, there are the following lines (within the namespace Fem):
template< int codim >
struct CallSetUpCodimSet
: public CallSetUpCodimSetBase< codim, Capabilities :: hasEntity <
GridType, codim > :: v >
{
};
What happens, if you say Dune::Capabilities::hasEntity instead?
Note:Similarly, GetFaceEntity and InsertGhostSubEntities might need to be fixed.
Best,
Martin
On 09/14/2012 02:41 PM, Dedner, Andreas wrote:
> @Martin: if you look at the error message, its triggered from the codimIndexSet and for some
> reason its assuming that UG has Codim 1 entities:
>> /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,true>&) const [with int codim = 1, TraitsImp = Dune::Fem::AdaptiveLeafIndexSetTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u,false> >]’
> Now as far as I can see the Capability in dune-grid still says that UGGrid only has Entityies for codim=0 and dim...
> ________________________________________
> From: dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org [dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org] on behalf of Martin Nolte [nolte at mathematik.uni-freiburg.de]
> Sent: 14 September 2012 12:27
> To: dune-fem at dune-project.org
> Subject: Re: [dune-fem] UG linking problems
>
> Hi Tom,
>
> despite the fact that only dune-fem triggers the problem, I fear Andreas is
> right. I does seem like a dune-grid issue.
>
> Could you try using the current development trunk of the core modules? Maybe
> the problem has already been fixed in the mean time.
>
> Best,
>
> Martin
>
> On 09/14/2012 12:47 PM, Tom Ranner wrote:
>> Both compile and run fine.
>>
>> Tom
>>
>> On 14 September 2012 11:37, Dedner, Andreas <A.S.Dedner at warwick.ac.uk
>> <mailto:A.S.Dedner at warwick.ac.uk>> wrote:
>>
>> Hi Tom.
>>
>> This does not really look like a dune-fem problem to me.
>> Could you try the test in dune-grid, i.e.,
>> in dune/grid/test try make test-ug test-parallel-ug
>> Does that work?
>>
>> Best
>> Andreas
>>
>> ------------------------------------------------------------------------------
>> *From:* dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org
>> <mailto:warwick.ac.uk at dune-project.org>
>> [dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org
>> <mailto:warwick.ac.uk at dune-project.org>] on behalf of Tom Ranner
>> [t.ranner at warwick.ac.uk <mailto:t.ranner at warwick.ac.uk>]
>> *Sent:* 14 September 2012 11:15
>> *To:* dune-fem at dune-project.org <mailto:dune-fem at dune-project.org>
>> *Subject:* [dune-fem] UG linking problems
>>
>> Dear all,
>>
>> From reading
>> [http://users.dune-project.org/projects/1/wiki/Grid-Manager_Features], 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.
>>
>> The instructions from
>> [http://www.dune-project.org/external_libraries/install_ug.html] 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).
>>
>> 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:
>>
>> |$ 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/
du
> ne/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/
du
> ne-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,true>&) const [with int codim = 1, TraitsImp = Dune::Fem::AdaptiveLeafIndexSetTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u,false> >]’
>> /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,false> >, 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,false> >, Dune::Fem::AdaptiveIndexSetBase<TraitsImp>::IndexType = unsigned int]’
>> /home/tom/software/dune/dune-fem-1.3.0/dune/fem/space/dofmapper/dofmapper.hh:481:70:[ skipping 12 instantiation contexts ]
>> /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,false>, 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,false>, 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,false>, 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,false>, 1, Dune::Fem::CachingStorage> > >, Dune::Fem::ConjugateGradientSolver<Operator>::OperatorType = Dune::Fem::Operator<Dune::Fem::AdaptiveDiscreteFunction<Dune::Fem::LagrangeDiscreteFunct
io
> nSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u,false>, 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,false>, 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,false>, 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,false>, 1, Dune::Fem::CachingSt
or
> age> > >, 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,false>, 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,false>, 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,false>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::ConjugateGradientSolver<Operator>::DomainFunctionType = Dune::Fem::AdaptiveDiscreteFunctio
n<
> Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u,false>, 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,false>, 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,false>, 1, Dune::Fem::CachingStorage> >, Dune::Fem::Solver::CGInverseOperator<DiscreteFunction>::RangeFunctionType = Dune::Fem::AdaptiveDiscreteFuncti
on
> <Dune::Fem::LagrangeDiscreteFunctionSpace<Dune::Fem::FunctionSpace<double, double, 2, 1>, Dune::Fem::AdaptiveLeafGridPart<Dune::UGGrid<2>, (Dune::PartitionIteratorType)1u,false>, 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,false> >]’
>> 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|
>>
>> For information,
>>
>> |$ 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 sourcefor copying conditions. There is NO
>> warranty; not evenfor MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.|
>>
>> 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.
>>
>> Does anyone have any ideas what I'm doing wrong and how to fix this?
>>
>> Kind Regards,
>> Tom
>>
>> _______________________________________________
>> dune-fem mailing list
>> dune-fem at dune-project.org <mailto:dune-fem at dune-project.org>
>> http://lists.dune-project.org/mailman/listinfo/dune-fem
>>
>>
>>
>>
>> --
>> Tom Ranner
>> Mathematics Institute
>> Zeeman Building
>> University of Warwick
>> Coventry
>> CV4 7AL
>>
>> Email: t.ranner at warwick.ac.uk <mailto:t.ranner at warwick.ac.uk>
>> Tel: +44 (0) 7861 173636
>> Web: go.warwick.ac.uk/tranner <http://go.warwick.ac.uk/tranner>
>>
>>
>> _______________________________________________
>> dune-fem mailing list
>> dune-fem at dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune-fem
>>
>
> --
> Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>
>
> Universität Freiburg phone: +49-761-203-5630
> Abteilung für angewandte Mathematik fax: +49-761-203-5632
> Hermann-Herder-Straße 10
> 79104 Freiburg, Germany
>
> _______________________________________________
> dune-fem mailing list
> dune-fem at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-fem
>
>
--
Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>
Universität Freiburg phone: +49-761-203-5630
Abteilung für angewandte Mathematik fax: +49-761-203-5632
Hermann-Herder-Straße 10
79104 Freiburg, Germany
More information about the dune-fem
mailing list