for (IT i= copy_indices[level].begin();
i != copy_indices[level].end();++i)
dst[level](i->second) = src(i->first);
+ // For non-DG: degrees of
+ // freedom in the refinement
+ // face may need special
+ // attention, since they belong
+ // to the coarse level, but
+ // have fine level basis
+ // functions
if (!first)
restrict_and_add (level+1, dst[level], dst[level+1]);
first = false;
OutVector& dst,
const MGLevelObject<VECTOR>& src) const
{
+ // For non-DG: degrees of
+ // freedom in the refinement
+ // face may need special
+ // attention, since they belong
+ // to the coarse level, but
+ // have fine level basis
+ // functions
for (unsigned int level=0;level<mg_dof_handler.get_tria().n_levels();++level)
for (IT i= copy_indices[level].begin();
i != copy_indices[level].end();++i)
OutVector &dst,
const MGLevelObject<VECTOR> &src) const
{
+ // For non-DG: degrees of
+ // freedom in the refinement
+ // face may need special
+ // attention, since they belong
+ // to the coarse level, but
+ // have fine level basis
+ // functions
for (unsigned int level=0;level<mg_dof_handler.get_tria().n_levels();++level)
for (IT i= copy_indices[level].begin();
i != copy_indices[level].end();++i)
// $Id$
// Version: $Name$
//
-// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors
+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 by the deal.II authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
}
}
}
-
+ // For non-DG elements, add a
+ // condense operator here.
+
+ // Prepare indices to copy from a
+ // global vector to the parts of an
+ // MGVector corresponding to active
+ // cells.
copy_indices.resize(mg_dof.get_tria().n_levels());
std::vector<unsigned int> global_dof_indices (dofs_per_cell);
std::vector<unsigned int> level_dof_indices (dofs_per_cell);