MFEM v4.7.0
Finite element discretization library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
hypre.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  mfem
 

Functions

template<typename T >
bool mfem::CanShallowCopy (const Memory< T > &src, MemoryClass mc)
 Return true if the src Memory can be used with the MemoryClass mc.
 
real_t mfem::InnerProduct (HypreParVector *x, HypreParVector *y)
 
real_t mfem::InnerProduct (HypreParVector &x, HypreParVector &y)
 Returns the inner product of x and y.
 
real_t mfem::ParNormlp (const Vector &vec, real_t p, MPI_Comm comm)
 Compute the l_p norm of the Vector which is split without overlap across the given communicator.
 
template<typename T >
void mfem::CopyMemory (Memory< T > &src, Memory< T > &dst, MemoryClass dst_mc, bool dst_owner)
 Shallow or deep copy src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc. If one of the host/device MemoryTypes of src is contained in dst_mc, then a shallow copy will be used and dst will simply be an alias of src. Otherwise, dst will be properly allocated and src will be deep copied to dst.
 
template<typename SrcT , typename DstT >
void mfem::CopyConvertMemory (Memory< SrcT > &src, MemoryClass dst_mc, Memory< DstT > &dst)
 Deep copy and convert src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc and convert it from type SrcT to type DstT.
 
decltype(hypre_CSRMatrix::memory_location) mfem::GetHypreParMatrixMemoryLocation (MemoryClass mc)
 
void mfem::delete_hypre_ParCSRMatrixColMapOffd (hypre_ParCSRMatrix *A)
 
void mfem::HypreStealOwnership (HypreParMatrix &A_hyp, SparseMatrix &A_diag)
 Make A_hyp steal ownership of its diagonal part A_diag.
 
void mfem::BlockInverseScale (const HypreParMatrix *A, HypreParMatrix *C, const Vector *b, HypreParVector *d, int blocksize, BlockInverseScaleJob job)
 
HypreParMatrixmfem::Add (real_t alpha, const HypreParMatrix &A, real_t beta, const HypreParMatrix &B)
 Return a new matrix C = alpha*A + beta*B, assuming that both A and B use the same row and column partitions and the same col_map_offd arrays.
 
HypreParMatrixmfem::ParAdd (const HypreParMatrix *A, const HypreParMatrix *B)
 Returns the matrix A + B.
 
HypreParMatrixmfem::ParMult (const HypreParMatrix *A, const HypreParMatrix *B, bool own_matrix)
 
HypreParMatrixmfem::RAP (const HypreParMatrix *A, const HypreParMatrix *P)
 Returns the matrix P^t * A * P.
 
HypreParMatrixmfem::RAP (const HypreParMatrix *Rt, const HypreParMatrix *A, const HypreParMatrix *P)
 Returns the matrix Rt^t * A * P.
 
void mfem::GatherBlockOffsetData (MPI_Comm comm, const int rank, const int nprocs, const int num_loc, const Array< int > &offsets, std::vector< int > &all_num_loc, const int numBlocks, std::vector< std::vector< HYPRE_BigInt > > &blockProcOffsets, std::vector< HYPRE_BigInt > &procOffsets, std::vector< std::vector< int > > &procBlockOffsets, HYPRE_BigInt &firstLocal, HYPRE_BigInt &globalNum)
 
HypreParMatrixmfem::HypreParMatrixFromBlocks (Array2D< const HypreParMatrix * > &blocks, Array2D< real_t > *blockCoeff=NULL)
 Returns a merged hypre matrix constructed from hypre matrix blocks.
 
HypreParMatrixmfem::HypreParMatrixFromBlocks (Array2D< HypreParMatrix * > &blocks, Array2D< real_t > *blockCoeff=NULL)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void mfem::EliminateBC (const HypreParMatrix &A, const HypreParMatrix &Ae, const Array< int > &ess_dof_list, const Vector &X, Vector &B)
 Eliminate essential BC specified by ess_dof_list from the solution X to the r.h.s. B.
 
int mfem::ParCSRRelax_Taubin (hypre_ParCSRMatrix *A, hypre_ParVector *f, real_t lambda, real_t mu, int N, real_t max_eig, hypre_ParVector *u, hypre_ParVector *r)
 
int mfem::ParCSRRelax_FIR (hypre_ParCSRMatrix *A, hypre_ParVector *f, real_t max_eig, int poly_order, real_t *fir_coeffs, hypre_ParVector *u, hypre_ParVector *x0, hypre_ParVector *x1, hypre_ParVector *x2, hypre_ParVector *x3)