17 #ifndef dealii_mesh_worker_local_results_h 18 #define dealii_mesh_worker_local_results_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/geometry_info.h> 24 #include <deal.II/lac/block_vector.h> 25 #include <deal.II/lac/matrix_block.h> 27 #include <deal.II/meshworker/vector_selector.h> 31 DEAL_II_NAMESPACE_OPEN
210 template <
typename number>
254 value(
unsigned int i);
260 value(
unsigned int i)
const;
272 vector(
unsigned int i)
const;
280 matrix(
unsigned int i,
bool external =
false);
288 matrix(
unsigned int i,
bool external =
false)
const;
343 template <
typename MatrixType>
355 template <
typename MatrixType>
375 template <
class StreamType>
377 print_debug(StreamType &os)
const;
389 std::vector<number>
J;
395 std::vector<BlockVector<number>>
R;
401 std::vector<MatrixBlock<FullMatrix<number>>>
M1;
409 std::vector<MatrixBlock<FullMatrix<number>>>
M2;
419 template <
typename number>
427 template <
typename number>
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)
447 const unsigned int row = matrices.
block(i).
row;
461 template <
typename number>
462 template <
typename MatrixType>
468 M1.resize(matrices.
size());
470 M2.resize(matrices.
size());
471 for (
unsigned int i = 0; i < matrices.
size(); ++i)
474 const unsigned int row = o[o.
min_level()].row;
475 const unsigned int col = o[o.
min_level()].column;
488 template <
typename number>
496 for (
unsigned int i = 0; i < n; ++i)
509 template <
typename number>
513 quadrature_data.reinit(np, nv);
517 template <
typename number>
525 template <
typename number>
533 template <
typename number>
541 template <
typename number>
545 return quadrature_data.n_rows();
549 template <
typename number>
553 return quadrature_data.n_cols();
557 template <
typename number>
566 template <
typename number>
575 template <
typename number>
589 template <
typename number>
593 return quadrature_data(k, i);
597 template <
typename number>
601 return quadrature_data;
605 template <
typename number>
614 template <
typename number>
623 template <
typename number>
637 template <
typename number>
641 return quadrature_data(k, i);
645 template <
typename number>
646 template <
class StreamType>
650 os <<
"J: " << J.size() << std::endl;
651 os <<
"R: " << R.size() << std::endl;
652 for (
unsigned int i = 0; i < R.size(); ++i)
654 os <<
" " << R[i].n_blocks() <<
" -";
655 for (
unsigned int j = 0; j < R[i].n_blocks(); ++j)
656 os <<
' ' << R[i].block(j).size();
659 os <<
"M: " << M1.size() <<
" face " << M2.size() << std::endl;
660 for (
unsigned int i = 0; i < M1.size(); ++i)
662 os <<
" " << M1[i].row <<
"," << M1[i].column <<
" " 665 os <<
" face " << M2[i].row <<
"," << M2[i].column <<
" " 666 << M2[i].matrix.m() <<
'x' << M2[i].matrix.n();
674 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.