#include <deal.II/lac/relaxation_block.h>
#include <deal.II/lac/full_matrix.h>
-#include <lac/vector_memory.h>
+#include <deal.II/lac/vector_memory.h>
DEAL_II_NAMESPACE_OPEN
const AdditionalData parameters)
{
Assert (parameters.invert_diagonal, ExcNotImplemented());
-
+
clear();
// Assert (M.m() == M.n(), ExcNotQuadratic());
A = &M;
additional_data = parameters;
-
+
this->reinit(additional_data.block_list->size(), 0, additional_data.same_diagonal,
additional_data.inversion);
-
+
if (parameters.invert_diagonal)
invert_diagblocks();
}
const bool backward) const
{
Assert (additional_data.invert_diagonal, ExcNotImplemented());
-
+
const MATRIX &M=*this->A;
Vector<number2> b_cell, x_cell;
-
+
const unsigned int n_blocks = additional_data.block_list->size();
for (unsigned int bi=0;bi<n_blocks;++bi)
{
const unsigned int block = backward ? (n_blocks - bi - 1) : bi;
const unsigned int bs = additional_data.block_list->block_size(block);
-
+
b_cell.reinit(bs);
x_cell.reinit(bs);
// Collect off-diagonal parts
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/fe/fe_values.h>
#include <deal.II/fe/mapping_q1.h>
-#include <fe/mapping_q1_eulerian.h>
+#include <deal.II/fe/mapping_q1_eulerian.h>
#include <cmath>
#include <algorithm>
if(mdata->mapping_support_points.size() > mdata->shape_values.size())
mdata->mapping_support_points.resize
(GeometryInfo<dim>::vertices_per_cell);
-
+
return transform_unit_to_real_cell_internal(*mdata);
}
const unsigned int n_shapes=mdata.shape_values.size();
Assert(n_shapes!=0, ExcInternalError());
Assert(mdata.shape_derivatives.size()==n_shapes, ExcInternalError());
-
+
std::vector<Point<spacedim> > &points=mdata.mapping_support_points;
Assert(points.size()==n_shapes, ExcInternalError());
-
+
// Newton iteration to solve
// f(x)=p(x)-p=0
// x_{n+1}=x_n-[f'(x)]^{-1}f(x)
-
+
// The start value is set to be the
// center of the unit cell.
// by the cell.
for(unsigned int i=0;i<dim; ++i)
p_unit[i] -= d[i];
-
+
// shape values and derivatives
// at new p_unit point
compute_shapes(std::vector<Point<dim> > (1, p_unit), mdata);