Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SparseMatrix: rename om to omega #13283

Merged
merged 1 commit into from
Jan 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 10 additions & 10 deletions include/deal.II/lac/sparse_matrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -1385,7 +1385,7 @@ class SparseMatrix : public virtual Subscriptor
void
precondition_SOR(Vector<somenumber> & dst,
const Vector<somenumber> &src,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Apply transpose SOR preconditioning matrix to <tt>src</tt>.
Expand All @@ -1394,7 +1394,7 @@ class SparseMatrix : public virtual Subscriptor
void
precondition_TSOR(Vector<somenumber> & dst,
const Vector<somenumber> &src,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Perform SSOR preconditioning in-place. Apply the preconditioner matrix
Expand All @@ -1411,15 +1411,15 @@ class SparseMatrix : public virtual Subscriptor
*/
template <typename somenumber>
void
SOR(Vector<somenumber> &v, const number om = 1.) const;
SOR(Vector<somenumber> &v, const number omega = 1.) const;

/**
* Perform a transpose SOR preconditioning in-place. <tt>omega</tt> is the
* relaxation parameter.
*/
template <typename somenumber>
void
TSOR(Vector<somenumber> &v, const number om = 1.) const;
TSOR(Vector<somenumber> &v, const number omega = 1.) const;

/**
* Perform a permuted SOR preconditioning in-place.
Expand All @@ -1436,7 +1436,7 @@ class SparseMatrix : public virtual Subscriptor
PSOR(Vector<somenumber> & v,
const std::vector<size_type> &permutation,
const std::vector<size_type> &inverse_permutation,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Perform a transposed permuted SOR preconditioning in-place.
Expand All @@ -1453,7 +1453,7 @@ class SparseMatrix : public virtual Subscriptor
TPSOR(Vector<somenumber> & v,
const std::vector<size_type> &permutation,
const std::vector<size_type> &inverse_permutation,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Do one Jacobi step on <tt>v</tt>. Performs a direct Jacobi step with
Expand All @@ -1464,7 +1464,7 @@ class SparseMatrix : public virtual Subscriptor
void
Jacobi_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Do one SOR step on <tt>v</tt>. Performs a direct SOR step with right
Expand All @@ -1474,7 +1474,7 @@ class SparseMatrix : public virtual Subscriptor
void
SOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Do one adjoint SOR step on <tt>v</tt>. Performs a direct TSOR step with
Expand All @@ -1484,7 +1484,7 @@ class SparseMatrix : public virtual Subscriptor
void
TSOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om = 1.) const;
const number omega = 1.) const;

/**
* Do one SSOR step on <tt>v</tt>. Performs a direct SSOR step with right
Expand All @@ -1494,7 +1494,7 @@ class SparseMatrix : public virtual Subscriptor
void
SSOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om = 1.) const;
const number omega = 1.) const;
//@}
/**
* @name Iterators
Expand Down
75 changes: 38 additions & 37 deletions include/deal.II/lac/sparse_matrix.templates.h
Original file line number Diff line number Diff line change
Expand Up @@ -1398,7 +1398,7 @@ template <typename somenumber>
void
SparseMatrix<number>::precondition_Jacobi(Vector<somenumber> & dst,
const Vector<somenumber> &src,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1424,9 +1424,9 @@ SparseMatrix<number>::precondition_Jacobi(Vector<somenumber> & dst,
// in each row, i.e. at index
// rowstart[i]. and we do have a
// square matrix by above assertion
if (om != number(1.))
if (omega != number(1.))
for (size_type i = 0; i < n; ++i, ++dst_ptr, ++src_ptr, ++rowstart_ptr)
*dst_ptr = somenumber(om) * *src_ptr / somenumber(val[*rowstart_ptr]);
*dst_ptr = somenumber(omega) * *src_ptr / somenumber(val[*rowstart_ptr]);
else
for (size_type i = 0; i < n; ++i, ++dst_ptr, ++src_ptr, ++rowstart_ptr)
*dst_ptr = *src_ptr / somenumber(val[*rowstart_ptr]);
Expand All @@ -1440,7 +1440,7 @@ void
SparseMatrix<number>::precondition_SSOR(
Vector<somenumber> & dst,
const Vector<somenumber> & src,
const number om,
const number omega,
const std::vector<std::size_t> &pos_right_of_diagonal) const
{
// to understand how this function works
Expand Down Expand Up @@ -1482,15 +1482,15 @@ SparseMatrix<number>::precondition_SSOR(
s += val[j] * number(dst(cols->colnums[j]));

// divide by diagonal element
*dst_ptr -= s * om;
*dst_ptr -= s * omega;
*dst_ptr /= val[*rowstart_ptr];
}

rowstart_ptr = cols->rowstart.get();
dst_ptr = &dst(0);
for (; rowstart_ptr != &cols->rowstart[n]; ++rowstart_ptr, ++dst_ptr)
*dst_ptr *=
somenumber(om * (number(2.) - om)) * somenumber(val[*rowstart_ptr]);
*dst_ptr *= somenumber(omega * (number(2.) - omega)) *
somenumber(val[*rowstart_ptr]);

// backward sweep
rowstart_ptr = &cols->rowstart[n - 1];
Expand All @@ -1504,7 +1504,7 @@ SparseMatrix<number>::precondition_SSOR(
for (size_type j = first_right_of_diagonal_index; j < end_row; ++j)
s += val[j] * number(dst(cols->colnums[j]));

*dst_ptr -= s * om;
*dst_ptr -= s * omega;
*dst_ptr /= val[*rowstart_ptr];
};
return;
Expand Down Expand Up @@ -1536,15 +1536,16 @@ SparseMatrix<number>::precondition_SSOR(
s += val[j] * number(dst(cols->colnums[j]));

// divide by diagonal element
*dst_ptr -= s * om;
*dst_ptr -= s * omega;
Assert(val[*rowstart_ptr] != number(), ExcDivideByZero());
*dst_ptr /= val[*rowstart_ptr];
};

rowstart_ptr = cols->rowstart.get();
dst_ptr = &dst(0);
for (size_type row = 0; row < n; ++row, ++rowstart_ptr, ++dst_ptr)
*dst_ptr *= somenumber((number(2.) - om)) * somenumber(val[*rowstart_ptr]);
*dst_ptr *=
somenumber((number(2.) - omega)) * somenumber(val[*rowstart_ptr]);

// backward sweep
rowstart_ptr = &cols->rowstart[n - 1];
Expand All @@ -1560,7 +1561,7 @@ SparseMatrix<number>::precondition_SSOR(
number s = 0;
for (size_type j = first_right_of_diagonal_index; j < end_row; ++j)
s += val[j] * number(dst(cols->colnums[j]));
*dst_ptr -= s * om;
*dst_ptr -= s * omega;
Assert(val[*rowstart_ptr] != number(), ExcDivideByZero());
*dst_ptr /= val[*rowstart_ptr];
};
Expand All @@ -1572,13 +1573,13 @@ template <typename somenumber>
void
SparseMatrix<number>::precondition_SOR(Vector<somenumber> & dst,
const Vector<somenumber> &src,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());

dst = src;
SOR(dst, om);
SOR(dst, omega);
}


Expand All @@ -1587,20 +1588,20 @@ template <typename somenumber>
void
SparseMatrix<number>::precondition_TSOR(Vector<somenumber> & dst,
const Vector<somenumber> &src,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());

dst = src;
TSOR(dst, om);
TSOR(dst, omega);
}


template <typename number>
template <typename somenumber>
void
SparseMatrix<number>::SOR(Vector<somenumber> &dst, const number om) const
SparseMatrix<number>::SOR(Vector<somenumber> &dst, const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1619,15 +1620,15 @@ SparseMatrix<number>::SOR(Vector<somenumber> &dst, const number om) const
s -= somenumber(val[j]) * dst(col);
}

dst(row) = s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
dst(row) = s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);
}
}


template <typename number>
template <typename somenumber>
void
SparseMatrix<number>::TSOR(Vector<somenumber> &dst, const number om) const
SparseMatrix<number>::TSOR(Vector<somenumber> &dst, const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1644,7 +1645,7 @@ SparseMatrix<number>::TSOR(Vector<somenumber> &dst, const number om) const
if (cols->colnums[j] > row)
s -= somenumber(val[j]) * dst(cols->colnums[j]);

dst(row) = s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
dst(row) = s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);

if (row == 0)
break;
Expand All @@ -1660,7 +1661,7 @@ void
SparseMatrix<number>::PSOR(Vector<somenumber> & dst,
const std::vector<size_type> &permutation,
const std::vector<size_type> &inverse_permutation,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand Down Expand Up @@ -1688,7 +1689,7 @@ SparseMatrix<number>::PSOR(Vector<somenumber> & dst,
}
}

dst(row) = s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
dst(row) = s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);
}
}

Expand All @@ -1699,7 +1700,7 @@ void
SparseMatrix<number>::TPSOR(Vector<somenumber> & dst,
const std::vector<size_type> &permutation,
const std::vector<size_type> &inverse_permutation,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1725,7 +1726,7 @@ SparseMatrix<number>::TPSOR(Vector<somenumber> & dst,
s -= somenumber(val[j]) * dst(col);
}

dst(row) = s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
dst(row) = s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);
}
}

Expand All @@ -1736,7 +1737,7 @@ template <typename somenumber>
void
SparseMatrix<number>::Jacobi_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1756,7 +1757,7 @@ SparseMatrix<number>::Jacobi_step(Vector<somenumber> & v,
}
else
w->equ(-1., b);
precondition_Jacobi(*w, *w, om);
precondition_Jacobi(*w, *w, omega);
v -= *w;
}

Expand All @@ -1767,7 +1768,7 @@ template <typename somenumber>
void
SparseMatrix<number>::SOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1784,7 +1785,7 @@ SparseMatrix<number>::SOR_step(Vector<somenumber> & v,
{
s -= somenumber(val[j]) * v(cols->colnums[j]);
}
v(row) += s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
v(row) += s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);
}
}

Expand All @@ -1795,7 +1796,7 @@ template <typename somenumber>
void
SparseMatrix<number>::TSOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om) const
const number omega) const
{
Assert(cols != nullptr, ExcNeedsSparsityPattern());
Assert(val != nullptr, ExcNotInitialized());
Expand All @@ -1812,7 +1813,7 @@ SparseMatrix<number>::TSOR_step(Vector<somenumber> & v,
{
s -= somenumber(val[j]) * v(cols->colnums[j]);
}
v(row) += s * somenumber(om) / somenumber(val[cols->rowstart[row]]);
v(row) += s * somenumber(omega) / somenumber(val[cols->rowstart[row]]);
}
}

Expand All @@ -1823,21 +1824,21 @@ template <typename somenumber>
void
SparseMatrix<number>::SSOR_step(Vector<somenumber> & v,
const Vector<somenumber> &b,
const number om) const
const number omega) const
{
SOR_step(v, b, om);
TSOR_step(v, b, om);
SOR_step(v, b, omega);
TSOR_step(v, b, omega);
}



template <typename number>
template <typename somenumber>
void
SparseMatrix<number>::SSOR(Vector<somenumber> &dst, const number om) const
SparseMatrix<number>::SSOR(Vector<somenumber> &dst, const number omega) const
{
// TODO: Is this called anywhere? If so, multiplication with om(2-om)D is
// missing
// TODO: Is this called anywhere? If so, multiplication with omega(2-omega)D
// is missing
Assert(false, ExcNotImplemented());

Assert(cols != nullptr, ExcNeedsSparsityPattern());
Expand All @@ -1863,7 +1864,7 @@ SparseMatrix<number>::SSOR(Vector<somenumber> &dst, const number om) const
s += somenumber(val[j]) * dst(p);
}
}
dst(i) -= s * somenumber(om);
dst(i) -= s * somenumber(omega);
dst(i) /= somenumber(val[cols->rowstart[i]]);
}

Expand All @@ -1880,7 +1881,7 @@ SparseMatrix<number>::SSOR(Vector<somenumber> &dst, const number om) const
s += somenumber(val[j]) * dst(p);
}
}
dst(i) -= s * somenumber(om) / somenumber(val[cols->rowstart[i]]);
dst(i) -= s * somenumber(omega) / somenumber(val[cols->rowstart[i]]);
}
}

Expand Down