* A unified function to read from and write into vectors based on the given
* template operation for DG-type schemes where all degrees of freedom on
* cells are contiguous. It can perform the operation for read_dof_values(),
- * distribute_local_to_global(), and set_dof_values() for for several
- * vectors at a time, depending on n_components.
+ * distribute_local_to_global(), and set_dof_values() for several vectors at
+ * a time, depending on n_components.
*/
template <typename VectorType, typename VectorOperation>
void
typedef FEEvaluationAccess<dim,n_components_,Number,false> BaseClass;
/**
- * A underlying number type specified as template argument.
+ * An underlying number type specified as template argument.
*/
typedef Number number_type;
FEEvaluation &operator= (const FEEvaluation &other);
/**
- * Initializes the operation pointer to the current cell batch index. Unlike
+ * Initialize the operation pointer to the current cell batch index. Unlike
* the reinit functions taking a cell iterator as argument below and the
* FEValues::reinit() methods, where the information related to a particular
* cell is generated in the reinit call, this function is very cheap since
void reinit (const typename Triangulation<dim>::cell_iterator &cell);
/**
- * Evaluates the function values, the gradients, and the Hessians of the
+ * Evaluate the function values, the gradients, and the Hessians of the
* polynomial interpolation from the DoF values in the input vector to the
* quadrature points on the unit cell. The function arguments specify which
* parts shall actually be computed. This function has to be called first so
const bool evaluate_hessians = false);
/**
- * Evaluates the function values, the gradients, and the Hessians of the
+ * Evaluate the function values, the gradients, and the Hessians of the
* polynomial interpolation from the DoF values in the input array @p
* values_array to the quadrature points on the unit cell. If multiple
* components are involved in the current FEEvaluation object, the sorting
const bool evaluate_hessians = false);
/**
- * Reads from the input vector and evaluates the function values, the
+ * Read from the input vector and evaluates the function values, the
* gradients, and the Hessians of the polynomial interpolation of the vector
* entries from @p input_vector associated with the current cell to the
* quadrature points on the unit cell. The function arguments specify which
if (vector_face_access == dealii::MatrixFree<dim,Number>::DataAccessOnFaces::unspecified ||
vec.size() == 0)
- const_cast<LinearAlgebra::distributed::Vector<Number> &>(vec).zero_out_ghosts();
+ vec.zero_out_ghosts();
else
{
#ifdef DEAL_II_WITH_MPI
const unsigned int mf_component = find_vector_in_mf(vec);
const Utilities::MPI::Partitioner &part = get_partitioner(mf_component);
if (&part == matrix_free.get_dof_info(mf_component).vector_partitioner.get())
- const_cast<LinearAlgebra::distributed::Vector<Number> &>(vec).zero_out_ghosts();
+ vec.zero_out_ghosts();
else if (part.n_ghost_indices() > 0)
{
for (std::vector<std::pair<unsigned int, unsigned int> >::const_iterator
{}
// Runs the cell work. If no function is given, nothing is done
- virtual void cell(const std::pair<unsigned int,unsigned int> &cell_range)
+ virtual void cell(const std::pair<unsigned int,unsigned int> &cell_range) override
{
if (cell_function != nullptr && cell_range.second > cell_range.first)
(container.*cell_function)(matrix_free, this->dst, this->src, cell_range);
// Runs the assembler on interior faces. If no function is given, nothing
// is done
- virtual void face(const std::pair<unsigned int,unsigned int> &face_range)
+ virtual void face(const std::pair<unsigned int,unsigned int> &face_range) override
{
if (face_function != nullptr && face_range.second > face_range.first)
(container.*face_function)(matrix_free, this->dst, this->src, face_range);
// Runs the assembler on boundary faces. If no function is given, nothing
// is done
- virtual void boundary(const std::pair<unsigned int,unsigned int> &face_range)
+ virtual void boundary(const std::pair<unsigned int,unsigned int> &face_range) override
{
if (boundary_function != nullptr && face_range.second > face_range.first)
(container.*boundary_function)(matrix_free, this->dst, this->src, face_range);
// the problem that reading from a vector that we also write to is usually
// not intended in case there is overlap, but this is up to the
// application code to decide and we cannot catch this case here).
- virtual void vector_update_ghosts_start()
+ virtual void vector_update_ghosts_start() override
{
if (!src_and_dst_are_same)
internal::update_ghost_values_start(src, src_data_exchanger);
}
// Finishes the communication for the update ghost values operation
- virtual void vector_update_ghosts_finish()
+ virtual void vector_update_ghosts_finish() override
{
if (!src_and_dst_are_same)
internal::update_ghost_values_finish(src, src_data_exchanger);
}
// Starts the communication for the vector compress operation
- virtual void vector_compress_start()
+ virtual void vector_compress_start() override
{
internal::compress_start(dst, dst_data_exchanger);
}
// Finishes the communication for the vector compress operation
- virtual void vector_compress_finish()
+ virtual void vector_compress_finish() override
{
internal::compress_finish(dst, dst_data_exchanger);
if (!src_and_dst_are_same)
}
// Zeros the given input vector
- virtual void zero_dst_vector_range(const unsigned int range_index)
+ virtual void zero_dst_vector_range(const unsigned int range_index) override
{
if (zero_dst_vector_setting)
internal::zero_vector_region(range_index, dst, dst_data_exchanger);