17 #ifndef dealii_mesh_worker_local_results_h 18 #define dealii_mesh_worker_local_results_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/geometry_info.h> 22 #include <deal.II/lac/matrix_block.h> 23 #include <deal.II/lac/block_vector.h> 24 #include <deal.II/meshworker/vector_selector.h> 28 DEAL_II_NAMESPACE_OPEN
207 template <
typename number>
245 number &
value(
unsigned int i);
250 number
value(
unsigned int i)
const;
323 template <
typename MatrixType>
334 template <
typename MatrixType>
351 template <
class StreamType>
352 void print_debug(StreamType &os)
const;
363 std::vector<number>
J;
369 std::vector<BlockVector<number> >
R;
375 std::vector<MatrixBlock<FullMatrix<number> > >
M1;
383 std::vector<MatrixBlock<FullMatrix<number> > >
M2;
393 template <
typename number>
401 template <
typename number>
409 template <
typename number>
410 template <
typename MatrixType>
416 M1.resize(matrices.
size());
418 M2.resize(matrices.
size());
419 for (
unsigned int i=0; i<matrices.
size(); ++i)
421 const unsigned int row = matrices.
block(i).
row;
435 template <
typename number>
436 template <
typename MatrixType>
442 M1.resize(matrices.
size());
444 M2.resize(matrices.
size());
445 for (
unsigned int i=0; i<matrices.
size(); ++i)
448 const unsigned int row = o[o.
min_level()].row;
449 const unsigned int col = o[o.
min_level()].column;
462 template <
typename number>
470 for (
unsigned int i=0; i<n; ++i)
483 template <
typename number>
487 quadrature_data.reinit(np, nv);
491 template <
typename number>
500 template <
typename number>
509 template <
typename number>
518 template <
typename number>
523 return quadrature_data.n_rows();
527 template <
typename number>
532 return quadrature_data.n_cols();
536 template <
typename number>
546 template <
typename number>
556 template <
typename number>
571 template <
typename number>
576 return quadrature_data(k,i);
580 template <
typename number>
585 return quadrature_data;
589 template <
typename number>
599 template <
typename number>
609 template <
typename number>
624 template <
typename number>
629 return quadrature_data(k,i);
633 template <
typename number>
634 template <
class StreamType>
638 os <<
"J: " << J.size() << std::endl;
639 os <<
"R: " << R.size() << std::endl;
640 for (
unsigned int i=0; i<R.size(); ++i)
642 os <<
" " << R[i].n_blocks() <<
" -";
643 for (
unsigned int j=0; j<R[i].n_blocks(); ++j)
644 os <<
' ' << R[i].block(j).size();
647 os <<
"M: " << M1.size() <<
" face " << M2.size() << std::endl;
648 for (
unsigned int i=0; i<M1.size(); ++i)
650 os <<
" " << M1[i].row <<
"," << M1[i].column
653 os <<
" face " << M2[i].row <<
"," << M2[i].column
654 <<
" " << M2[i].matrix.m() <<
'x' << M2[i].matrix.n();
662 DEAL_II_NAMESPACE_CLOSE
unsigned int n_matrices() const
const value_type & block(size_type i) const
unsigned int n_quadrature_values() const
std::vector< BlockVector< number > > R
void initialize_quadrature(unsigned int np, unsigned int nv)
#define AssertIndexRange(index, range)
const value_type & block(size_type i) const
MatrixBlock< FullMatrix< number > > & matrix(unsigned int i, bool external=false)
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
unsigned int min_level() const
void initialize_matrices(unsigned int n, bool both)
unsigned int n_vectors() const
std::vector< MatrixBlock< FullMatrix< number > > > M2
Table< 2, number > & quadrature_values()
unsigned int n_values() const
unsigned int size() const
void reinit(const BlockIndices &local_sizes)
std::size_t memory_consumption() const
std::vector< MatrixBlock< FullMatrix< number > > > M1
BlockVector< number > & vector(unsigned int i)
void initialize_numbers(const unsigned int n)
unsigned int n_quadrature_points() const
unsigned int size() const
Number of stored data objects.