[dune-pdelab] [dune-pdelab-commit] dune-pdelab r1054 - in trunk/dune/pdelab: finiteelementmap gridfunctionspace

Christian Engwer christi at uni-hd.de
Fri Feb 11 12:11:51 CET 2011


On Fri, Feb 11, 2011 at 11:35:03AM +0100, Felix Heimann wrote:
> Hi Christian, hi PDElab users,
> 
> simply reverting the patch will again lead to completely undefined
> behavior of these functions for non-trivial block vectors. Instead, I

I know, I'm currently testing my patch. Just be patient.

Christian

> would propose to let the VectorContainer from the StdVectorBackend
> export a BlockSize = 1 . Are there better ideas, objections?
> Otherwise,

This is not a ood idea, as it doesn't work for dynamic blocks or
deeper hierarchies.

> I'll make the corresponding adjustments, to get PDElab in a stable state
> again.
> 
> Best, Felix
> 
> Am Freitag, den 11.02.2011, 10:51 +0100 schrieb
> christi at conan.iwr.uni-heidelberg.de:
> > Author: christi
> > Date: Fri Feb 11 10:51:25 2011
> > New Revision: 1054
> > URL: http://svn.dune-project.org/websvn/listing.php?repname=dune-pdelab&path=/&rev=1054&sc=1
> > 
> > Log:
> > Revert Felix quick-fix, it broke all code _not_ using a BlockVector
> > 
> > Modified:
> >    trunk/dune/pdelab/finiteelementmap/p1fem.hh   (props changed)
> >    trunk/dune/pdelab/finiteelementmap/q1fem.hh   (props changed)
> >    trunk/dune/pdelab/gridfunctionspace/constraints.hh
> > 
> > Modified: trunk/dune/pdelab/gridfunctionspace/constraints.hh
> > ==============================================================================
> > --- trunk/dune/pdelab/gridfunctionspace/constraints.hh	Mon Feb  7 12:02:05 2011	(r1053)
> > +++ trunk/dune/pdelab/gridfunctionspace/constraints.hh	Fri Feb 11 10:51:25 2011	(r1054)
> > @@ -605,15 +605,9 @@
> >      void set_nonconstrained_dofs (const CG& cg, typename XG::ElementType x, XG& xg)
> >      {
> >        typedef typename XG::Backend B;
> > -      for (typename XG::size_type i=0; i<xg.size(); ++i){
> > -
> > -        for (typename XG::size_type j=0; j < B::BlockSize; ++j){
> > -          const typename XG::size_type flat_index = i * B::BlockSize + j;
> > -          if (cg.find(flat_index)==cg.end())
> > -            B::access(xg,flat_index) = x;
> > -        }
> > -
> > -      }
> > +      for (typename XG::size_type i=0; i<xg.size(); ++i)
> > +        if (cg.find(i)==cg.end())
> > +          B::access(xg,i) = x;
> >  	}
> >  
> >      // construct constraints from given boundary condition function
> > @@ -626,16 +620,9 @@
> >      void copy_nonconstrained_dofs (const CG& cg, const XG& xgin, XG& xgout)
> >      {
> >        typedef typename XG::Backend B;
> > -      for (typename XG::size_type i=0; i<xgin.size(); ++i){
> > -
> > -
> > -        for (typename XG::size_type j=0; j < B::BlockSize; ++j){
> > -          const typename XG::size_type flat_index = i * B::BlockSize + j;
> > -          if (cg.find(flat_index)==cg.end())
> > -            B::access(xgout,flat_index) = B::access(xgin,flat_index);
> > -        }
> > -
> > -      }
> > +      for (typename XG::size_type i=0; i<xgin.size(); ++i)
> > +        if (cg.find(i)==cg.end())
> > +          B::access(xgout,i) = B::access(xgin,i);
> >  	}
> >  
> >      // construct constraints from given boundary condition function
> > @@ -650,13 +637,9 @@
> >        typedef typename XG::Backend B;
> >  	  typedef typename CG::const_iterator global_col_iterator;
> >        for (typename XG::size_type i=0; i<xg.size(); ++i){
> > -
> > -        for (typename XG::size_type j=0; j < B::BlockSize; ++j){
> > -          const typename XG::size_type flat_index = i * B::BlockSize + j;
> > -          global_col_iterator it = cg.find(flat_index);
> > -          if (it == cg.end() || it->second.size() > 0)
> > -            B::access(xg,flat_index) = x;
> > -        }
> > +        global_col_iterator it = cg.find(i);
> > +        if (it == cg.end() || it->second.size() > 0)
> > +          B::access(xg,i) = x;
> >        }
> >  	}
> >  
> > 
> > _______________________________________________
> > dune-pdelab-commit mailing list
> > dune-pdelab-commit at dune-project.org
> > http://lists.dune-project.org/mailman/listinfo/dune-pdelab-commit
> 
> -- 
> Felix Heimann
> Universität Heidelberg
> Interdisziplinäres Zentrum für Wissenschaftliches Rechnen
> Arbeitsgruppe Paralleles Rechnen
> IWR 368, Raum 422
> Tel: 06221 / 54 8881
> 
> 
> _______________________________________________
> dune-pdelab mailing list
> dune-pdelab at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab




More information about the dune-pdelab mailing list