<h3>Specific improvements</h3>
<ol>
-<li> Fixed: DerivativeApproximation for distributed computations.
+<li> Fixed: Restriction and prolongation didn't work for elements of
+kind FE_Nothing. Consequently, many other parts of the library also
+didn't work, such as the SolutionTransfer class. This is now fixed.
+<br>
+(Wolfgang Bangerth, 2011/12/15)
+
+<li> Fixed: The DerivativeApproximation class now works for distributed computations.
<br>
(Timo Heister, 2011/12/15)
// RefinementCase<dim>::no_refinement (=0) there is no
// data available and so the vector indices
// are shifted
- Assert (restriction[refinement_case-1][child].n() != 0, ExcProjectionVoid());
+ Assert (restriction[refinement_case-1][child].n() == this->dofs_per_cell, ExcProjectionVoid());
return restriction[refinement_case-1][child];
}
// RefinementCase::no_refinement (=0) there is no
// data available and so the vector indices
// are shifted
- Assert (prolongation[refinement_case-1][child].n() != 0, ExcEmbeddingVoid());
+ Assert (prolongation[refinement_case-1][child].n() == this->dofs_per_cell, ExcEmbeddingVoid());
return prolongation[refinement_case-1][child];
}
FiniteElementData<dim>::unknown),
std::vector<bool>(),
std::vector<std::vector<bool> >() )
-{}
+{
+// in most other elements we have to set up all sorts of stuff
+// here. there isn't much that we have to do here; in particular,
+// we can simply leave the restriction and prolongation matrices
+// empty since their proper size is in fact zero given that the
+// element here has no degrees of freedom
+}
template <int dim>
for (unsigned int i=0; i<this->n_base_elements(); ++i)
{
- if (base_element(i).restriction[ref_case-1][0].n() == 0)
+ if (base_element(i).restriction[ref_case-1][0].n() != base_element(i).dofs_per_cell)
do_restriction = false;
- if (base_element(i).prolongation[ref_case-1][0].n() == 0)
+ if (base_element(i).prolongation[ref_case-1][0].n() != base_element(i).dofs_per_cell)
do_prolongation = false;
}