22#ifndef INCLUDE_SOLVERS_AND_PRECONDITIONERS_INVERTDIAGONAL_H_
23#define INCLUDE_SOLVERS_AND_PRECONDITIONERS_INVERTDIAGONAL_H_
25#include <deal.II/lac/la_parallel_vector.h>
34template<
typename Number>
36invert_diagonal(dealii::LinearAlgebra::distributed::Vector<Number> & diagonal)
38 for(
unsigned int i = 0; i < diagonal.locally_owned_size(); ++i)
40 if(std::abs(diagonal.local_element(i)) > 1.0e-10)
41 diagonal.local_element(i) = 1.0 / diagonal.local_element(i);
43 diagonal.local_element(i) = 1.0;