ESYS13  Revision_
Classes | Typedefs | Functions
SystemMatrix.h File Reference
#include "Common.h"
#include "SparseMatrix.h"
#include "SystemMatrixPattern.h"
#include "Options.h"
#include "esysUtils/Esys_MPI.h"
#include "Paso.h"
#include "Coupler.h"

Go to the source code of this file.

Classes

struct  Paso_SystemMatrix

Typedefs

typedef int Paso_SystemMatrixType
typedef struct Paso_SystemMatrix Paso_SystemMatrix

Functions

PASO_DLL_API Paso_SystemMatrixPaso_SystemMatrix_alloc (Paso_SystemMatrixType, Paso_SystemMatrixPattern *, dim_t, dim_t, const bool_t patternIsUnrolled)
PASO_DLL_API Paso_SystemMatrixPaso_SystemMatrix_getReference (Paso_SystemMatrix *)
PASO_DLL_API void Paso_SystemMatrix_free (Paso_SystemMatrix *)
PASO_DLL_API void Paso_SystemMatrix_MatrixVector (const double alpha, Paso_SystemMatrix *A, const double *in, const double beta, double *out)
PASO_DLL_API void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0 (double alpha, Paso_SystemMatrix *A, const double *in, const double beta, double *out)
PASO_DLL_API void Paso_SystemMatrix_nullifyRowsAndCols (Paso_SystemMatrix *A, double *mask_row, double *mask_col, double main_diagonal_value)
PASO_DLL_API void Paso_SystemMatrix_applyBalanceInPlace (const Paso_SystemMatrix *A, double *x, const bool_t RHS)
PASO_DLL_API void Paso_SystemMatrix_applyBalance (const Paso_SystemMatrix *A, double *x_out, const double *x, const bool_t RHS)
PASO_DLL_API void Paso_SystemMatrix_balance (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_solve (Paso_SystemMatrix *A, double *out, double *in, Paso_Options *options)
PASO_DLL_API void Paso_solve_free (Paso_SystemMatrix *in)
PASO_DLL_API void Paso_SystemMatrix_startCollect (Paso_SystemMatrix *A, const double *in)
PASO_DLL_API double * Paso_SystemMatrix_finishCollect (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_startColCollect (Paso_SystemMatrix *A, const double *in)
PASO_DLL_API double * Paso_SystemMatrix_finishColCollect (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_startRowCollect (Paso_SystemMatrix *A, const double *in)
PASO_DLL_API double * Paso_SystemMatrix_finishRowCollect (Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getTotalNumRows (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getTotalNumCols (const Paso_SystemMatrix *)
PASO_DLL_API dim_t Paso_SystemMatrix_getGlobalNumRows (const Paso_SystemMatrix *)
PASO_DLL_API dim_t Paso_SystemMatrix_getGlobalNumCols (const Paso_SystemMatrix *)
PASO_DLL_API dim_t Paso_SystemMatrix_getGlobalTotalNumRows (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getGlobalTotalNumCols (const Paso_SystemMatrix *A)
PASO_DLL_API double Paso_SystemMatrix_getGlobalSize (const Paso_SystemMatrix *A)
PASO_DLL_API double Paso_SystemMatrix_getSparsity (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getNumRows (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getNumCols (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getRowOverlap (const Paso_SystemMatrix *A)
PASO_DLL_API dim_t Paso_SystemMatrix_getColOverlap (const Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_saveMM (Paso_SystemMatrix *, char *)
PASO_DLL_API void Paso_SystemMatrix_saveHB (Paso_SystemMatrix *, char *)
PASO_DLL_API Paso_SystemMatrixPaso_SystemMatrix_loadMM_toCSR (char *)
PASO_DLL_API Paso_SystemMatrixPaso_SystemMatrix_loadMM_toCSC (char *)
PASO_DLL_API void Paso_RHS_loadMM_toCSR (char *fileName_p, double *b, dim_t size)
PASO_DLL_API int Paso_SystemMatrix_getSystemMatrixTypeId (const index_t solver, const index_t preconditioner, const index_t package, const bool_t symmetry, Esys_MPIInfo *mpi_info)
PASO_DLL_API dim_t Paso_SystemMatrix_getNumOutput (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_setValues (Paso_SystemMatrix *, double)
PASO_DLL_API void Paso_SystemMatrix_add (Paso_SystemMatrix *, dim_t, index_t *, dim_t, dim_t, index_t *, dim_t, double *)
PASO_DLL_API void Paso_SystemMatrix_rowSum (Paso_SystemMatrix *A, double *row_sum)
PASO_DLL_API void Paso_SystemMatrix_nullifyRows (Paso_SystemMatrix *A, double *mask_row, double main_diagonal_value)
PASO_DLL_API void Paso_SystemMatrix_makeZeroRowSums (Paso_SystemMatrix *A_p, double *left_over)
PASO_DLL_API void Paso_SystemMatrix_copyBlockFromMainDiagonal (Paso_SystemMatrix *A_p, double *out)
PASO_DLL_API void Paso_SystemMatrix_copyBlockToMainDiagonal (Paso_SystemMatrix *A_p, const double *in)
PASO_DLL_API void Paso_SystemMatrix_copyFromMainDiagonal (Paso_SystemMatrix *A_p, double *out)
PASO_DLL_API void Paso_SystemMatrix_copyToMainDiagonal (Paso_SystemMatrix *A_p, const double *in)
PASO_DLL_API void Paso_SystemMatrix_solvePreconditioner (Paso_SystemMatrix *A, double *x, double *b)
PASO_DLL_API void Paso_SystemMatrix_setPreconditioner (Paso_SystemMatrix *A, Paso_Options *options)
PASO_DLL_API void Paso_SystemMatrix_freePreconditioner (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_copyColCoupleBlock (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_copyRemoteCoupleBlock (Paso_SystemMatrix *A, const bool_t recreatePattern)
PASO_DLL_API void Paso_SystemMatrix_fillWithGlobalCoordinates (Paso_SystemMatrix *A, const double f1)
PASO_DLL_API void Paso_SystemMatrix_print (Paso_SystemMatrix *A)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple (Paso_SystemMatrix *A, index_t **p_ptr, index_t **p_idx, double **p_val)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0 (Paso_SystemMatrix *A, index_t **p_ptr, index_t **p_idx, double **p_val)
void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0_Block (Paso_SystemMatrix *A, index_t **p_ptr, index_t **p_idx, double **p_val)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSC_OFFSET1 (Paso_SystemMatrix *A, index_t **p_ptr, index_t **p_idx, double **p_val)
PASO_DLL_API void Paso_SystemMatrix_copyMain_CSC_OFFSET1 (Paso_SystemMatrix *A, index_t **p_ptr, index_t **p_idx, double **p_val)
void Paso_SystemMatrix_extendedRowsForST (Paso_SystemMatrix *A, dim_t *degree_ST, index_t *offset_ST, index_t *ST)

Typedef Documentation

typedef int Paso_SystemMatrixType

Function Documentation

PASO_DLL_API void Paso_RHS_loadMM_toCSR ( char *  fileName_p,
double *  b,
dim_t  size 
)
PASO_DLL_API void Paso_solve ( Paso_SystemMatrix A,
double *  out,
double *  in,
Paso_Options options 
)
PASO_DLL_API void Paso_SystemMatrix_add ( Paso_SystemMatrix ,
dim_t  ,
index_t ,
dim_t  ,
dim_t  ,
index_t ,
dim_t  ,
double *   
)

References Paso_SystemMatrix::balance_vector, Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_block_size, Paso_SystemMatrixPattern::col_connector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_checkPtr(), Esys_MPIInfo_getReference(), Esys_noError(), Esys_resetError(), Esys_setError(), FALSE, Paso_SystemMatrix::global_id, Paso_SystemMatrixPattern::input_distribution, Paso_SystemMatrix::is_balanced, Paso_SystemMatrix::logical_col_block_size, Paso_SystemMatrix::logical_row_block_size, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MATRIX_FORMAT_OFFSET1, MATRIX_FORMAT_TRILINOS_CRS, MAX, MEMALLOC, MIN, Paso_SystemMatrixPattern::mpi_info, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_SystemMatrixPattern::output_distribution, Paso_Coupler_alloc(), Paso_Distribution_getReference(), PASO_PASO, Paso_SparseMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrixPattern_getReference(), Paso_SystemMatrixPattern_unrollBlocks(), Paso_TRILINOS_alloc(), Paso_SystemMatrix::pattern, Paso_SystemMatrix::reference_counter, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_block_size, Paso_SystemMatrixPattern::row_connector, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrixPattern::row_couplePattern, Paso_SystemMatrix::row_coupler, Paso_SystemMatrix::row_distribution, Paso_SystemMatrix::solver_p, Paso_SystemMatrix::solver_package, Paso_SystemMatrix::trilinos_data, TRUE, Paso_SystemMatrixPattern::type, Paso_SystemMatrix::type, TYPE_ERROR, and XNOR.

Referenced by dudley::MeshAdapter::newSystemMatrix(), finley::MeshAdapter::newSystemMatrix(), Paso_FCT_FluxLimiter_alloc(), Paso_FCT_setLowOrderOperator(), Paso_Preconditioner_AMG_buildInterpolationOperator(), Paso_Preconditioner_AMG_buildInterpolationOperatorBlock(), Paso_Preconditioner_AMG_getProlongation(), Paso_Preconditioner_AMG_getRestriction(), Paso_SystemMatrix_loadMM_toCSC(), Paso_SystemMatrix_loadMM_toCSR(), and Paso_TransportProblem_alloc().

PASO_DLL_API void Paso_SystemMatrix_applyBalance ( const Paso_SystemMatrix A,
double *  x_out,
const double *  x,
const bool_t  RHS 
)
PASO_DLL_API void Paso_SystemMatrix_applyBalanceInPlace ( const Paso_SystemMatrix A,
double *  x,
const bool_t  RHS 
)
PASO_DLL_API void Paso_SystemMatrix_copyMain_CSC_OFFSET1 ( Paso_SystemMatrix A,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val 
)
PASO_DLL_API void Paso_SystemMatrix_copyToMainDiagonal ( Paso_SystemMatrix A_p,
const double *  in 
)
void Paso_SystemMatrix_extendedRowsForST ( Paso_SystemMatrix A,
dim_t degree_ST,
index_t offset_ST,
index_t ST 
)
PASO_DLL_API int Paso_SystemMatrix_getSystemMatrixTypeId ( const index_t  solver,
const index_t  preconditioner,
const index_t  package,
const bool_t  symmetry,
Esys_MPIInfo mpi_info 
)
PASO_DLL_API void Paso_SystemMatrix_makeZeroRowSums ( Paso_SystemMatrix A_p,
double *  left_over 
)
PASO_DLL_API void Paso_SystemMatrix_MatrixVector ( const double  alpha,
Paso_SystemMatrix A,
const double *  in,
const double  beta,
double *  out 
)
PASO_DLL_API void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0 ( double  alpha,
Paso_SystemMatrix A,
const double *  in,
const double  beta,
double *  out 
)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple ( Paso_SystemMatrix A,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val 
)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSC_OFFSET1 ( Paso_SystemMatrix A,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val 
)
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0 ( Paso_SystemMatrix A,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val 
)
void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0_Block ( Paso_SystemMatrix A,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val 
)
PASO_DLL_API void Paso_SystemMatrix_nullifyRows ( Paso_SystemMatrix A,
double *  mask_row,
double  main_diagonal_value 
)
PASO_DLL_API void Paso_SystemMatrix_nullifyRowsAndCols ( Paso_SystemMatrix A,
double *  mask_row,
double *  mask_col,
double  main_diagonal_value 
)
PASO_DLL_API void Paso_SystemMatrix_rowSum ( Paso_SystemMatrix A,
double *  row_sum 
)
PASO_DLL_API void Paso_SystemMatrix_solvePreconditioner ( Paso_SystemMatrix A,
double *  x,
double *  b 
)
PASO_DLL_API void Paso_SystemMatrix_startColCollect ( Paso_SystemMatrix A,
const double *  in 
)
PASO_DLL_API void Paso_SystemMatrix_startCollect ( Paso_SystemMatrix A,
const double *  in 
)
PASO_DLL_API void Paso_SystemMatrix_startRowCollect ( Paso_SystemMatrix A,
const double *  in 
)