18 #ifndef __deal2__mesh_worker_local_results_h
19 #define __deal2__mesh_worker_local_results_h
21 #include <deal.II/base/config.h>
22 #include <deal.II/base/std_cxx1x/function.h>
23 #include <deal.II/base/geometry_info.h>
24 #include <deal.II/lac/matrix_block.h>
25 #include <deal.II/lac/block_vector.h>
26 #include <deal.II/meshworker/vector_selector.h>
28 DEAL_II_NAMESPACE_OPEN
216 template <
typename number>
261 number &
value(
unsigned int i);
267 number
value(
unsigned int i)
const;
352 template <
class MATRIX>
370 template <
class MATRIX>
388 template <
class STREAM>
389 void print_debug(STREAM &os)
const;
402 const unsigned int row,
403 const unsigned int col);
408 std::vector<number>
J;
414 std::vector<BlockVector<number> >
R;
420 std::vector<MatrixBlock<FullMatrix<number> > >
M1;
428 std::vector<MatrixBlock<FullMatrix<number> > >
M2;
438 template <
typename number>
446 template <
typename number>
454 template <
typename number>
455 template <
class MATRIX>
461 M1.resize(matrices.
size());
463 M2.resize(matrices.
size());
464 for (
unsigned int i=0; i<matrices.
size(); ++i)
466 const unsigned int row = matrices.
block(i).
row;
480 template <
typename number>
481 template <
class MATRIX>
487 M1.resize(matrices.
size());
489 M2.resize(matrices.
size());
490 for (
unsigned int i=0; i<matrices.
size(); ++i)
493 const unsigned int row = o[o.
min_level()].row;
494 const unsigned int col = o[o.
min_level()].column;
507 template <
typename number>
515 for (
unsigned int i=0; i<n; ++i)
528 template <
typename number>
532 quadrature_data.reinit(np, nv);
536 template <
typename number>
545 template <
typename number>
554 template <
typename number>
563 template <
typename number>
568 return quadrature_data.n_rows();
572 template <
typename number>
577 return quadrature_data.n_cols();
581 template <
typename number>
591 template <
typename number>
601 template <
typename number>
616 template <
typename number>
621 return quadrature_data(k,i);
625 template <
typename number>
630 return quadrature_data;
634 template <
typename number>
644 template <
typename number>
654 template <
typename number>
669 template <
typename number>
674 return quadrature_data(k,i);
678 template <
typename number>
679 template <
class STREAM>
683 os <<
"J: " << J.size() << std::endl;
684 os <<
"R: " << R.size() << std::endl;
685 for (
unsigned int i=0; i<R.size(); ++i)
687 os <<
" " << R[i].n_blocks() <<
" -";
688 for (
unsigned int j=0; j<R[i].n_blocks(); ++j)
689 os <<
' ' << R[i].block(j).size();
692 os <<
"M: " << M1.size() <<
" face " << M2.size() << std::endl;
693 for (
unsigned int i=0; i<M1.size(); ++i)
695 os <<
" " << M1[i].row <<
"," << M1[i].column
698 os <<
" face " << M2[i].row <<
"," << M2[i].column
699 <<
" " << M2[i].matrix.m() <<
'x' << M2[i].matrix.n();
707 DEAL_II_NAMESPACE_CLOSE
unsigned int size() const
std::vector< BlockVector< number > > R
void initialize_quadrature(unsigned int np, unsigned int nv)
#define AssertIndexRange(index, range)
Auxiliary class aiding in the handling of block structures like in BlockVector or FESystem...
const value_type & block(size_type i) const
MatrixBlock< FullMatrix< number > > & matrix(unsigned int i, bool external=false)
std::size_t memory_consumption() const
void initialize_vectors(const unsigned int n)
number & value(unsigned int i)
number & quadrature_value(unsigned int k, unsigned int i)
Table< 2, number > quadrature_data
void initialize_matrices(unsigned int n, bool both)
unsigned int n_matrices() const
unsigned int n_quadrature_values() const
unsigned int size() const
Number of stored data objects.
std::vector< MatrixBlock< FullMatrix< number > > > M2
Table< 2, number > & quadrature_values()
unsigned int n_vectors() const
unsigned int n_quadrature_points() const
void initialize_local(MatrixBlock< FullMatrix< number > > &M, const unsigned int row, const unsigned int col)
void reinit(const BlockIndices &local_sizes)
const value_type & block(size_type i) const
unsigned int min_level() const
std::vector< MatrixBlock< FullMatrix< number > > > M1
BlockVector< number > & vector(unsigned int i)
unsigned int n_values() const
void initialize_numbers(const unsigned int n)