// there is no such thing
number first_nonzero_diagonal_entry = 1;
for (unsigned int i=0; i<n_dofs; ++i)
- if (matrix.diag_element(i) != 0)
+ if (matrix.diag_element(i) != number())
{
first_nonzero_diagonal_entry = matrix.diag_element(i);
break;
// store the new rhs entry to make
// the gauss step more efficient
number new_rhs;
- if (matrix.diag_element(dof_number) != 0.0)
+ if (matrix.diag_element(dof_number) != number())
{
new_rhs = dof->second * matrix.diag_element(dof_number);
right_hand_side(dof_number) = new_rhs;
"function, see the documentation."));
// correct right hand side
- right_hand_side(row) -= p->value() /
+ right_hand_side(row) -= static_cast<number>(p->value()) /
diagonal_entry * new_rhs;
// set matrix entry to zero
BlockVector<number> &solution,
BlockVector<number> &right_hand_side,
const bool eliminate_columns);
-
}
+for (number: COMPLEX_SCALARS)
+ {
+ template
+ void MatrixTools::apply_boundary_values
+ (const std::map<types::global_dof_index,number> &boundary_values,
+ SparseMatrix<number> &matrix,
+ Vector<number> &solution,
+ Vector<number> &right_hand_side,
+ const bool eliminate_columns);
+ }
+
for (scalar: REAL_SCALARS; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
{
#if deal_II_dimension <= deal_II_space_dimension