17 #ifndef dealii__matrix_free_helper_functions_h 18 #define dealii__matrix_free_helper_functions_h 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/memory_consumption.h> 23 #include <deal.II/base/index_set.h> 24 #include <deal.II/base/utilities.h> 25 #include <deal.II/base/tensor.h> 26 #include <deal.II/base/vectorization.h> 28 DEAL_II_NAMESPACE_OPEN
34 namespace MatrixFreeFunctions
37 template <
typename Number>
struct ConstraintValues;
61 unsigned int block_size;
62 unsigned int n_blocks;
63 unsigned int block_size_last;
64 unsigned int position_short_block;
65 bool use_multithreading;
66 bool use_partition_partition;
67 bool use_coloring_only;
69 std::vector<unsigned int> partition_color_blocks_row_index;
70 std::vector<unsigned int> partition_color_blocks_data;
73 unsigned int n_blocked_workers;
74 unsigned int n_workers;
76 std::vector<unsigned int> partition_evens;
77 std::vector<unsigned int> partition_odds;
78 std::vector<unsigned int> partition_n_blocked_workers;
79 std::vector<unsigned int> partition_n_workers;
104 template <
typename StreamType>
105 void print_memory_statistics (StreamType &out,
106 std::size_t data_length)
const;
112 void make_layout (
const unsigned int n_active_cells_in,
113 const unsigned int vectorization_length_in,
114 std::vector<unsigned int> &boundary_cells,
115 std::vector<unsigned int> &irregular_cells);
117 unsigned int n_active_cells;
118 unsigned int n_macro_cells;
119 unsigned int boundary_cells_start;
120 unsigned int boundary_cells_end;
121 unsigned int vectorization_length;
135 unsigned int n_procs;
141 enum CellType {cartesian=0, affine=1, general=2, undefined=3};
156 template<
typename Number>
161 bool operator() (
const std::vector<Number> &v1,
162 const std::vector<Number> &v2)
const;
180 DEAL_II_NAMESPACE_CLOSE
IndexSet locally_owned_cells
std::size_t memory_consumption() const