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
208 template <
typename number>
246 number &
value(
unsigned int i);
251 number
value(
unsigned int i)
const;
324 template <
typename MatrixType>
335 template <
typename MatrixType>
352 template <
class StreamType>
353 void print_debug(StreamType &os)
const;
366 const unsigned int row,
367 const unsigned int col);
372 std::vector<number>
J;
378 std::vector<BlockVector<number> >
R;
384 std::vector<MatrixBlock<FullMatrix<number> > >
M1;
392 std::vector<MatrixBlock<FullMatrix<number> > >
M2;
402 template <
typename number>
410 template <
typename number>
418 template <
typename number>
419 template <
typename MatrixType>
425 M1.resize(matrices.
size());
427 M2.resize(matrices.
size());
428 for (
unsigned int i=0; i<matrices.
size(); ++i)
430 const unsigned int row = matrices.
block(i).
row;
444 template <
typename number>
445 template <
typename MatrixType>
451 M1.resize(matrices.
size());
453 M2.resize(matrices.
size());
454 for (
unsigned int i=0; i<matrices.
size(); ++i)
457 const unsigned int row = o[o.
min_level()].row;
458 const unsigned int col = o[o.
min_level()].column;
471 template <
typename number>
479 for (
unsigned int i=0; i<n; ++i)
492 template <
typename number>
500 template <
typename number>
509 template <
typename number>
518 template <
typename number>
527 template <
typename number>
536 template <
typename number>
545 template <
typename number>
555 template <
typename number>
565 template <
typename number>
580 template <
typename number>
589 template <
typename number>
598 template <
typename number>
608 template <
typename number>
618 template <
typename number>
633 template <
typename number>
642 template <
typename number>
643 template <
class StreamType>
647 os <<
"J: " <<
J.size() << std::endl;
648 os <<
"R: " <<
R.size() << std::endl;
649 for (
unsigned int i=0; i<
R.size(); ++i)
651 os <<
" " <<
R[i].n_blocks() <<
" -";
652 for (
unsigned int j=0; j<
R[i].n_blocks(); ++j)
653 os <<
' ' <<
R[i].block(j).size();
656 os <<
"M: " <<
M1.size() <<
" face " <<
M2.size() << std::endl;
657 for (
unsigned int i=0; i<
M1.size(); ++i)
659 os <<
" " <<
M1[i].row <<
"," <<
M1[i].column
660 <<
" " <<
M1[i].matrix.m() <<
'x' <<
M1[i].matrix.n();
662 os <<
" face " <<
M2[i].row <<
"," <<
M2[i].column
663 <<
" " <<
M2[i].
matrix.m() <<
'x' <<
M2[i].matrix.n();
671 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)
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)
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
void reinit(const TableIndices< N > &new_size, const bool omit_default_initialization=false)
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
unsigned int size() const
Number of stored data objects.
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