87 return(comm_->
MyPID());
110 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
141 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
162 long long *updateList,
181 #ifndef EPETRA_FORTRAN
182 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
189 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
233 return(x_->
Norm1(scalar));
238 return(x_->
Norm2(scalar));
273 Epetra_DVBR_Matrix *
B =
new Epetra_DVBR_Matrix(rowmap_);
277 int MANGLE(epetra_rdp_dvbr_matrix_allocate)
278 (EPETRA_MATRIX
A,
int* numNzBlks,
int* blkColInds)
280 Epetra_DVBR_Matrix *B = (Epetra_DVBR_Matrix *) A;
281 return(B->allocate(numNzBlks, blkColInds));
283 int MANGLE(epetra_rdp_dvbr_matrix_putblockrow)
285 double* vals,
int* blk_col_inds)
287 Epetra_DVBR_Matrix *B = (Epetra_DVBR_Matrix *) A;
292 int MANGLE(epetra_rdp_dvbr_matrix_fillcomplete)(EPETRA_MATRIX A)
294 Epetra_DVBR_Matrix *B = (Epetra_DVBR_Matrix *) A;
295 return(B->fillComplete());
298 int MANGLE(epetra_rdp_dvbr_matrix_matvec)(EPETRA_MATRIX A, EPETRA_VECTOR x,
301 Epetra_DVBR_Matrix *B = (Epetra_DVBR_Matrix *) A;
304 return(B->matvec(x1, y1));
307 int MANGLE(epetra_rdp_dvbr_matrix_matmultivec)(EPETRA_MATRIX A,
308 EPETRA_MULTIVECTOR x,
309 EPETRA_MULTIVECTOR y)
311 Epetra_DVBR_Matrix *B = (Epetra_DVBR_Matrix *) A;
314 return(B->matvec(x1, y1));
317 void MANGLE(epetra_rdp_dvbr_matrix_destroy)(EPETRA_MATRIX A)
319 delete (Epetra_DVBR_Matrix *) A;
330 Epetra_DCRS_Matrix *B =
new Epetra_DCRS_Matrix(rowmap_);
334 int MANGLE(epetra_rdp_dcrs_matrix_allocate)
335 (EPETRA_MATRIX A,
int* rowLengths)
337 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
338 return(B->allocate(rowLengths));
342 double* vals,
int* col_inds)
344 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
348 int MANGLE(epetra_rdp_dcrs_matrix_sumintodiagonal)
349 (EPETRA_MATRIX A,
double* diagonal)
351 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
352 return(B->sumIntoDiagonal( diagonal));
355 int MANGLE(epetra_rdp_dcrs_matrix_fillcomplete)(EPETRA_MATRIX A)
357 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
358 return(B->fillComplete());
361 int MANGLE(epetra_rdp_dcrs_matrix_matvec)(EPETRA_MATRIX A, EPETRA_VECTOR x,
364 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
367 return(B->matvec(x1, y1));
370 int MANGLE(epetra_rdp_dcrs_matrix_matmultivec)(EPETRA_MATRIX A,
371 EPETRA_MULTIVECTOR x,
372 EPETRA_MULTIVECTOR y)
374 Epetra_DCRS_Matrix *B = (Epetra_DCRS_Matrix *) A;
377 return(B->matvec(x1, y1));
381 void MANGLE(epetra_rdp_dcrs_matrix_destroy)(EPETRA_MATRIX A)
383 delete (Epetra_DCRS_Matrix *) A;
413 double **in_multiVector,
EPETRA_INT numVectors)
422 (EPETRA_MULTIVECTOR in_multiVector)
430 in_multiVector,
EPETRA_INT numVectors,
int *vecIndices)
447 int MANGLE(epetra_rdp_multivector_putmultivector)
448 (EPETRA_MULTIVECTOR multiVector,
449 double **in_multiVector)
452 const double ** t = (
const double **) in_multiVector;
453 return(multiVector_->putMultiVector(t));
456 int MANGLE(epetra_rdp_multivector_allocate)(EPETRA_MULTIVECTOR multiVector,
461 return(multiVector_->allocate(map_,
EPETRA_DEREF(numVectors)));
464 int MANGLE(epetra_rdp_multivector_putscalar)
471 int MANGLE(epetra_rdp_multivector_scale)
478 int MANGLE(epetra_rdp_multivector_scalecopy)
479 (EPETRA_MULTIVECTOR multiVector, EPETRA_MULTIVECTOR multiVector_in,
484 return(multiVector_->scaleCopy(multiVector_in_,
EPETRA_DEREF(scalar)));
487 int MANGLE(epetra_rdp_multivector_dotprod)
488 (EPETRA_MULTIVECTOR multiVector, EPETRA_MULTIVECTOR multiVector_in,
493 return(multiVector_->dotProd(multiVector_in_, scalar));
496 int MANGLE(epetra_rdp_multivector_addvec)
498 EPETRA_MULTIVECTOR multiVector_in)
502 return(multiVector_->addVec(
EPETRA_DEREF(scalar), multiVector_in_)));
505 int MANGLE(epetra_rdp_multivector_norm1)
506 (EPETRA_MULTIVECTOR multiVector,
double *scalar)
509 return(multiVector_->norm1(scalar));
512 int MANGLE(epetra_rdp_multivector_norm2)
513 (EPETRA_MULTIVECTOR multiVector,
double *scalar)
516 return(multiVector_->norm2(scalar));
519 int MANGLE(epetra_rdp_multivector_lincomb)(EPETRA_MULTIVECTOR multiVector,
520 EPETRA_MULTIVECTOR b,
526 return(multiVector_->linComb(b_,
EPETRA_DEREF(scalar,c_)));
529 int MANGLE(epetra_rdp_multivector_random)
530 (EPETRA_MULTIVECTOR multiVector)
533 return(multiVector_->random());
536 int MANGLE(epetra_rdp_multivector_reduce)(EPETRA_MULTIVECTOR multiVector)
539 return(multiVector_->reduce());
542 int MANGLE(epetra_rdp_multivector_numvectors)(EPETRA_MULTIVECTOR multiVector)
545 return(multiVector_->numVectors());
548 int MANGLE(epetra_rdp_multivector_gemm)(EPETRA_MULTIVECTOR multiVector,
550 EPETRA_MULTIVECTOR A, EPETRA_MULTIVECTOR B,
561 void MANGLE(epetra_rdp_multivector_destroy)(EPETRA_MULTIVECTOR multiVector)
573 int *blockUpdateList,
574 int* blockSizes,
EPETRA_INT indexBase, EPETRA_COMM comm)
587 int *blockUpdateList,
588 int* blockSizes,
EPETRA_INT indexBase, EPETRA_COMM comm)
598 void MANGLE(epetra_blockmap_destroy)(EPETRA_BLOCKMAP blockmap)
616 void MANGLE(epetra_localmap_destroy)(EPETRA_LOCALMAP localmap)
632 Epetra_LocalBlockMap *localblockmap =
new
646 Epetra_LocalBlockMap *localblockmap =
new
653 void MANGLE(epetra_localblockmap_destroy)(EPETRA_LOCALBLOCKMAP localblockmap)
655 delete (Epetra_LocalBlockMap *) localblockmap;
Epetra_MultiVector: A class for constructing and using dense multi-vectors, vectors and matrices in p...
Epetra_Map: A class for partitioning vectors and matrices.
void MANGLE() epetra_vector_destroy(EPETRA_OBJECT_REF x)
void GEMM(const char TRANSA, const char TRANSB, const int M, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const
Epetra_BLAS matrix-matrix multiply function (SGEMM)
int Random()
Set multi-vector values to random numbers.
Epetra_Map(int NumGlobalElements, int IndexBase, const Epetra_Comm &Comm)
Epetra_Map constructor for a Epetra-defined uniform linear distribution of elements.
EPETRA_OBJECT_PTR MANGLE() epetra_map_create2_64(EPETRA_LONG_LONG numGlobalElements, EPETRA_INT numMyElements, EPETRA_LONG_LONG indexBase, EPETRA_OBJECT_REF comm)
EPETRA_OBJECT_PTR MANGLE() epetra_serialcomm_create()
int MyGlobalElements(int *MyGlobalElementList) const
Puts list of global elements on this processor into the user-provided array.
long long NumGlobalElements64() const
EPETRA_OBJECT_PTR MANGLE() epetra_mpicomm_create1()
Epetra_Comm.
int MANGLE() epetra_vector_putscalar(EPETRA_OBJECT_REF x, EPETRA_DOUBLE scalar)
void MANGLE() epetra_comm_barrier(EPETRA_OBJECT_REF comm)
int PutScalar(double ScalarConstant)
Initialize all values in a multi-vector with constant value.
int MANGLE() epetra_map_nummyelements(EPETRA_OBJECT_REF map)
Epetra_Vector: A class for constructing and using dense vectors on a parallel computer.
long long MANGLE() epetra_map_numglobalelements(EPETRA_OBJECT_REF map)
Epetra_MpiComm: The Epetra MPI Communication Class.
virtual void Barrier() const =0
Epetra_Comm Barrier function.
EPETRA_OBJECT_PTR MANGLE() epetra_map_create3(EPETRA_INT numGlobalElements, EPETRA_INT numLocalElements, int *updateList, EPETRA_INT indexBase, EPETRA_OBJECT_REF comm)
virtual int MyPID() const =0
Return my process ID.
int MANGLE() epetra_comm_numproc(EPETRA_OBJECT_REF comm)
int NumMyElements() const
Number of elements on the calling processor.
EPETRA_OBJECT_PTR MANGLE() epetra_map_comm(EPETRA_OBJECT_REF map)
int *MANGLE() epetra_map_myglobalelements(EPETRA_OBJECT_REF map)
friend class Epetra_LocalMap
EPETRA_OBJECT_PTR MANGLE() epetra_map_create1_64(EPETRA_LONG_LONG numGlobalElements, EPETRA_LONG_LONG indexBase, EPETRA_OBJECT_REF comm)
void MANGLE() epetra_comm_destroy(EPETRA_OBJECT_REF comm)
Epetra_Comm: The Epetra Communication Abstract Base Class.
int MANGLE() epetra_vector_norm2(EPETRA_OBJECT_REF x, double *scalar)
int MANGLE() epetra_vector_norm1(EPETRA_OBJECT_REF x, double *scalar)
void MANGLE() epetra_vector_print(EPETRA_OBJECT_REF x)
EPETRA_OBJECT_PTR MANGLE() epetra_map_create1(EPETRA_INT numGlobalElements, EPETRA_INT indexBase, EPETRA_OBJECT_REF comm)
Epetra_Map.
EPETRA_OBJECT_PTR MANGLE() epetra_vector_create1(EPETRA_OBJECT_REF map)
Epetra_Vector.
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
const Epetra_Comm & Comm() const
Access function for Epetra_Comm communicator.
Epetra_SerialComm: The Epetra Serial Communication Class.
int MANGLE() epetra_comm_mypid(EPETRA_OBJECT_REF comm)
int MANGLE() epetra_vector_random(EPETRA_OBJECT_REF x)
int Update(double ScalarA, const Epetra_MultiVector &A, double ScalarThis)
Update multi-vector values with scaled values of A, this = ScalarThis*this + ScalarA*A.
int Norm1(double *Result) const
Compute 1-norm of each vector in multi-vector.
virtual int NumProc() const =0
Returns total number of processes.
Epetra_BlockMap(int NumGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm)
Epetra_BlockMap constructor for a Epetra-defined uniform linear distribution of constant size element...
EPETRA_OBJECT_PTR MANGLE() epetra_map_create3_64(EPETRA_LONG_LONG numGlobalElements, EPETRA_INT numLocalElements, long long *updateList, EPETRA_LONG_LONG indexBase, EPETRA_OBJECT_REF comm)
int Norm2(double *Result) const
Compute 2-norm of each vector in multi-vector.
int MANGLE() epetra_vector_update(EPETRA_OBJECT_REF x, EPETRA_DOUBLE scalara, EPETRA_OBJECT_REF a, EPETRA_DOUBLE scalarb, EPETRA_OBJECT_REF b, EPETRA_DOUBLE scalarx)
EPETRA_OBJECT_PTR MANGLE() epetra_mpicomm_create2(MPI_Comm *comm)
EPETRA_OBJECT_PTR MANGLE() epetra_vector_create2(EPETRA_INT CopyValues, EPETRA_OBJECT_REF map, double *V)
long long * MyGlobalElements64() const
void MANGLE() epetra_map_destroy(EPETRA_OBJECT_REF map)
EPETRA_OBJECT_PTR MANGLE() epetra_map_create2(EPETRA_INT numGlobalElements, EPETRA_INT numMyElements, EPETRA_INT indexBase, EPETRA_OBJECT_REF comm)
long long EPETRA_LONG_LONG
Epetra_LocalMap: A class for replicating vectors and matrices across multiple processors.
long long *MANGLE() epetra_map_myglobalelements_64(EPETRA_OBJECT_REF map)