12 #include "../config/config.hpp"
44 double loc_energy, glob_energy;
48 MPI_Allreduce(&loc_energy, &glob_energy, 1, MPI_DOUBLE, MPI_SUM,
int Size() const
Logical size of the array.
Pointer to an Operator of a specified type.
Operator::Type Type() const
Get the currently set operator type id.
HYPRE_Int * GetDofOffsets()
Abstract parallel finite element space.
static void Sum(OpData< T >)
Reduce operation Sum, instantiated for int and double.
int GetLocalTDofNumber(int ldof)
Operator * Ptr() const
Access the underlying Operator pointer.
GroupCommunicator & GroupComm()
Return a reference to the internal GroupCommunicator (on VDofs)
void Clear()
Clear the OperatorHandle, deleting the held Operator (if owned), while leaving the type id unchanged...
void Distribute(const Vector *tv)
void MakeSquareBlockDiag(MPI_Comm comm, HYPRE_Int glob_size, HYPRE_Int *row_starts, SparseMatrix *diag)
Reset the OperatorHandle to hold a parallel square block-diagonal matrix using the currently set type...
void Reduce(T *ldata, void(*Op)(OpData< T >))
Reduce within each group where the master is the root.
Class for parallel grid function.
HypreParMatrix * Dof_TrueDof_Matrix()
The true dof-to-dof interpolation matrix.
void MakePtAP(OperatorHandle &A, OperatorHandle &P)
Reset the OperatorHandle to hold the product P^t A P.