18 #ifndef __deal2__matrix_free_helper_functions_h 19 #define __deal2__matrix_free_helper_functions_h 23 #include <deal.II/base/memory_consumption.h> 24 #include <deal.II/base/index_set.h> 25 #include <deal.II/base/utilities.h> 26 #include <deal.II/base/tensor.h> 27 #include <deal.II/base/vectorization.h> 35 namespace MatrixFreeFunctions
65 unsigned int block_size;
66 unsigned int n_blocks;
67 unsigned int block_size_last;
68 unsigned int position_short_block;
69 bool use_multithreading;
70 bool use_partition_partition;
71 bool use_coloring_only;
73 std::vector<unsigned int> partition_color_blocks_row_index;
74 std::vector<unsigned int> partition_color_blocks_data;
77 unsigned int n_blocked_workers;
78 unsigned int n_workers;
80 std::vector<unsigned int> partition_evens;
81 std::vector<unsigned int> partition_odds;
82 std::vector<unsigned int> partition_n_blocked_workers;
83 std::vector<unsigned int> partition_n_workers;
111 template <
typename STREAM>
112 void print_memory_statistics (STREAM &out,
113 std::size_t data_length)
const;
120 void make_layout (
const unsigned int n_active_cells_in,
121 const unsigned int vectorization_length_in,
122 std::vector<unsigned int> &boundary_cells,
123 std::vector<unsigned int> &irregular_cells);
125 unsigned int n_active_cells;
126 unsigned int n_macro_cells;
127 unsigned int boundary_cells_start;
128 unsigned int boundary_cells_end;
129 unsigned int vectorization_length;
144 unsigned int n_procs;
150 enum CellType {cartesian=0, affine=1, general=2, undefined=3};
164 template<
typename Number>
169 bool operator() (
const std::vector<Number> &v1,
170 const std::vector<Number> &v2)
const;
188 DEAL_II_NAMESPACE_CLOSE
IndexSet locally_owned_cells
std::size_t memory_consumption() const