From be54197927682792e886e57c639fdf9954716b5e Mon Sep 17 00:00:00 2001 From: guido Date: Thu, 30 May 2002 15:55:46 +0000 Subject: [PATCH] removing direct access in FEValues git-svn-id: https://svn.dealii.org/trunk@5945 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/numerics/matrices.cc | 443 +++++++++++--------- 1 file changed, 245 insertions(+), 198 deletions(-) diff --git a/deal.II/deal.II/source/numerics/matrices.cc b/deal.II/deal.II/source/numerics/matrices.cc index aef9a7cd0c..3301ada851 100644 --- a/deal.II/deal.II/source/numerics/matrices.cc +++ b/deal.II/deal.II/source/numerics/matrices.cc @@ -340,8 +340,6 @@ MatrixCreator::create_mass_matrix_2 (const Mapping &mapping, local_rhs.clear (); cell->get_dof_indices (dof_indices); - const FullMatrix &values = fe_values.get_shape_values (); - const std::vector &weights = fe_values.get_JxW_values (); rhs.value_list (fe_values.get_quadrature_points(), rhs_values); if (coefficient != 0) @@ -351,58 +349,68 @@ MatrixCreator::create_mass_matrix_2 (const Mapping &mapping, coefficient->value_list (fe_values.get_quadrature_points(), coefficient_values); for (unsigned int point=0; pointvector_value_list (fe_values.get_quadrature_points(), coefficient_vector_values); for (unsigned int point=0; point &mapping, cell_vector.clear (); fe_values.reinit (cell, face); - - const FullMatrix &values = fe_values.get_shape_values (); - const std::vector &weights = fe_values.get_JxW_values (); - + if (fe_is_system) // FE has several components { boundary_functions.find(cell->face(face)->boundary_indicator()) ->second->vector_value_list (fe_values.get_quadrature_points(), rhs_values_system); - + if (coefficient != 0) { if (coefficient->n_components==1) @@ -610,107 +615,121 @@ create_boundary_mass_matrix_1 (const Mapping &mapping, coefficient->value_list (fe_values.get_quadrature_points(), coefficient_values); for (unsigned int point=0; pointvector_value_list (fe_values.get_quadrature_points(), coefficient_vector_values); for (unsigned int point=0; pointface(face)->boundary_indicator()) ->second->value_list (fe_values.get_quadrature_points(), rhs_values_scalar); - + if (coefficient != 0) { coefficient->value_list (fe_values.get_quadrature_points(), coefficient_values); for (unsigned int point=0; point &mapping, }; -template + template void MatrixCreator::create_boundary_mass_matrix (const DoFHandler &dof, const Quadrature &q, SparseMatrix &matrix, @@ -963,7 +982,6 @@ void MatrixCreator::create_laplace_matrix_1 (const Mapping &mapping, const std::vector > > &grads = fe_values.get_shape_grads (); - const std::vector &weights = fe_values.get_JxW_values (); if (coefficient != 0) { @@ -972,47 +990,66 @@ void MatrixCreator::create_laplace_matrix_1 (const Mapping &mapping, coefficient->value_list (fe_values.get_quadrature_points(), coefficient_values); for (unsigned int point=0; pointvector_value_list (fe_values.get_quadrature_points(), coefficient_vector_values); for (unsigned int point=0; point &mapping, matrix.add (dof_indices[i], dof_indices[j], cell_matrix(i,j)); mutex.release (); - }; -}; + } +} @@ -1140,10 +1177,8 @@ MatrixCreator::create_laplace_matrix_2 (const Mapping &mapping, local_rhs.clear (); cell->get_dof_indices (dof_indices); - const FullMatrix &values = fe_values.get_shape_values (); const std::vector > > &grads = fe_values.get_shape_grads (); - const std::vector &weights = fe_values.get_JxW_values (); rhs.value_list (fe_values.get_quadrature_points(), rhs_values); if (coefficient != 0) @@ -1153,19 +1188,23 @@ MatrixCreator::create_laplace_matrix_2 (const Mapping &mapping, coefficient->value_list (fe_values.get_quadrature_points(), coefficient_values); for (unsigned int point=0; point &mapping, coefficient->vector_value_list (fe_values.get_quadrature_points(), coefficient_vector_values); for (unsigned int point=0; point