From 546b8da15dff1e40132fea10242885edde5f10a6 Mon Sep 17 00:00:00 2001 From: kanschat Date: Tue, 5 Jul 2011 19:38:30 +0000 Subject: [PATCH] start fixing FE_Face git-svn-id: https://svn.dealii.org/trunk@23919 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/fe/fe_poly_face.templates.h | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/deal.II/include/deal.II/fe/fe_poly_face.templates.h b/deal.II/include/deal.II/fe/fe_poly_face.templates.h index cf747bd14e..9d13584065 100644 --- a/deal.II/include/deal.II/fe/fe_poly_face.templates.h +++ b/deal.II/include/deal.II/fe/fe_poly_face.templates.h @@ -1,7 +1,7 @@ //--------------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2009, 2010 by the deal.II authors +// Copyright (C) 2009, 2010, 2011 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -90,7 +90,6 @@ FE_PolyFace::get_data ( const Mapping&, const Quadrature&) const { - Assert(false, ExcNotImplemented()); return 0; } @@ -127,15 +126,15 @@ FE_PolyFace::get_face_data ( // allocate memory if (flags & update_values) { - values.resize (this->dofs_per_cell); - data->shape_values.resize (this->dofs_per_cell, + values.resize (poly_space.n()); + data->shape_values.resize (poly_space.n(), std::vector (n_q_points)); for (unsigned int i=0; idofs_per_cell; ++k) + for (unsigned int k=0; kshape_values[k][i] = values[k]; } } @@ -180,7 +179,8 @@ FE_PolyFace::fill_fe_values FEValuesData&, CellSimilarity::Similarity&) const { - Assert(false, ExcNotImplemented()); + // Do nothing, since we do not have + // values in the interior } @@ -190,7 +190,7 @@ void FE_PolyFace::fill_fe_face_values ( const Mapping&, const typename Triangulation::cell_iterator&, - const unsigned int, + const unsigned int face, const Quadrature& quadrature, typename Mapping::InternalDataBase&, typename Mapping::InternalDataBase& fedata, @@ -205,12 +205,15 @@ FE_PolyFace::fill_fe_face_values ( const UpdateFlags flags(fe_data.update_once | fe_data.update_each); - for (unsigned int k=0; kdofs_per_cell; ++k) - { - if (flags & update_values) - for (unsigned int i=0; idofs_per_cell; ++k) + data.shape_values(k,i) = 0.; + for (unsigned int k=0; k::fill_fe_subface_values ( const Mapping&, const typename Triangulation::cell_iterator&, - const unsigned int, + const unsigned int face, const unsigned int subface, const Quadrature& quadrature, typename Mapping::InternalDataBase&, @@ -235,14 +238,18 @@ FE_PolyFace::fill_fe_subface_values ( const UpdateFlags flags(fe_data.update_once | fe_data.update_each); - unsigned int offset = subface*quadrature.size(); - for (unsigned int k=0; kdofs_per_cell; ++k) - { - if (flags & update_values) - for (unsigned int i=0; idofs_per_cell; ++k) + data.shape_values(k,i) = 0.; + for (unsigned int k=0; k