MFEM v4.7.0
Finite element discretization library
|
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) |
HypreParMatrix * | mfem::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. | |
HypreParMatrix * | mfem::ParAdd (const HypreParMatrix *A, const HypreParMatrix *B) |
Returns the matrix A + B. | |
HypreParMatrix * | mfem::ParMult (const HypreParMatrix *A, const HypreParMatrix *B, bool own_matrix) |
HypreParMatrix * | mfem::RAP (const HypreParMatrix *A, const HypreParMatrix *P) |
Returns the matrix P^t * A * P. | |
HypreParMatrix * | mfem::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) |
HypreParMatrix * | mfem::HypreParMatrixFromBlocks (Array2D< const HypreParMatrix * > &blocks, Array2D< real_t > *blockCoeff=NULL) |
Returns a merged hypre matrix constructed from hypre matrix blocks. | |
HypreParMatrix * | mfem::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) |