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
58 unsigned int block_size;
59 unsigned int n_blocks;
60 unsigned int block_size_last;
61 unsigned int position_short_block;
62 bool use_multithreading;
63 bool use_partition_partition;
64 bool use_coloring_only;
66 std::vector<unsigned int> partition_color_blocks_row_index;
67 std::vector<unsigned int> partition_color_blocks_data;
70 unsigned int n_blocked_workers;
71 unsigned int n_workers;
73 std::vector<unsigned int> partition_evens;
74 std::vector<unsigned int> partition_odds;
75 std::vector<unsigned int> partition_n_blocked_workers;
76 std::vector<unsigned int> partition_n_workers;
101 template <
typename StreamType>
103 std::size_t data_length)
const;
109 void make_layout (
const unsigned int n_active_cells_in,
110 const unsigned int vectorization_length_in,
111 std::vector<unsigned int> &boundary_cells,
112 std::vector<unsigned int> &irregular_cells);
114 unsigned int n_active_cells;
115 unsigned int n_macro_cells;
116 unsigned int boundary_cells_start;
117 unsigned int boundary_cells_end;
118 unsigned int vectorization_length;
132 unsigned int n_procs;
172 template<
typename Number>
177 bool operator() (
const std::vector<Number> &v1,
178 const std::vector<Number> &v2)
const;
196 DEAL_II_NAMESPACE_CLOSE
IndexSet locally_owned_cells
void print_memory_statistics(StreamType &out, std::size_t data_length) const
void make_layout(const unsigned int n_active_cells_in, const unsigned int vectorization_length_in, std::vector< unsigned int > &boundary_cells, std::vector< unsigned int > &irregular_cells)
std::size_t memory_consumption() const