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/std_cxx11/function.h> 22 #include <deal.II/base/geometry_info.h> 23 #include <deal.II/lac/matrix_block.h> 24 #include <deal.II/lac/block_vector.h> 25 #include <deal.II/meshworker/vector_selector.h> 27 DEAL_II_NAMESPACE_OPEN
206 template <
typename number>
244 number &
value(
unsigned int i);
249 number
value(
unsigned int i)
const;
322 template <
typename MatrixType>
333 template <
typename MatrixType>
350 template <
class StreamType>
351 void print_debug(StreamType &os)
const;
364 const unsigned int row,
365 const unsigned int col);
370 std::vector<number>
J;
376 std::vector<BlockVector<number> >
R;
382 std::vector<MatrixBlock<FullMatrix<number> > >
M1;
390 std::vector<MatrixBlock<FullMatrix<number> > >
M2;
400 template <
typename number>
408 template <
typename number>
416 template <
typename number>
417 template <
typename MatrixType>
423 M1.resize(matrices.
size());
425 M2.resize(matrices.
size());
426 for (
unsigned int i=0; i<matrices.
size(); ++i)
428 const unsigned int row = matrices.
block(i).
row;
442 template <
typename number>
443 template <
typename MatrixType>
449 M1.resize(matrices.
size());
451 M2.resize(matrices.
size());
452 for (
unsigned int i=0; i<matrices.
size(); ++i)
455 const unsigned int row = o[o.
min_level()].row;
456 const unsigned int col = o[o.
min_level()].column;
469 template <
typename number>
477 for (
unsigned int i=0; i<n; ++i)
490 template <
typename number>
494 quadrature_data.reinit(np, nv);
498 template <
typename number>
507 template <
typename number>
516 template <
typename number>
525 template <
typename number>
530 return quadrature_data.n_rows();
534 template <
typename number>
539 return quadrature_data.n_cols();
543 template <
typename number>
553 template <
typename number>
563 template <
typename number>
578 template <
typename number>
583 return quadrature_data(k,i);
587 template <
typename number>
592 return quadrature_data;
596 template <
typename number>
606 template <
typename number>
616 template <
typename number>
631 template <
typename number>
636 return quadrature_data(k,i);
640 template <
typename number>
641 template <
class StreamType>
645 os <<
"J: " << J.size() << std::endl;
646 os <<
"R: " << R.size() << std::endl;
647 for (
unsigned int i=0; i<R.size(); ++i)
649 os <<
" " << R[i].n_blocks() <<
" -";
650 for (
unsigned int j=0; j<R[i].n_blocks(); ++j)
651 os <<
' ' << R[i].block(j).size();
654 os <<
"M: " << M1.size() <<
" face " << M2.size() << std::endl;
655 for (
unsigned int i=0; i<M1.size(); ++i)
657 os <<
" " << M1[i].row <<
"," << M1[i].column
660 os <<
" face " << M2[i].row <<
"," << M2[i].column
661 <<
" " << M2[i].matrix.m() <<
'x' << M2[i].matrix.n();
669 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
void initialize_local(MatrixBlock< FullMatrix< number > > &M, const unsigned int row, const unsigned int col)
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.