From 10ba9b82b93b6b6c44ce6dd37acdfe2f2e15c8ab Mon Sep 17 00:00:00 2001 From: alberto sartori Date: Wed, 2 Mar 2016 14:59:39 +0100 Subject: [PATCH] commented some stuff --- source/fe/mapping_manifold.cc | 969 +++++++++++++++++----------------- 1 file changed, 485 insertions(+), 484 deletions(-) diff --git a/source/fe/mapping_manifold.cc b/source/fe/mapping_manifold.cc index d50e46098b..2461bfbeaa 100644 --- a/source/fe/mapping_manifold.cc +++ b/source/fe/mapping_manifold.cc @@ -231,7 +231,7 @@ transform_unit_to_real_cell (const typename Triangulation::cell_it const Point &p) const { std::vector > vertices; - std::vector > weights; + std::vector weights; for (unsigned int v=0; v::vertices_per_cell; ++v) { vertices.push_back(cell->vertex(v)); @@ -901,183 +901,183 @@ namespace internal -template -CellSimilarity::Similarity -MappingManifold:: -fill_fe_values (const typename Triangulation::cell_iterator &cell, - const CellSimilarity::Similarity cell_similarity, - const Quadrature &quadrature, - const typename Mapping::InternalDataBase &internal_data, - internal::FEValues::MappingRelatedData &output_data) const -{ - // ensure that the following static_cast is really correct: - Assert (dynamic_cast(&internal_data) != 0, - ExcInternalError()); - const InternalData &data = static_cast(internal_data); - - const unsigned int n_q_points=quadrature.size(); - - // if necessary, recompute the support points of the transformation of this cell - // (note that we need to first check the triangulation pointer, since otherwise - // the second test might trigger an exception if the triangulations are not the - // same) - if ((data.mapping_support_points.size() == 0) - || - (&cell->get_triangulation() != - &data.cell_of_current_support_points->get_triangulation()) - || - (cell != data.cell_of_current_support_points)) - { - data.mapping_support_points = this->compute_mapping_support_points(cell); - data.cell_of_current_support_points = cell; - } - - internal::maybe_compute_q_points (QProjector::DataSetDescriptor::cell (), - data, - output_data.quadrature_points); - internal::maybe_update_Jacobians (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data); - - const UpdateFlags update_flags = data.update_each; - const std::vector &weights=quadrature.get_weights(); - - // Multiply quadrature weights by absolute value of Jacobian determinants or - // the area element g=sqrt(DX^t DX) in case of codim > 0 - - if (update_flags & (update_normal_vectors - | update_JxW_values)) - { - AssertDimension (output_data.JxW_values.size(), n_q_points); - - Assert( !(update_flags & update_normal_vectors ) || - (output_data.normal_vectors.size() == n_q_points), - ExcDimensionMismatch(output_data.normal_vectors.size(), n_q_points)); - - - if (cell_similarity != CellSimilarity::translation) - for (unsigned int point=0; point 1e-12*Utilities::fixed_power(cell->diameter()/ - std::sqrt(double(dim))), - (typename Mapping::ExcDistortedMappedCell(cell->center(), det, point))); +// template +// CellSimilarity::Similarity +// MappingManifold:: +// fill_fe_values (const typename Triangulation::cell_iterator &cell, +// const CellSimilarity::Similarity cell_similarity, +// const Quadrature &quadrature, +// const typename Mapping::InternalDataBase &internal_data, +// internal::FEValues::MappingRelatedData &output_data) const +// { +// // ensure that the following static_cast is really correct: +// Assert (dynamic_cast(&internal_data) != 0, +// ExcInternalError()); +// const InternalData &data = static_cast(internal_data); + +// const unsigned int n_q_points=quadrature.size(); + +// // if necessary, recompute the support points of the transformation of this cell +// // (note that we need to first check the triangulation pointer, since otherwise +// // the second test might trigger an exception if the triangulations are not the +// // same) +// if ((data.mapping_support_points.size() == 0) +// || +// (&cell->get_triangulation() != +// &data.cell_of_current_support_points->get_triangulation()) +// || +// (cell != data.cell_of_current_support_points)) +// { +// data.mapping_support_points = this->compute_mapping_support_points(cell); +// data.cell_of_current_support_points = cell; +// } - output_data.JxW_values[point] = weights[point] * det; - } - // if dim==spacedim, then there is no cell normal to - // compute. since this is for FEValues (and not FEFaceValues), - // there are also no face normals to compute - else //codim>0 case - { - Tensor<1, spacedim> DX_t [dim]; - for (unsigned int i=0; i (QProjector::DataSetDescriptor::cell (), +// data, +// output_data.quadrature_points); +// internal::maybe_update_Jacobians (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data); - Tensor<2, dim> G; //First fundamental form - for (unsigned int i=0; i &weights=quadrature.get_weights(); - output_data.JxW_values[point] - = sqrt(determinant(G)) * weights[point]; +// // Multiply quadrature weights by absolute value of Jacobian determinants or +// // the area element g=sqrt(DX^t DX) in case of codim > 0 - if (cell_similarity == CellSimilarity::inverted_translation) - { - // we only need to flip the normal - if (update_flags & update_normal_vectors) - output_data.normal_vectors[point] *= -1.; - } - else - { - const unsigned int codim = spacedim-dim; - (void)codim; +// if (update_flags & (update_normal_vectors +// | update_JxW_values)) +// { +// AssertDimension (output_data.JxW_values.size(), n_q_points); + +// Assert( !(update_flags & update_normal_vectors ) || +// (output_data.normal_vectors.size() == n_q_points), +// ExcDimensionMismatch(output_data.normal_vectors.size(), n_q_points)); + + +// if (cell_similarity != CellSimilarity::translation) +// for (unsigned int point=0; point 1e-12*Utilities::fixed_power(cell->diameter()/ +// std::sqrt(double(dim))), +// (typename Mapping::ExcDistortedMappedCell(cell->center(), det, point))); + +// output_data.JxW_values[point] = weights[point] * det; +// } +// // if dim==spacedim, then there is no cell normal to +// // compute. since this is for FEValues (and not FEFaceValues), +// // there are also no face normals to compute +// else //codim>0 case +// { +// Tensor<1, spacedim> DX_t [dim]; +// for (unsigned int i=0; i G; //First fundamental form +// for (unsigned int i=0; idirection_flag() == false) +// output_data.normal_vectors[point] *= -1.; +// } + +// } +// } //codim>0 case + +// } +// } - if (update_flags & update_normal_vectors) - { - Assert( codim==1 , ExcMessage("There is no cell normal in codim 2.")); - if (dim==1) - output_data.normal_vectors[point] = - cross_product_2d(-DX_t[0]); - else //dim == 2 - output_data.normal_vectors[point] = - cross_product_3d(DX_t[0], DX_t[1]); - output_data.normal_vectors[point] /= output_data.normal_vectors[point].norm(); +// // copy values from InternalData to vector given by reference +// if (update_flags & update_jacobians) +// { +// AssertDimension (output_data.jacobians.size(), n_q_points); +// if (cell_similarity != CellSimilarity::translation) +// for (unsigned int point=0; pointdirection_flag() == false) - output_data.normal_vectors[point] *= -1.; - } +// // copy values from InternalData to vector given by reference +// if (update_flags & update_inverse_jacobians) +// { +// AssertDimension (output_data.inverse_jacobians.size(), n_q_points); +// if (cell_similarity != CellSimilarity::translation) +// for (unsigned int point=0; point0 case +// internal::maybe_update_jacobian_grads (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_grads); - } - } +// internal::maybe_update_jacobian_pushed_forward_grads (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_pushed_forward_grads); +// internal::maybe_update_jacobian_2nd_derivatives (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_2nd_derivatives); +// internal::maybe_update_jacobian_pushed_forward_2nd_derivatives (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_pushed_forward_2nd_derivatives); - // copy values from InternalData to vector given by reference - if (update_flags & update_jacobians) - { - AssertDimension (output_data.jacobians.size(), n_q_points); - if (cell_similarity != CellSimilarity::translation) - for (unsigned int point=0; point (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_3rd_derivatives); - // copy values from InternalData to vector given by reference - if (update_flags & update_inverse_jacobians) - { - AssertDimension (output_data.inverse_jacobians.size(), n_q_points); - if (cell_similarity != CellSimilarity::translation) - for (unsigned int point=0; point (cell_similarity, +// QProjector::DataSetDescriptor::cell (), +// data, +// output_data.jacobian_pushed_forward_3rd_derivatives); - internal::maybe_update_jacobian_grads (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_grads); - - internal::maybe_update_jacobian_pushed_forward_grads (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_pushed_forward_grads); - - internal::maybe_update_jacobian_2nd_derivatives (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_2nd_derivatives); - - internal::maybe_update_jacobian_pushed_forward_2nd_derivatives (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_pushed_forward_2nd_derivatives); - - internal::maybe_update_jacobian_3rd_derivatives (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_3rd_derivatives); - - internal::maybe_update_jacobian_pushed_forward_3rd_derivatives (cell_similarity, - QProjector::DataSetDescriptor::cell (), - data, - output_data.jacobian_pushed_forward_3rd_derivatives); - - return cell_similarity; -} +// return cell_similarity; +// } @@ -1290,159 +1290,159 @@ namespace internal -template -void -MappingManifold:: -fill_fe_face_values (const typename Triangulation::cell_iterator &cell, - const unsigned int face_no, - const Quadrature &quadrature, - const typename Mapping::InternalDataBase &internal_data, - internal::FEValues::MappingRelatedData &output_data) const -{ - // ensure that the following cast is really correct: - Assert ((dynamic_cast(&internal_data) != 0), - ExcInternalError()); - const InternalData &data - = static_cast(internal_data); - - // if necessary, recompute the support points of the transformation of this cell - // (note that we need to first check the triangulation pointer, since otherwise - // the second test might trigger an exception if the triangulations are not the - // same) - if ((data.mapping_support_points.size() == 0) - || - (&cell->get_triangulation() != - &data.cell_of_current_support_points->get_triangulation()) - || - (cell != data.cell_of_current_support_points)) - { - data.mapping_support_points = this->compute_mapping_support_points(cell); - data.cell_of_current_support_points = cell; - } - - internal::do_fill_fe_face_values (*this, - cell, face_no, numbers::invalid_unsigned_int, - QProjector::DataSetDescriptor::face (face_no, - cell->face_orientation(face_no), - cell->face_flip(face_no), - cell->face_rotation(face_no), - quadrature.size()), - quadrature, - data, - output_data); -} - - +// template +// void +// MappingManifold:: +// fill_fe_face_values (const typename Triangulation::cell_iterator &cell, +// const unsigned int face_no, +// const Quadrature &quadrature, +// const typename Mapping::InternalDataBase &internal_data, +// internal::FEValues::MappingRelatedData &output_data) const +// { +// // ensure that the following cast is really correct: +// Assert ((dynamic_cast(&internal_data) != 0), +// ExcInternalError()); +// const InternalData &data +// = static_cast(internal_data); + +// // if necessary, recompute the support points of the transformation of this cell +// // (note that we need to first check the triangulation pointer, since otherwise +// // the second test might trigger an exception if the triangulations are not the +// // same) +// if ((data.mapping_support_points.size() == 0) +// || +// (&cell->get_triangulation() != +// &data.cell_of_current_support_points->get_triangulation()) +// || +// (cell != data.cell_of_current_support_points)) +// { +// data.mapping_support_points = this->compute_mapping_support_points(cell); +// data.cell_of_current_support_points = cell; +// } -template -void -MappingManifold:: -fill_fe_subface_values (const typename Triangulation::cell_iterator &cell, - const unsigned int face_no, - const unsigned int subface_no, - const Quadrature &quadrature, - const typename Mapping::InternalDataBase &internal_data, - internal::FEValues::MappingRelatedData &output_data) const -{ - // ensure that the following cast is really correct: - Assert ((dynamic_cast(&internal_data) != 0), - ExcInternalError()); - const InternalData &data - = static_cast(internal_data); - - // if necessary, recompute the support points of the transformation of this cell - // (note that we need to first check the triangulation pointer, since otherwise - // the second test might trigger an exception if the triangulations are not the - // same) - if ((data.mapping_support_points.size() == 0) - || - (&cell->get_triangulation() != - &data.cell_of_current_support_points->get_triangulation()) - || - (cell != data.cell_of_current_support_points)) - { - data.mapping_support_points = this->compute_mapping_support_points(cell); - data.cell_of_current_support_points = cell; - } +// internal::do_fill_fe_face_values (*this, +// cell, face_no, numbers::invalid_unsigned_int, +// QProjector::DataSetDescriptor::face (face_no, +// cell->face_orientation(face_no), +// cell->face_flip(face_no), +// cell->face_rotation(face_no), +// quadrature.size()), +// quadrature, +// data, +// output_data); +// } + + + +// template +// void +// MappingManifold:: +// fill_fe_subface_values (const typename Triangulation::cell_iterator &cell, +// const unsigned int face_no, +// const unsigned int subface_no, +// const Quadrature &quadrature, +// const typename Mapping::InternalDataBase &internal_data, +// internal::FEValues::MappingRelatedData &output_data) const +// { +// // ensure that the following cast is really correct: +// Assert ((dynamic_cast(&internal_data) != 0), +// ExcInternalError()); +// const InternalData &data +// = static_cast(internal_data); + +// // if necessary, recompute the support points of the transformation of this cell +// // (note that we need to first check the triangulation pointer, since otherwise +// // the second test might trigger an exception if the triangulations are not the +// // same) +// if ((data.mapping_support_points.size() == 0) +// || +// (&cell->get_triangulation() != +// &data.cell_of_current_support_points->get_triangulation()) +// || +// (cell != data.cell_of_current_support_points)) +// { +// data.mapping_support_points = this->compute_mapping_support_points(cell); +// data.cell_of_current_support_points = cell; +// } - internal::do_fill_fe_face_values (*this, - cell, face_no, subface_no, - QProjector::DataSetDescriptor::subface (face_no, subface_no, - cell->face_orientation(face_no), - cell->face_flip(face_no), - cell->face_rotation(face_no), - quadrature.size(), - cell->subface_case(face_no)), - quadrature, - data, - output_data); -} +// internal::do_fill_fe_face_values (*this, +// cell, face_no, subface_no, +// QProjector::DataSetDescriptor::subface (face_no, subface_no, +// cell->face_orientation(face_no), +// cell->face_flip(face_no), +// cell->face_rotation(face_no), +// quadrature.size(), +// cell->subface_case(face_no)), +// quadrature, +// data, +// output_data); +// } namespace { - template - void - transform_fields(const ArrayView > &input, - const MappingType mapping_type, - const typename Mapping::InternalDataBase &mapping_data, - const ArrayView > &output) - { - AssertDimension (input.size(), output.size()); - Assert ((dynamic_cast::InternalData *>(&mapping_data) != 0), - ExcInternalError()); - const typename MappingManifold::InternalData - &data = static_cast::InternalData &>(mapping_data); - - switch (mapping_type) - { - case mapping_contravariant: - { - Assert (data.update_each & update_contravariant_transformation, - typename FEValuesBase::ExcAccessToUninitializedField("update_contravariant_transformation")); - - for (unsigned int i=0; i::ExcAccessToUninitializedField("update_contravariant_transformation")); - Assert (data.update_each & update_volume_elements, - typename FEValuesBase::ExcAccessToUninitializedField("update_volume_elements")); - Assert (rank==1, ExcMessage("Only for rank 1")); - if (rank!=1) - return; - - for (unsigned int i=0; i::ExcAccessToUninitializedField("update_covariant_transformation")); - - for (unsigned int i=0; i + // void + // transform_fields(const ArrayView > &input, + // const MappingType mapping_type, + // const typename Mapping::InternalDataBase &mapping_data, + // const ArrayView > &output) + // { + // AssertDimension (input.size(), output.size()); + // Assert ((dynamic_cast::InternalData *>(&mapping_data) != 0), + // ExcInternalError()); + // const typename MappingManifold::InternalData + // &data = static_cast::InternalData &>(mapping_data); + + // switch (mapping_type) + // { + // case mapping_contravariant: + // { + // Assert (data.update_each & update_contravariant_transformation, + // typename FEValuesBase::ExcAccessToUninitializedField("update_contravariant_transformation")); + + // for (unsigned int i=0; i::ExcAccessToUninitializedField("update_contravariant_transformation")); + // Assert (data.update_each & update_volume_elements, + // typename FEValuesBase::ExcAccessToUninitializedField("update_volume_elements")); + // Assert (rank==1, ExcMessage("Only for rank 1")); + // if (rank!=1) + // return; + + // for (unsigned int i=0; i::ExcAccessToUninitializedField("update_covariant_transformation")); + + // for (unsigned int i=0; i @@ -1753,74 +1753,74 @@ transform (const ArrayView > &input, -template -void -MappingManifold:: -transform (const ArrayView > &input, - const MappingType mapping_type, - const typename Mapping::InternalDataBase &mapping_data, - const ArrayView > &output) const -{ +// template +// void +// MappingManifold:: +// transform (const ArrayView > &input, +// const MappingType mapping_type, +// const typename Mapping::InternalDataBase &mapping_data, +// const ArrayView > &output) const +// { - AssertDimension (input.size(), output.size()); - Assert (dynamic_cast(&mapping_data) != 0, - ExcInternalError()); - const InternalData &data = static_cast(mapping_data); +// AssertDimension (input.size(), output.size()); +// Assert (dynamic_cast(&mapping_data) != 0, +// ExcInternalError()); +// const InternalData &data = static_cast(mapping_data); - switch (mapping_type) - { - case mapping_covariant_gradient: - { - Assert (data.update_each & update_contravariant_transformation, - typename FEValuesBase::ExcAccessToUninitializedField("update_covariant_transformation")); +// switch (mapping_type) +// { +// case mapping_covariant_gradient: +// { +// Assert (data.update_each & update_contravariant_transformation, +// typename FEValuesBase::ExcAccessToUninitializedField("update_covariant_transformation")); - for (unsigned int q=0; q -void -MappingManifold:: -transform (const ArrayView > &input, - const MappingType mapping_type, - const typename Mapping::InternalDataBase &mapping_data, - const ArrayView > &output) const -{ - switch (mapping_type) - { - case mapping_piola_hessian: - case mapping_contravariant_hessian: - case mapping_covariant_hessian: - transform_hessians(input, mapping_type, mapping_data, output); - return; - default: - Assert(false, ExcNotImplemented()); - } -} +// template +// void +// MappingManifold:: +// transform (const ArrayView > &input, +// const MappingType mapping_type, +// const typename Mapping::InternalDataBase &mapping_data, +// const ArrayView > &output) const +// { +// switch (mapping_type) +// { +// case mapping_piola_hessian: +// case mapping_contravariant_hessian: +// case mapping_covariant_hessian: +// transform_hessians(input, mapping_type, mapping_data, output); +// return; +// default: +// Assert(false, ExcNotImplemented()); +// } +// } @@ -1989,73 +1989,73 @@ namespace } -template -void -MappingManifold:: -add_line_support_points (const typename Triangulation::cell_iterator &cell, - std::vector > &a) const -{ - // if we only need the midpoint, then ask for it. - if (this->polynomial_degree==2) - { - for (unsigned int line_no=0; line_no::lines_per_cell; ++line_no) - { - const typename Triangulation::line_iterator line = - (dim == 1 ? - static_cast::line_iterator>(cell) : - cell->line(line_no)); - - const Manifold &manifold = - ( ( line->manifold_id() == numbers::invalid_manifold_id ) && - ( dim < spacedim ) - ? - cell->get_manifold() - : - line->get_manifold() ); - a.push_back(manifold.get_new_point_on_line(line)); - } - } - else - // otherwise call the more complicated functions and ask for inner points - // from the boundary description - { - std::vector > line_points (this->polynomial_degree-1); - // loop over each of the lines, and if it is at the boundary, then first - // get the boundary description and second compute the points on it - for (unsigned int line_no=0; line_no::lines_per_cell; ++line_no) - { - const typename Triangulation::line_iterator - line = (dim == 1 - ? - static_cast::line_iterator>(cell) - : - cell->line(line_no)); - - const Manifold &manifold = - ( ( line->manifold_id() == numbers::invalid_manifold_id ) && - ( dim < spacedim ) - ? - cell->get_manifold() : - line->get_manifold() ); - - // get_intermediate_points_on_object (manifold, line_support_points, line, line_points); - - if (dim==3) - { - // in 3D, lines might be in wrong orientation. if so, reverse - // the vector - if (cell->line_orientation(line_no)) - a.insert (a.end(), line_points.begin(), line_points.end()); - else - a.insert (a.end(), line_points.rbegin(), line_points.rend()); - } - else - // in 2D, lines always have the correct orientation. simply append - // all points - a.insert (a.end(), line_points.begin(), line_points.end()); - } - } -} +// template +// void +// MappingManifold:: +// add_line_support_points (const typename Triangulation::cell_iterator &cell, +// std::vector > &a) const +// { +// // if we only need the midpoint, then ask for it. +// if (this->polynomial_degree==2) +// { +// for (unsigned int line_no=0; line_no::lines_per_cell; ++line_no) +// { +// const typename Triangulation::line_iterator line = +// (dim == 1 ? +// static_cast::line_iterator>(cell) : +// cell->line(line_no)); + +// const Manifold &manifold = +// ( ( line->manifold_id() == numbers::invalid_manifold_id ) && +// ( dim < spacedim ) +// ? +// cell->get_manifold() +// : +// line->get_manifold() ); +// a.push_back(manifold.get_new_point_on_line(line)); +// } +// } +// else +// // otherwise call the more complicated functions and ask for inner points +// // from the boundary description +// { +// std::vector > line_points (this->polynomial_degree-1); +// // loop over each of the lines, and if it is at the boundary, then first +// // get the boundary description and second compute the points on it +// for (unsigned int line_no=0; line_no::lines_per_cell; ++line_no) +// { +// const typename Triangulation::line_iterator +// line = (dim == 1 +// ? +// static_cast::line_iterator>(cell) +// : +// cell->line(line_no)); + +// const Manifold &manifold = +// ( ( line->manifold_id() == numbers::invalid_manifold_id ) && +// ( dim < spacedim ) +// ? +// cell->get_manifold() : +// line->get_manifold() ); + +// // get_intermediate_points_on_object (manifold, line_support_points, line, line_points); + +// if (dim==3) +// { +// // in 3D, lines might be in wrong orientation. if so, reverse +// // the vector +// if (cell->line_orientation(line_no)) +// a.insert (a.end(), line_points.begin(), line_points.end()); +// else +// a.insert (a.end(), line_points.rbegin(), line_points.rend()); +// } +// else +// // in 2D, lines always have the correct orientation. simply append +// // all points +// a.insert (a.end(), line_points.begin(), line_points.end()); +// } +// } +// } @@ -2223,53 +2223,53 @@ add_quad_support_points(const typename Triangulation::cell_iterato -template -std::vector > -MappingManifold:: -compute_mapping_support_points(const typename Triangulation::cell_iterator &cell) const -{ - // get the vertices first - std::vector > a(GeometryInfo::vertices_per_cell); - for (unsigned int i=0; i::vertices_per_cell; ++i) - a[i] = cell->vertex(i); - - if (this->polynomial_degree>1) - switch (dim) - { - case 1: - add_line_support_points(cell, a); - break; - case 2: - // in 2d, add the points on the four bounding lines to the exterior - // (outer) points - add_line_support_points(cell, a); - - // then get the support points on the quad if we are on a - // manifold, otherwise compute them from the points around it - if (dim != spacedim) - add_quad_support_points(cell, a); - else - add_weighted_interior_points (support_point_weights_on_quad, a); - break; - - case 3: - { - // in 3d also add the points located on the boundary faces - add_line_support_points (cell, a); - add_quad_support_points (cell, a); - - // then compute the interior points - add_weighted_interior_points (support_point_weights_on_hex, a); - break; - } - - default: - Assert(false, ExcNotImplemented()); - break; - } - - return a; -} +// template +// std::vector > +// MappingManifold:: +// compute_mapping_support_points(const typename Triangulation::cell_iterator &cell) const +// { +// // get the vertices first +// std::vector > a(GeometryInfo::vertices_per_cell); +// for (unsigned int i=0; i::vertices_per_cell; ++i) +// a[i] = cell->vertex(i); + +// if (this->polynomial_degree>1) +// switch (dim) +// { +// case 1: +// add_line_support_points(cell, a); +// break; +// case 2: +// // in 2d, add the points on the four bounding lines to the exterior +// // (outer) points +// add_line_support_points(cell, a); + +// // then get the support points on the quad if we are on a +// // manifold, otherwise compute them from the points around it +// if (dim != spacedim) +// add_quad_support_points(cell, a); +// else +// add_weighted_interior_points (support_point_weights_on_quad, a); +// break; + +// case 3: +// { +// // in 3d also add the points located on the boundary faces +// add_line_support_points (cell, a); +// add_quad_support_points (cell, a); + +// // then compute the interior points +// add_weighted_interior_points (support_point_weights_on_hex, a); +// break; +// } + +// default: +// Assert(false, ExcNotImplemented()); +// break; +// } + +// return a; +// } @@ -2280,3 +2280,4 @@ compute_mapping_support_points(const typename Triangulation::cell_ DEAL_II_NAMESPACE_CLOSE template class dealii::MappingManifold<2,2>; + -- 2.39.5