]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
merge from mainline
authorheister <heister@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 1 Nov 2012 19:08:54 +0000 (19:08 +0000)
committerheister <heister@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 1 Nov 2012 19:08:54 +0000 (19:08 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_merge_mg_into_dof_handler@27293 0785d39b-7218-0410-832d-ea1e28bc413d

1  2 
deal.II/source/dofs/dof_handler.cc
deal.II/source/grid/grid_tools.cc

index d1a371c03f91d78e05d5f342b6adc34a6874ef84,afa53fe64e312a959f22b44ceabf0c19005c6662..3f78fac5bf3bc83aaa6beebf4dcd7fe32187c1d3
@@@ -1229,74 -842,10 +1229,76 @@@ void DoFHandler<dim,spacedim>::clear_sp
  
    std::vector<unsigned int> tmp;
    std::swap (vertex_dofs, tmp);
+   number_cache.clear ();
  }
  
 +template<int dim, int spacedim>
 +template<int structdim>
 +unsigned int DoFHandler<dim, spacedim>::get_dof_index (const unsigned int obj_level, const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index) const {
 +  return internal::DoFHandler::Implementation::get_dof_index (*this, *this->mg_levels[obj_level], *this->mg_faces, obj_index, fe_index, local_index, internal::int2type<structdim> ());
 +}
 +
 +template<int dim, int spacedim>
 +template<int structdim>
 +void DoFHandler<dim, spacedim>::set_dof_index (const unsigned int obj_level, const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index, const unsigned int global_index) const {
 +  internal::DoFHandler::Implementation::set_dof_index (*this, *this->mg_levels[obj_level], *this->mg_faces, obj_index, fe_index, local_index, global_index, internal::int2type<structdim> ());
 +}
 +
 +template<int dim, int spacedim>
 +DoFHandler<dim, spacedim>::MGVertexDoFs::MGVertexDoFs (): coarsest_level (numbers::invalid_unsigned_int), finest_level (0), indices (0), indices_offset (0) {
 +}
 +
 +template<int dim, int spacedim>
 +DoFHandler<dim, spacedim>::MGVertexDoFs::~MGVertexDoFs () {
 +  delete[] indices;
 +  delete[] indices_offset;
 +}
 +
 +template<int dim, int spacedim>
 +void DoFHandler<dim, spacedim>::MGVertexDoFs::init (const unsigned int cl, const unsigned int fl, const unsigned int dofs_per_vertex) {
 +  if (indices != 0) {
 +    delete[] indices;
 +    indices = 0;
 +  }
 +
 +  if (indices_offset != 0) {
 +    delete[] indices_offset;
 +    indices_offset = 0;
 +  }
 +
 +  coarsest_level = cl;
 +  finest_level = fl;
 +
 +  if (cl > fl)
 +    return;
 +
 +  const unsigned int n_levels = finest_level - coarsest_level + 1;
 +  const unsigned int n_indices = n_levels * dofs_per_vertex;
 +
 +  indices = new unsigned int[n_indices];
 +  Assert (indices != 0, ExcNoMemory ());
 +
 +  for (unsigned int i = 0; i < n_indices; ++i)
 +    indices[i] = DoFHandler<dim, spacedim>::invalid_dof_index;
 +
 +  indices_offset = new unsigned int[n_levels];
 +  Assert (indices != 0, ExcNoMemory ());
 +
 +  for (unsigned int i = 0; i < n_levels; ++i)
 +    indices_offset[i] = i * dofs_per_vertex;
 +}
 +
 +template<int dim, int spacedim>
 +unsigned int DoFHandler<dim, spacedim>::MGVertexDoFs::get_coarsest_level () const {
 +  return coarsest_level;
 +}
 +
 +template<int dim, int spacedim>
 +unsigned int DoFHandler<dim, spacedim>::MGVertexDoFs::get_finest_level () const {
 +  return finest_level;
 +}
 +
  
  /*-------------- Explicit Instantiations -------------------------------*/
  #include "dof_handler.inst"
Simple merge

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.