<ol>
+<li> Changed: parallel sparse matrices now also require the use of
+compress(VectorOperation) like vectors do. See the glossary for details.
+Old functions are now deprecated.
+<br>
+(Timo Heister, 2013/02/25)
+
<li> New: step-49 demonstrates advanced techniques for mesh creation and
manipulation.
<br>
Assembly::CopyData::
StokesPreconditioner<dim> (stokes_fe));
- stokes_preconditioner_matrix.compress();
+ stokes_preconditioner_matrix.compress(VectorOperation::add);
}
Assembly::CopyData::
StokesSystem<dim> (stokes_fe));
- stokes_matrix.compress();
+ stokes_matrix.compress(VectorOperation::add);
stokes_rhs.compress(VectorOperation::add);
rebuild_stokes_matrix = false;
Assembly::CopyData::
TemperatureMatrix<dim> (temperature_fe));
- temperature_mass_matrix.compress();
- temperature_stiffness_matrix.compress();
+ temperature_mass_matrix.compress(VectorOperation::add);
+ temperature_stiffness_matrix.compress(VectorOperation::add);
rebuild_temperature_matrices = false;
rebuild_temperature_preconditioner = true;
temperature_matrix.copy_from (temperature_mass_matrix);
temperature_matrix.add (time_step, temperature_stiffness_matrix);
}
- temperature_matrix.compress();
if (rebuild_temperature_preconditioner == true)
{
system_rhs);
}
- system_matrix.compress ();
+ system_matrix.compress (VectorOperation::add);
system_rhs.compress (VectorOperation::add);
}
* distributed objects" for more
* information.
*/
- void compress (::dealii::VectorOperation::values operation
- =::dealii::VectorOperation::unknown);
+ void compress (::dealii::VectorOperation::values operation);
+
+ /**
+ * @deprecated: use compress() with VectorOperation instead.
+ */
+ void compress () DEAL_II_DEPRECATED;
/**
* Multiply the entire matrix by a
block(r,c).compress (operation);
}
+template <class MatrixType>
+inline
+void
+BlockMatrixBase<MatrixType>::compress ()
+{
+ compress(::dealii::VectorOperation::unknown);
+}
+
template <class MatrixType>
* for more information.
* more information.
*/
- void compress (::dealii::VectorOperation::values operation
- =::dealii::VectorOperation::unknown);
+ void compress (::dealii::VectorOperation::values operation);
+
+ /**
+ * @deprecated: use compress() with VectorOperation instead.
+ */
+ void compress () DEAL_II_DEPRECATED;
+
/**
* Return the value of the entry
* (<i>i,j</i>). This may be an
* See @ref GlossCompress "Compressing distributed objects"
* for more information.
*/
- void compress (::dealii::VectorOperation::values operation
- =::dealii::VectorOperation::unknown);
+ void compress (::dealii::VectorOperation::values operation);
+
+ /**
+ * @deprecated: use compress() with VectorOperation instead.
+ */
+ void compress () DEAL_II_DEPRECATED;
/**
* Set the element (<i>i,j</i>)
+ inline
+ void
+ SparseMatrix::compress ()
+ {
+ compress(::dealii::VectorOperation::unknown);
+ }
+
+
+
inline
SparseMatrix &
SparseMatrix::operator = (const double d)
{
Assert (d==0, ExcScalarAssignmentOnlyForZeroValue());
- compress ();
+ compress (::dealii::VectorOperation::unknown); // TODO: why do we do this? Should we not check for is_compressed?
const int ierr = matrix->PutScalar(d);
AssertThrow (ierr == 0, ExcTrilinosError(ierr));
+ void
+ MatrixBase::compress ()
+ {
+ compress(::dealii::VectorOperation::unknown);
+ }
+
+
+
unsigned int
MatrixBase::m () const
{