36 #ifndef NEKTAR_LIB_UTILITIES_COMMUNICATION_XXT_HPP
37 #define NEKTAR_LIB_UTILITIES_COMMUNICATION_XXT_HPP
49 using namespace Nektar;
68 unsigned int n, *Lrp, *Lj;
73 unsigned int n, *Arp, *Aj;
double *A;
122 unsigned int *
Xp;
double *X;
125 double *vl, *vc, *
vx, *combuf;
132 unsigned int n,
const unsigned long *
id,
133 unsigned int nz,
const unsigned int *Ai,
const unsigned int *Aj,
134 const double *A,
unsigned int null_space,
const struct comm *
comm);
158 const Nektar::Array<OneD, unsigned long> pId,
159 const Nektar::Array<OneD, unsigned int> pAi,
160 const Nektar::Array<OneD, unsigned int> pAj,
161 const Nektar::Array<OneD, NekDouble> pAr,
164 #ifdef NEKTAR_USE_MPI
165 unsigned int nz = pAr.num_elements();
167 ASSERTL1(vCommMpi,
"Failed to cast MPI Comm object.");
169 MPI_Comm_dup(vCommMpi->GetComm(), &vComm.
c);
170 vComm.
id = vCommMpi->GetRank();
171 vComm.
np = vCommMpi->GetSize();
172 return nektar_crs_setup(pRank, &pId[0], nz, &pAi[0], &pAj[0], &pAr[0], 0, &vComm);
182 static inline void Solve ( Nektar::Array<OneD, NekDouble> pX,
184 Nektar::Array<OneD, NekDouble> pB )
186 #ifdef NEKTAR_USE_MPI
200 #ifdef NEKTAR_USE_MPI