]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
get_function_values also for non-active cells
authorhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 9 Aug 1999 15:41:59 +0000 (15:41 +0000)
committerhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 9 Aug 1999 15:41:59 +0000 (15:41 +0000)
git-svn-id: https://svn.dealii.org/trunk@1646 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/fe/fe_values.h
deal.II/deal.II/source/fe/fe_values.cc

index 3107d8d3ea2b3399c76cc7e1ee852407a623552c..c8c5bf6278e8fc3915c66f0e13c38300b1516adf 100644 (file)
@@ -284,6 +284,10 @@ class FEValuesBase
                                      * of the derived class was called,
                                      * at the quadrature points.
                                      *
+                                     * If the present cell is not an active
+                                     * one the interpolated function values
+                                     * are returned.
+                                     *
                                      * To get values of
                                      * multi-component elements,
                                      * there is another
@@ -340,6 +344,10 @@ class FEValuesBase
                                      * by #fe_function# restricted to
                                      * #cell# at the quadrature points.
                                      *
+                                     * If the present cell is not an active
+                                     * one the interpolated function values
+                                     * are returned.
+                                     *
                                      * The function assumes that the
                                      * #gradients# object already has the
                                      * right size.
@@ -353,6 +361,10 @@ class FEValuesBase
                                      * by #fe_function# restricted to
                                      * #cell# at the quadrature points.
                                      *
+                                     * If the present cell is not an active
+                                     * one the interpolated function values
+                                     * are returned.
+                                     *
                                      * The function assumes that the
                                      * #gradients# object already has the
                                      * right size.
index fac295d1ea9c0679d1b4bb54576cacacb416a076..4fdfced417f2b84591bf43651d057bc284169e32 100644 (file)
@@ -76,7 +76,10 @@ void FEValuesBase<dim>::get_function_values (const Vector<double> &fe_function,
                                   // get function values of dofs
                                   // on this cell
   Vector<double> dof_values (total_dofs);
-  present_cell->get_dof_values (fe_function, dof_values);
+  if (present_cell->active())
+    present_cell->get_dof_values (fe_function, dof_values);
+  else
+    present_cell->get_interpolated_dof_values(fe_function, dof_values);
 
                                   // initialize with zero
   fill_n (values.begin(), n_quadrature_points, 0);
@@ -105,8 +108,11 @@ void FEValuesBase<dim>::get_function_values (const Vector<double>     &fe_functi
                                   // get function values of dofs
                                   // on this cell
   Vector<double> dof_values (total_dofs);
-  present_cell->get_dof_values (fe_function, dof_values);
-
+  if (present_cell->active())
+    present_cell->get_dof_values (fe_function, dof_values);
+  else
+    present_cell->get_interpolated_dof_values(fe_function, dof_values);
+  
                                   // initialize with zero
   for (unsigned i=0;i<values.size();++i)
     fill_n (values[i].begin(), values[i].size(), 0);
@@ -149,7 +155,10 @@ void FEValuesBase<dim>::get_function_grads (const Vector<double>   &fe_function,
                                   // get function values of dofs
                                   // on this cell
   Vector<double> dof_values (total_dofs);
-  present_cell->get_dof_values (fe_function, dof_values);
+  if (present_cell->active())
+    present_cell->get_dof_values (fe_function, dof_values);
+  else
+    present_cell->get_interpolated_dof_values(fe_function, dof_values);
 
                                   // initialize with zero
   fill_n (gradients.begin(), n_quadrature_points, Tensor<1,dim>());
@@ -180,7 +189,10 @@ void FEValuesBase<dim>::get_function_grads (const Vector<double>            &fe_
                                   // get function values of dofs
                                   // on this cell
   Vector<double> dof_values (total_dofs);
-  present_cell->get_dof_values (fe_function, dof_values);
+  if (present_cell->active())
+    present_cell->get_dof_values (fe_function, dof_values);
+  else
+    present_cell->get_interpolated_dof_values(fe_function, dof_values);
 
                                   // initialize with zero
   for (unsigned i=0;i<gradients.size();++i)
@@ -226,7 +238,10 @@ void FEValuesBase<dim>::get_function_2nd_derivatives (const Vector<double>   &fe
                                   // get function values of dofs
                                   // on this cell
   Vector<double> dof_values (total_dofs);
-  present_cell->get_dof_values (fe_function, dof_values);
+  if (present_cell->active())
+    present_cell->get_dof_values (fe_function, dof_values);
+  else
+    present_cell->get_interpolated_dof_values(fe_function, dof_values);
 
                                   // initialize with zero
   fill_n (second_derivatives.begin(), n_quadrature_points, Tensor<2,dim>());

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.