17 #ifndef dealii_matrix_free_dof_info_h 18 #define dealii_matrix_free_dof_info_h 44 namespace MatrixFreeFunctions
50 template <
typename Number>
62 template <
typename number2>
65 const std::vector<std::pair<types::global_dof_index, number2>>
68 std::vector<std::pair<types::global_dof_index, double>>
73 std::map<std::vector<Number>,
113 static const unsigned int chunk_size_zero_vector = 64;
137 fe_index_from_degree(
const unsigned int first_selected_component,
138 const unsigned int fe_degree)
const;
160 get_dof_indices_on_cell_batch(std::vector<unsigned int> &locall_indices,
161 const unsigned int cell,
162 const bool with_constraints =
true)
const;
172 template <
typename number>
175 const std::vector<types::global_dof_index> &local_indices,
176 const std::vector<unsigned int> & lexicographic_inv,
178 const unsigned int cell_number,
180 bool & cell_at_boundary);
190 assign_ghosts(
const std::vector<unsigned int> &boundary_cells);
199 reorder_cells(
const TaskInfo & task_info,
200 const std::vector<unsigned int> & renumbering,
201 const std::vector<unsigned int> & constraint_pool_row_index,
202 const std::vector<unsigned char> &irregular_cells);
209 compute_cell_index_compression(
210 const std::vector<unsigned char> &irregular_cells);
216 template <
int length>
218 compute_face_index_compression(
227 make_connectivity_graph(
const TaskInfo & task_info,
228 const std::vector<unsigned int> &renumbering,
242 compute_dof_renumbering(
243 std::vector<types::global_dof_index> &renumbering);
254 template <
int length>
256 compute_vector_zero_access_pattern(
270 template <
typename StreamType>
272 print_memory_consumption(StreamType & out,
279 template <
typename Number>
281 print(
const std::vector<Number> & constraint_pool_data,
282 const std::vector<unsigned int> &constraint_pool_row_index,
283 std::ostream & out)
const;
351 interleaved_contiguous,
363 interleaved_contiguous_strided,
376 interleaved_contiguous_mixed_strides
388 dof_access_face_interior = 0,
392 dof_access_face_exterior = 1,
423 std::vector<IndexStorageVariants> index_storage_variants[3];
431 std::vector<std::pair<unsigned int, unsigned int>>
row_starts;
459 std::vector<std::pair<unsigned short, unsigned short>>
475 std::vector<unsigned int> dof_indices_contiguous[3];
485 std::vector<unsigned int> dof_indices_interleave_strides[3];
496 std::vector<unsigned char> n_vectorization_lanes_filled[3];
524 std::array<std::shared_ptr<const Utilities::MPI::Partitioner>, 5>
679 const unsigned int fe_degree)
const 681 const unsigned int n_indices = fe_index_conversion.size();
684 for (
unsigned int i = 0; i < n_indices; ++i)
685 if (fe_index_conversion[i][first_selected_component] == fe_degree)
690 #endif // ifndef DOXYGEN
std::vector< unsigned int > plain_dof_indices
static const unsigned int invalid_unsigned_int
unsigned int fe_index_from_degree(const unsigned int first_selected_component, const unsigned int fe_degree) const
std::vector< std::pair< unsigned int, unsigned int > > vector_zero_range_list
std::vector< unsigned int > component_to_base_index
std::vector< unsigned int > cell_loop_pre_list_index
unsigned short insert_entries(const std::vector< std::pair< types::global_dof_index, number2 >> &entries)
std::shared_ptr< const Utilities::MPI::Partitioner > vector_partitioner
std::vector< unsigned int > vector_zero_range_list_index
unsigned int n_base_elements
std::vector< unsigned int > dof_indices
std::vector< unsigned int > cell_loop_post_list_index
std::vector< unsigned int > dofs_per_face
std::vector< std::pair< types::global_dof_index, double > > constraint_entries
std::vector< std::pair< unsigned int, unsigned int > > cell_loop_pre_list
std::vector< unsigned int > dof_indices_interleaved
std::vector< unsigned int > row_starts_plain_indices
std::vector< types::global_dof_index > constraint_indices
std::vector< std::vector< unsigned int > > fe_index_conversion
#define DEAL_II_NAMESPACE_CLOSE
std::vector< std::pair< unsigned int, unsigned int > > row_starts
std::vector< std::pair< unsigned short, unsigned short > > constraint_indicator
std::pair< std::vector< Number >, types::global_dof_index > next_constraint
unsigned int global_base_element_offset
unsigned int max_fe_index
unsigned int global_dof_index
std::vector< types::global_dof_index > ghost_dofs
std::vector< unsigned int > cell_active_fe_index
std::vector< std::vector< unsigned int > > component_dof_indices_offset
#define DEAL_II_NAMESPACE_OPEN
std::map< std::vector< Number >, types::global_dof_index, FPArrayComparator< Number > > constraints
std::vector< unsigned int > dofs_per_cell
std::vector< unsigned int > constrained_dofs
unsigned int vectorization_length
std::vector< unsigned int > start_components
std::vector< std::pair< unsigned int, unsigned int > > cell_loop_post_list
std::vector< unsigned int > n_components
std::array< std::shared_ptr< const Utilities::MPI::Partitioner >, 5 > vector_partitioner_face_variants
std::enable_if< std::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)