<h3>Specific improvements</h3>
<ol>
+<li> Fixed: The functions VectorTools::create_boundary_right_hand_side()
+called with an empty set of boundary_indicators (the default), did not apply
+any boundary conditions. The empty set now applies it to all boundaries.
+<br>
+(Timo Heister, Sebastian Pauletti, 2011/08/15)
+
<li> Fixed: The function VectorTools::compute_no_normal_flux_constraints had
a bug that led to an exception whenever we were computing constraints for
vector fields located on edges shared between two faces of a 3d cell if those
* inhomogeneous Neumann boundary values in Laplace's equation or
* other second order operators. This function also takes an
* optional argument denoting over which parts of the boundary the
- * integration shall extend.
+ * integration shall extend. If the default argument is used, it is applied
+ * to all boundaries.
*
* <li> Interpolation of boundary values:
* The MatrixTools::apply_boundary_values() function takes a list
#include <vector>
#include <cmath>
#include <limits>
+#include <set>
DEAL_II_NAMESPACE_OPEN
for (; cell!=endc; ++cell)
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->at_boundary () &&
+ (boundary_indicators.empty() ||
(boundary_indicators.find (cell->face(face)->boundary_indicator())
!=
- boundary_indicators.end()))
+ boundary_indicators.end())))
{
fe_values.reinit(cell, face);
for (; cell!=endc; ++cell)
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->at_boundary () &&
+ (boundary_indicators.empty() ||
(boundary_indicators.find (cell->face(face)->boundary_indicator())
!=
- boundary_indicators.end()))
+ boundary_indicators.end())))
{
fe_values.reinit(cell, face);
for (; cell!=endc; ++cell)
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->at_boundary () &&
+ (boundary_indicators.empty() ||
(boundary_indicators.find (cell->face(face)->boundary_indicator())
!=
- boundary_indicators.end()))
+ boundary_indicators.end())))
{
x_fe_values.reinit(cell, face);
for (; cell!=endc; ++cell)
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->at_boundary () &&
+ (boundary_indicators.empty() ||
(boundary_indicators.find (cell->face(face)->boundary_indicator())
!=
- boundary_indicators.end()))
+ boundary_indicators.end())))
{
x_fe_values.reinit(cell, face);