ESYS13
Revision_
|
#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.
typedef struct Paso_SystemMatrix Paso_SystemMatrix |
typedef int Paso_SystemMatrixType |
PASO_DLL_API void Paso_RHS_loadMM_toCSR | ( | char * | fileName_p, |
double * | b, | ||
dim_t | size | ||
) |
References Esys_noError(), Esys_resetError(), Esys_setError(), IO_ERROR, M, mm_is_array, mm_is_general, mm_is_real, mm_read_banner(), mm_read_mtx_array_size(), N, nz, and TYPE_ERROR.
PASO_DLL_API void Paso_solve | ( | Paso_SystemMatrix * | A, |
double * | out, | ||
double * | in, | ||
Paso_Options * | options | ||
) |
References Paso_Options::accept_failed_convergence, Paso_SystemMatrix::col_block_size, Paso_Options::converged, DIVERGED, Esys_getErrorType(), Esys_MPIInfo_noError(), Esys_noError(), Esys_resetError(), Esys_setError(), Esys_timer(), FALSE, Paso_SystemMatrix::mainBlock, Paso_Options::method, Paso_SystemMatrix::mpi_info, Paso_Options::num_iter, Paso_Options::package, PASO_MKL, Paso_MKL(), Paso_Options_getPackage(), PASO_PASO, Paso_Solver(), Paso_SystemMatrix_getGlobalNumCols(), Paso_SystemMatrix_getGlobalNumRows(), PASO_UMFPACK, Paso_UMFPACK(), PERFORMANCE_ALL, Performance_close(), Performance_open(), Performance_startMonitor(), Performance_stopMonitor(), Paso_Options::refinements, Paso_Options::reordering, Paso_Options::residual_norm, Paso_SystemMatrix::row_block_size, Paso_Options::set_up_time, Esys_MPIInfo::size, Paso_SystemMatrix::solver_package, Paso_Options::symmetric, Paso_Options::time, TRUE, VALUE_ERROR, and Paso_Options::verbose.
PASO_DLL_API void Paso_solve_free | ( | Paso_SystemMatrix * | in | ) |
References Paso_SystemMatrix::mainBlock, PASO_MKL, Paso_MKL_free(), PASO_PASO, Paso_Preconditioner_Smoother_free(), PASO_SMOOTHER, Paso_Solver_free(), PASO_UMFPACK, Paso_UMFPACK_free(), Paso_SystemMatrix::solver_p, and Paso_SystemMatrix::solver_package.
Referenced by Paso_FCT_Solver_initialize(), Paso_SystemMatrix_free(), and Paso_TransportProblem_reset().
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 Paso_SystemMatrix* Paso_SystemMatrix_alloc | ( | Paso_SystemMatrixType | , |
Paso_SystemMatrixPattern * | , | ||
dim_t | , | ||
dim_t | , | ||
const bool_t | patternIsUnrolled | ||
) |
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 | ||
) |
References Paso_SystemMatrix::balance_vector, Paso_SystemMatrix::is_balanced, Paso_SystemMatrix_getTotalNumCols(), and Paso_SystemMatrix_getTotalNumRows().
Referenced by Paso_Solver().
PASO_DLL_API void Paso_SystemMatrix_applyBalanceInPlace | ( | const Paso_SystemMatrix * | A, |
double * | x, | ||
const bool_t | RHS | ||
) |
References Paso_SystemMatrix::balance_vector, Paso_SystemMatrix::is_balanced, Paso_SystemMatrix_getTotalNumCols(), and Paso_SystemMatrix_getTotalNumRows().
Referenced by Paso_Solver().
PASO_DLL_API void Paso_SystemMatrix_balance | ( | Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::balance_vector, Paso_SystemMatrix::col_block_size, Paso_SystemMatrix::col_coupleBlock, Esys_checkPtr(), Esys_noError(), Esys_setError(), Paso_SystemMatrix::is_balanced, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, Paso_SparseMatrix_applyDiagonal_CSR_OFFSET0(), Paso_SparseMatrix_maxAbsRow_CSR_OFFSET0(), Paso_SystemMatrix_finishCollect(), Paso_SystemMatrix_getGlobalNumCols(), Paso_SystemMatrix_getGlobalNumRows(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_startCollect(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, SYSTEM_ERROR, TRUE, Paso_SystemMatrix::type, and TYPE_ERROR.
Referenced by Paso_Solver().
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 | ||
) |
References Paso_SystemMatrix::mainBlock, and Paso_SparseMatrix_copyBlockToMainDiagonal().
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_setError(), Paso_Coupler::in_use, Paso_Pattern::index, Paso_SparseMatrix::len, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, Paso_Coupler::mpi_requests, Paso_Coupler::mpi_stati, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SharedComponents::numNeighbors, Paso_SharedComponents::offsetInShared, Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, Paso_SparseMatrix::val, and VALUE_ERROR.
Referenced by Paso_Preconditioner_AMG_alloc().
PASO_DLL_API void Paso_SystemMatrix_copyFromMainDiagonal | ( | Paso_SystemMatrix * | A_p, |
double * | out | ||
) |
References Paso_SystemMatrix::mainBlock, and Paso_SparseMatrix_copyFromMainDiagonal().
Referenced by Paso_TransportProblem_getSafeTimeStepSize().
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_copyRemoteCoupleBlock | ( | Paso_SystemMatrix * | A, |
const bool_t | recreatePattern | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_checkPtr(), FALSE, Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, MEMALLOC, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, MPI_INT, Paso_Coupler::mpi_requests, Paso_Coupler::mpi_stati, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SparseMatrix::numRows, Paso_SharedComponents::offsetInShared, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_SparseMatrix_alloc(), Paso_SparseMatrix_free(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_Coupler::recv_buffer, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, Paso_Pattern::type, Paso_SparseMatrix::type, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_alloc().
PASO_DLL_API void Paso_SystemMatrix_copyToMainDiagonal | ( | Paso_SystemMatrix * | A_p, |
const double * | in | ||
) |
References Paso_SystemMatrix::mainBlock, and Paso_SparseMatrix_copyToMainDiagonal().
void Paso_SystemMatrix_extendedRowsForST | ( | Paso_SystemMatrix * | A, |
dim_t * | degree_ST, | ||
index_t * | offset_ST, | ||
index_t * | ST | ||
) |
References Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Coupler::connector, Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, MPI_INT, Paso_Coupler::mpi_requests, Paso_Coupler::mpi_stati, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SparseMatrix::numRows, Paso_SharedComponents::offsetInShared, Paso_comparIndex(), Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Esys_MPIInfo::rank, Paso_Connector::recv, Paso_Coupler::recv_buffer, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, and TMPMEMFREE.
PASO_DLL_API void Paso_SystemMatrix_fillWithGlobalCoordinates | ( | Paso_SystemMatrix * | A, |
const double | f1 | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Paso_Coupler::connector, Paso_Distribution::first_component, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrix::mpi_info, Paso_Pattern::numOutput, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_SystemMatrix_getNumCols(), Paso_SystemMatrix_getNumRows(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Coupler::recv_buffer, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_distribution, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
PASO_DLL_API double* Paso_SystemMatrix_finishColCollect | ( | Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::col_coupler, Paso_Coupler_finishCollect(), and Paso_Coupler::recv_buffer.
Referenced by Paso_SystemMatrix_finishCollect(), and Paso_SystemMatrix_nullifyRowsAndCols().
PASO_DLL_API double* Paso_SystemMatrix_finishCollect | ( | Paso_SystemMatrix * | A | ) |
PASO_DLL_API double* Paso_SystemMatrix_finishRowCollect | ( | Paso_SystemMatrix * | A | ) |
References Paso_Coupler_finishCollect(), Paso_Coupler::recv_buffer, and Paso_SystemMatrix::row_coupler.
Referenced by Paso_SystemMatrix_nullifyRows(), and Paso_SystemMatrix_nullifyRowsAndCols().
PASO_DLL_API void Paso_SystemMatrix_free | ( | Paso_SystemMatrix * | ) |
References Paso_SystemMatrix::balance_vector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo_free(), Paso_SystemMatrix::global_id, Paso_SystemMatrix::mainBlock, MEMFREE, Paso_SystemMatrix::mpi_info, Paso_Coupler_free(), Paso_Distribution_free(), Paso_solve_free(), Paso_SparseMatrix_free(), Paso_SystemMatrixPattern_free(), Paso_TRILINOS_free(), Paso_SystemMatrix::pattern, Paso_SystemMatrix::reference_counter, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Paso_SystemMatrix::row_distribution, and Paso_SystemMatrix::trilinos_data.
Referenced by Paso_FCT_FluxLimiter_free(), Paso_Function_LinearSystem_free(), Paso_Preconditioner_AMG_buildInterpolationOperator(), Paso_Preconditioner_AMG_buildInterpolationOperatorBlock(), Paso_Preconditioner_AMG_free(), Paso_Preconditioner_AMG_getProlongation(), Paso_Preconditioner_AMG_getRestriction(), Paso_SystemMatrix_alloc(), and Paso_TransportProblem_free().
References Paso_Preconditioner_free(), and Paso_SystemMatrix::solver_p.
Referenced by Paso_Solver_free().
References Paso_SystemMatrix::col_coupler, and Paso_Coupler_getNumOverlapComponents.
References Paso_SystemMatrixPattern::input_distribution, MATRIX_FORMAT_CSC, Paso_SystemMatrixPattern::output_distribution, Paso_Distribution_getGlobalNumComponents(), Paso_SystemMatrix::pattern, and Paso_SystemMatrix::type.
Referenced by Paso_solve(), Paso_Solver(), Paso_SystemMatrix_balance(), and Paso_SystemMatrix_getGlobalTotalNumCols().
References Paso_SystemMatrixPattern::input_distribution, MATRIX_FORMAT_CSC, Paso_SystemMatrixPattern::output_distribution, Paso_Distribution_getGlobalNumComponents(), Paso_SystemMatrix::pattern, and Paso_SystemMatrix::type.
Referenced by Paso_MergedSolver_alloc(), Paso_MergedSolver_mergeSystemMatrix(), Paso_Preconditioner_AMG_alloc(), Paso_solve(), Paso_Solver(), Paso_SystemMatrix_balance(), and Paso_SystemMatrix_getGlobalTotalNumRows().
PASO_DLL_API double Paso_SystemMatrix_getGlobalSize | ( | const Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::col_block_size, and Paso_SystemMatrix_getGlobalNumCols().
Referenced by Paso_SystemMatrix_getSparsity().
References Paso_SystemMatrix_getGlobalNumRows(), and Paso_SystemMatrix::row_block_size.
Referenced by Paso_SystemMatrix_getSparsity().
PASO_DLL_API dim_t Paso_SystemMatrix_getNumCols | ( | const Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::mainBlock, and Paso_SparseMatrix::numCols.
Referenced by Paso_SystemMatrix_fillWithGlobalCoordinates(), and Paso_SystemMatrix_getTotalNumCols().
References Paso_SystemMatrixPattern_getNumOutput(), and Paso_SystemMatrix::pattern.
PASO_DLL_API dim_t Paso_SystemMatrix_getNumRows | ( | const Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::mainBlock, and Paso_SparseMatrix::numRows.
Referenced by Paso_SystemMatrix_fillWithGlobalCoordinates(), Paso_SystemMatrix_getTotalNumRows(), and Paso_SystemMatrix_print().
References Paso_SystemMatrix::reference_counter.
Referenced by Paso_Function_LinearSystem_alloc().
References Paso_Coupler_getNumOverlapComponents, and Paso_SystemMatrix::row_coupler.
PASO_DLL_API double Paso_SystemMatrix_getSparsity | ( | const Paso_SystemMatrix * | A | ) |
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 | ||
) |
References Paso_SystemMatrix::col_block_size, and Paso_SystemMatrix_getNumCols().
Referenced by Paso_Solver(), Paso_SystemMatrix_applyBalance(), and Paso_SystemMatrix_applyBalanceInPlace().
References Paso_SystemMatrix_getNumRows(), and Paso_SystemMatrix::row_block_size.
Referenced by Paso_FCT_FluxLimiter_alloc(), Paso_FCT_setAntiDiffusionFlux_BE(), Paso_FCT_setAntiDiffusionFlux_CN(), Paso_FCT_setAntiDiffusionFlux_linearCN(), Paso_FCT_setLowOrderOperator(), Paso_FCT_Solver_getSafeTimeStepSize(), Paso_FCT_Solver_initialize(), Paso_FCT_Solver_setMuPaLu(), Paso_FCT_Solver_updateNL(), Paso_Function_LinearSystem_alloc(), Paso_Preconditioner_AMG_getNumCoarseUnknwons(), Paso_ReactiveSolver_getSafeTimeStepSize(), Paso_ReactiveSolver_solve(), Paso_Solver(), Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_PCG(), Paso_Solver_TFQMR(), Paso_SystemMatrix_applyBalance(), Paso_SystemMatrix_applyBalanceInPlace(), Paso_SystemMatrix_balance(), Paso_TransportProblem_alloc(), Paso_TransportProblem_getSafeTimeStepSize(), Paso_TransportProblem_insertConstraint(), Paso_TransportProblem_reset(), Paso_TransportProblem_setUpConstraint(), and Paso_TransportProblem_solve().
References Esys_MPIInfo_alloc(), Esys_MPIInfo_free(), Esys_resetError(), Esys_setError(), IO_ERROR, M, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_DEFAULT, MEMALLOC, MEMFREE, mm_is_general, mm_is_real, mm_is_sparse, mm_read_banner(), mm_read_mtx_crd_size(), MPI_COMM_WORLD, N, nz, Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SystemMatrix_alloc(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), q_sort(), Esys_MPIInfo::size, TRUE, TYPE_ERROR, and Paso_SparseMatrix::val.
References Esys_MPIInfo_alloc(), Esys_MPIInfo_free(), Esys_resetError(), Esys_setError(), IO_ERROR, M, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DEFAULT, MEMALLOC, MEMFREE, MEMORY_ERROR, mm_is_general, mm_is_real, mm_is_sparse, mm_read_banner(), mm_read_mtx_crd_size(), MPI_COMM_WORLD, N, nz, Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SystemMatrix_alloc(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), q_sort(), Esys_MPIInfo::size, TRUE, TYPE_ERROR, and Paso_SparseMatrix::val.
PASO_DLL_API void Paso_SystemMatrix_makeZeroRowSums | ( | Paso_SystemMatrix * | A_p, |
double * | left_over | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::mainBlock, Paso_SystemMatrix_borrowMainDiagonalPointer(), Paso_SystemMatrix_rowSum(), Paso_SystemMatrixPattern_getNumOutput(), Paso_SystemMatrix::pattern, Paso_SystemMatrix::row_block_size, and Paso_SparseMatrix::val.
Referenced by Paso_TransportProblem_getSafeTimeStepSize().
PASO_DLL_API void Paso_SystemMatrix_MatrixVector | ( | const double | alpha, |
Paso_SystemMatrix * | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
References Esys_noError(), Esys_setError(), Paso_SystemMatrix::is_balanced, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MATRIX_FORMAT_TRILINOS_CRS, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix_MatrixVector_CSC_OFFSET0(), Paso_SparseMatrix_MatrixVector_CSC_OFFSET1(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET1(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Esys_MPIInfo::size, SYSTEM_ERROR, Paso_SystemMatrix::type, and VALUE_ERROR.
Referenced by Paso_Preconditioner_Smoother_solve_byTolerance().
PASO_DLL_API void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0 | ( | double | alpha, |
Paso_SystemMatrix * | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
References Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DIAGONAL_BLOCK, Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG(), Paso_SystemMatrix_finishCollect(), Paso_SystemMatrix_startCollect(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, and Paso_SystemMatrix::type.
Referenced by Paso_Function_LinearSystem_call(), Paso_Preconditioner_AMG_solve(), Paso_Preconditioner_Smoother_solve(), Paso_Solver(), Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_PCG(), Paso_Solver_TFQMR(), and Paso_SystemMatrix_MatrixVector().
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple | ( | Paso_SystemMatrix * | A, |
index_t ** | p_ptr, | ||
index_t ** | p_idx, | ||
double ** | p_val | ||
) |
References Esys_setError(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_OFFSET1, MATRIX_FORMAT_TRILINOS_CRS, Paso_SystemMatrix_mergeMainAndCouple_CSC_OFFSET1(), Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0(), SYSTEM_ERROR, and Paso_SystemMatrix::type.
Referenced by Paso_MergedSolver_mergeSystemMatrix(), and Paso_Preconditioner_BoomerAMG_alloc().
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSC_OFFSET1 | ( | Paso_SystemMatrix * | A, |
index_t ** | p_ptr, | ||
index_t ** | p_idx, | ||
double ** | p_val | ||
) |
Referenced by Paso_SystemMatrix_mergeMainAndCouple().
PASO_DLL_API void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0 | ( | Paso_SystemMatrix * | A, |
index_t ** | p_ptr, | ||
index_t ** | p_idx, | ||
double ** | p_val | ||
) |
References Paso_SparseMatrix::col_block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Paso_Coupler::connector, Esys_setError(), Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0_Block(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Coupler::recv_buffer, Paso_SparseMatrix::row_block_size, Paso_SystemMatrix::row_distribution, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, TYPE_ERROR, and Paso_SparseMatrix::val.
Referenced by Paso_SystemMatrix_mergeMainAndCouple().
void Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0_Block | ( | Paso_SystemMatrix * | A, |
index_t ** | p_ptr, | ||
index_t ** | p_idx, | ||
double ** | p_val | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Paso_Coupler::connector, Esys_setError(), Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Coupler::recv_buffer, Paso_SystemMatrix::row_distribution, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, TYPE_ERROR, and Paso_SparseMatrix::val.
Referenced by Paso_SystemMatrix_mergeMainAndCouple_CSR_OFFSET0().
PASO_DLL_API void Paso_SystemMatrix_nullifyRows | ( | Paso_SystemMatrix * | A, |
double * | mask_row, | ||
double | main_diagonal_value | ||
) |
References Paso_SystemMatrix::col_coupleBlock, Esys_noError(), Esys_setError(), Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_TRILINOS_CRS, Paso_SparseMatrix_nullifyRows_CSR(), Paso_SparseMatrix_nullifyRows_CSR_BLK1(), Paso_SystemMatrix_finishRowCollect(), Paso_SystemMatrix_startRowCollect(), Paso_SystemMatrix::row_coupleBlock, SYSTEM_ERROR, and Paso_SystemMatrix::type.
PASO_DLL_API void Paso_SystemMatrix_nullifyRowsAndCols | ( | Paso_SystemMatrix * | A, |
double * | mask_row, | ||
double * | mask_col, | ||
double | main_diagonal_value | ||
) |
References Paso_SystemMatrix::col_coupleBlock, Esys_noError(), Esys_setError(), Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_TRILINOS_CRS, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix_nullifyRowsAndCols_CSC(), Paso_SparseMatrix_nullifyRowsAndCols_CSC_BLK1(), Paso_SparseMatrix_nullifyRowsAndCols_CSR(), Paso_SparseMatrix_nullifyRowsAndCols_CSR_BLK1(), Paso_SystemMatrix_finishColCollect(), Paso_SystemMatrix_finishRowCollect(), Paso_SystemMatrix_startColCollect(), Paso_SystemMatrix_startRowCollect(), Paso_SystemMatrix::row_coupleBlock, Esys_MPIInfo::size, SYSTEM_ERROR, and Paso_SystemMatrix::type.
PASO_DLL_API void Paso_SystemMatrix_print | ( | Paso_SystemMatrix * | A | ) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrix::mpi_info, Paso_Pattern::numOutput, Paso_SystemMatrix_getNumRows(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_coupleBlock, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
PASO_DLL_API void Paso_SystemMatrix_rowSum | ( | Paso_SystemMatrix * | A, |
double * | row_sum | ||
) |
References Paso_SystemMatrix::col_coupleBlock, Esys_setError(), Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, Paso_SparseMatrix::numRows, Paso_SparseMatrix_addRow_CSR_OFFSET0(), Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::type, and TYPE_ERROR.
Referenced by Paso_SystemMatrix_makeZeroRowSums(), and Paso_TransportProblem_getSafeTimeStepSize().
PASO_DLL_API void Paso_SystemMatrix_saveHB | ( | Paso_SystemMatrix * | , |
char * | |||
) |
PASO_DLL_API void Paso_SystemMatrix_saveMM | ( | Paso_SystemMatrix * | , |
char * | |||
) |
PASO_DLL_API void Paso_SystemMatrix_setPreconditioner | ( | Paso_SystemMatrix * | A, |
Paso_Options * | options | ||
) |
References Paso_Preconditioner_alloc(), and Paso_SystemMatrix::solver_p.
Referenced by Paso_FCT_Solver_initialize(), Paso_Function_LinearSystem_alloc(), and Paso_Solver().
PASO_DLL_API void Paso_SystemMatrix_setValues | ( | Paso_SystemMatrix * | , |
double | |||
) |
PASO_DLL_API void Paso_SystemMatrix_solvePreconditioner | ( | Paso_SystemMatrix * | A, |
double * | x, | ||
double * | b | ||
) |
References Paso_Preconditioner_solve(), and Paso_SystemMatrix::solver_p.
Referenced by Paso_Function_LinearSystem_call(), Paso_Solver(), Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_PCG(), and Paso_Solver_TFQMR().
PASO_DLL_API void Paso_SystemMatrix_startColCollect | ( | Paso_SystemMatrix * | A, |
const double * | in | ||
) |
References Paso_SystemMatrix::col_coupler, and Paso_Coupler_startCollect().
Referenced by Paso_SystemMatrix_nullifyRowsAndCols(), and Paso_SystemMatrix_startCollect().
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 | ||
) |
References Paso_Coupler_startCollect(), and Paso_SystemMatrix::row_coupler.
Referenced by Paso_SystemMatrix_nullifyRows(), and Paso_SystemMatrix_nullifyRowsAndCols().