From: hartmann Date: Wed, 30 Jun 1999 12:54:19 +0000 (+0000) Subject: implementation of #get_local_mass_matrix# X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca30236c05d7db360bf3e785c722df89b00d0b15;p=dealii-svn.git implementation of #get_local_mass_matrix# git-svn-id: https://svn.dealii.org/trunk@1512 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/fe/fe_system.cc b/deal.II/deal.II/source/fe/fe_system.cc index 389714d643..fa4a82536a 100644 --- a/deal.II/deal.II/source/fe/fe_system.cc +++ b/deal.II/deal.II/source/fe/fe_system.cc @@ -628,32 +628,44 @@ void FESystem::get_face_support_points (const DoFHandler::face_iterato template -void FESystem::get_local_mass_matrix (const DoFHandler::cell_iterator &/*cell*/, - FullMatrix &/*local_mass_matrix*/) const +void FESystem::get_local_mass_matrix (const DoFHandler::cell_iterator &cell, + FullMatrix &local_mass_matrix) const { - Assert(false, ExcNotImplemented()); -/* Assert (local_mass_matrix.n() == total_dofs, ExcWrongFieldDimension(local_mass_matrix.n(),total_dofs)); Assert (local_mass_matrix.m() == total_dofs, ExcWrongFieldDimension(local_mass_matrix.m(),total_dofs)); - // first get the local mass matrix for - // the base object - FullMatrix base_mass_matrix (base_element.total_dofs, - base_element.total_dofs); - base_element.get_local_mass_matrix (cell, base_mass_matrix); - - - // now distribute it to the mass matrix - // of this object - for (unsigned int i=0; i base_mass_matrix (base_element_total_dofs, + base_element_total_dofs); + base_element(base_el).get_local_mass_matrix (cell, base_mass_matrix); + + // now distribute it to the mass matrix + // of this object + const unsigned int el_multiplicity=element_multiplicity(base_el); + for (unsigned int n=0; n