paso Namespace Reference

## Namespaces

| util

## Classes

struct | Coupler
struct | Connector
struct | FCT_Solver
struct | FCT_FluxLimiter
struct | Function
struct | LinearSystem
struct | MUMPS_Handler_t
struct | MUMPS_Handler
struct | MUMPS_Handler< double >
struct | MUMPS_Handler< cplx_t >
struct | Options
class | PasoException
| PasoException exception class. More...
struct | Pattern
struct | DegreeAndIdx
struct | Performance
struct | Preconditioner
struct | Preconditioner_LocalSmoother
struct | Preconditioner_Smoother
struct | Solver_ILU
| ILU preconditioner. More...
struct | Solver_RILU
| RILU preconditioner. More...
struct | ReactiveSolver
struct | SharedComponents
struct | SparseMatrix
class | SystemMatrix
| this class holds a (distributed) stiffness matrix More...
struct | SystemMatrixPattern
class | TransportProblem
struct | UMFPACK_Handler

## Typedefs

typedef boost::shared_ptr< Connector > | Connector_ptr
typedef boost::shared_ptr< const Connector > | const_Connector_ptr
template<typename T >
using | Coupler_ptr = boost::shared_ptr< Coupler< T > >
template<typename T >
using | const_Coupler_ptr = boost::shared_ptr< const Coupler< T > >
typedef boost::shared_ptr< Pattern > | Pattern_ptr
typedef boost::shared_ptr< const Pattern > | const_Pattern_ptr
typedef boost::shared_ptr< Preconditioner > | Preconditioner_ptr
typedef boost::shared_ptr< const Preconditioner > | const_Preconditioner_ptr
typedef boost::shared_ptr< SharedComponents > | SharedComponents_ptr
typedef boost::shared_ptr< const SharedComponents > | const_SharedComponents_ptr
template<typename T >
using | SparseMatrix_ptr = boost::shared_ptr< SparseMatrix< T > >
template<typename T >
using | const_SparseMatrix_ptr = boost::shared_ptr< const SparseMatrix< T > >
typedef int | SparseMatrixType
template<typename T >
using | SystemMatrix_ptr = boost::shared_ptr< SystemMatrix< T > >
template<typename T >
using | const_SystemMatrix_ptr = boost::shared_ptr< const SystemMatrix< T > >
typedef int | SystemMatrixType
typedef boost::shared_ptr< SystemMatrixPattern > | SystemMatrixPattern_ptr
typedef boost::shared_ptr< const SystemMatrixPattern > | const_SystemMatrixPattern_ptr
typedef boost::shared_ptr< TransportProblem > | TransportProblem_ptr
typedef boost::shared_ptr< const TransportProblem > | const_TransportProblem_ptr

## Enumerations

enum | SolverResult { NoError = 0 , MaxIterReached , InputError , MemoryError , Breakdown , NegativeNormError , Divergence }

## Functions

SolverResult | Solver_BiCGStab (SystemMatrix_ptr< double > A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
void | BlockOps_Cpy_N (dim_t N, double *R, const double *V)
void | BlockOps_SMV_2 (double *R, const double *mat, const double *V)
| performs operation R=R-mat*V (V and R are not overlapping) - 2x2 More...
void | BlockOps_SMV_3 (double *R, const double *mat, const double *V)
| performs operation R=R-mat*V (V and R are not overlapping) - 3x3 More...
void | BlockOps_SMV_N (dim_t N, double *R, const double *mat, const double *V)
| performs operation R=R-mat*V (V and R are not overlapping) - NxN More...
void | BlockOps_MV_N (dim_t N, double *R, const double *mat, const double *V)
void | BlockOps_invM_2 (double *invA, const double *A, int *failed)
void | BlockOps_invM_3 (double *invA, const double *A, int *failed)
void | BlockOps_invM_N (dim_t N, double *mat, index_t *pivot, int *failed)
| LU factorization of NxN matrix mat with partial pivoting. More...
void | BlockOps_solve_N (dim_t N, double *X, double *mat, index_t *pivot, int *failed)
| solves system of linear equations A*X=B More...
void | BlockOps_MViP_2 (const double *mat, double *V)
| inplace matrix vector product - order 2 More...
void | BlockOps_MViP_3 (const double *mat, double *V)
| inplace matrix vector product - order 3 More...
void | BlockOps_solveAll (dim_t n_block, dim_t n, double *D, index_t *pivot, double *x)
SolverResult | Solver_GMRES (SystemMatrix_ptr< double > A, double *r, double *x, dim_t *iter, double *tolerance, dim_t Length_of_recursion, dim_t restart, Performance *pp)
SolverResult | Solver_GMRES2 (Function *F, const double *f0, const double *x0, double *dx, dim_t *iter, double *tolerance, Performance *pp)
void | Solver_ILU_free (Solver_ILU *in)
Solver_ILU * | Solver_getILU (SparseMatrix_ptr< double > A, bool verbose)
| constructs the incomplete block factorization More...
void | Solver_solveILU (SparseMatrix_ptr< double > A, Solver_ILU *ilu, double *x, const double *b)
SolverResult | Solver_MINRES (SystemMatrix_ptr< double > A, double *R, double *X, dim_t *iter, double *tolerance, Performance *pp)
void | MKL_free (SparseMatrix< double > *A)
void | MKL_solve (SparseMatrix_ptr< double > A, double *out, double *in, index_t reordering, dim_t numRefinements, bool verbose)
void | MKL_free (SparseMatrix< cplx_t > *A)
void | MKL_solve (SparseMatrix_ptr< cplx_t > A, cplx_t *out, cplx_t *in, index_t reordering, dim_t numRefinements, bool verbose)
std::ostream & | operator<< (std::ostream &os, const cplx_t &c)
template<typename T >
void | MUMPS_free (SparseMatrix< T > *A)
| frees any MUMPS related data from the matrix More...
template<typename T >
void | MUMPS_solve (SparseMatrix_ptr< T > A, T *out, T *in, dim_t numRefinements, bool verbose)
| calls the solver More...
template<typename T >
void | MUMPS_print_list (const char *name, const T *vals, const int n, const int max_n=100)
SolverResult | Solver_NewtonGMRES (Function *F, double *x, Options *options, Performance *pp)
void | checkPasoError ()
int | comparDegreeAndIdx (const void *arg1, const void *arg2)
bool | dropTree (index_t root, const Pattern *pattern, index_t *AssignedLevel, index_t *VerticesInTree, dim_t *numLevels, index_t *firstVertexInLevel, dim_t max_LevelWidth_abort, dim_t N)
SolverResult | Solver_PCG (SystemMatrix_ptr< double > A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
void | Performance_open (Performance *pp, int verbose)
| sets up the monitoring process More...
int | Performance_getEventIndex (Performance *pp, int event_id)
| find the index of an event in the list of monitored events More...
void | Performance_close (Performance *pp, int verbose)
| shuts down the monitoring process More...
void | Performance_startMonitor (Performance *pp, int monitor)
| switches on a monitor More...
void | Performance_stopMonitor (Performance *pp, int monitor)
| switches off a monitor More...
void | Preconditioner_free (Preconditioner *in)
Preconditioner * | Preconditioner_alloc (SystemMatrix_ptr< double > A, Options *options)
void | Preconditioner_solve (Preconditioner *prec, SystemMatrix_ptr< double > A, double *x, double *b)
void | Preconditioner_Smoother_free (Preconditioner_Smoother *in)
void | Preconditioner_LocalSmoother_free (Preconditioner_LocalSmoother *in)
Preconditioner_Smoother * | Preconditioner_Smoother_alloc (SystemMatrix_ptr< double > A, bool jacobi, bool is_local, bool verbose)
| constructs the symmetric Gauss-Seidel preconditioner More...
Preconditioner_LocalSmoother * | Preconditioner_LocalSmoother_alloc (SparseMatrix_ptr< double > A, bool jacobi, bool verbose)
void | Preconditioner_Smoother_solve (SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
void | Preconditioner_LocalSmoother_solve (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
SolverResult | Preconditioner_Smoother_solve_byTolerance (SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial)
void | Preconditioner_LocalSmoother_Sweep (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x)
void | Preconditioner_LocalSmoother_Sweep_sequential (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *smoother, double *x)
| inplace Gauss-Seidel sweep in sequential mode More...
void | Preconditioner_LocalSmoother_Sweep_tiled (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x)
void | Preconditioner_LocalSmoother_Sweep_colored (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x)
void | Solver_RILU_free (Solver_RILU *in)
Solver_RILU * | Solver_getRILU (SparseMatrix_ptr< double > A, bool verbose)
void | Solver_solveRILU (Solver_RILU *rilu, double *x, double *b)
void | Solver_updateIncompleteSchurComplement (SparseMatrix_ptr< double > A_CC, SparseMatrix_ptr< double > A_CF, double *invA_FF, index_t *A_FF_pivot, SparseMatrix_ptr< double > A_FC)
void | Solver_free (SystemMatrix< double > *A)
SolverResult | Solver (SystemMatrix_ptr< double > A, double *x, double *b, Options *options, Performance *pp)
| calls the iterative solver More...
SolverResult | Solver (SystemMatrix_ptr< cplx_t > A, cplx_t *x, cplx_t *b, Options *options, Performance *pp)
void | Solver_free (SystemMatrix< cplx_t > *A)
template<typename T >
void | solve_free (SystemMatrix< T > *A)
SolverResult | Solver_TFQMR (SystemMatrix_ptr< double > A, double *B, double *X, dim_t *iter, double *tolerance, Performance *pp)
void | swap (index_t *r, index_t *c, double *v, int left, int right)
void | q_sort (index_t *row, index_t *col, double *val, int begin, int end, int N)
void | SparseMatrix_MatrixVector_CSC_OFFSET0 (const double alpha, const_SparseMatrix_ptr< double > A, const double *in, const double beta, double *out)
void | SparseMatrix_MatrixVector_CSC_OFFSET1 (const double alpha, const_SparseMatrix_ptr< double > A, const double *in, const double beta, double *out)
void | SparseMatrix_MatrixVector_CSR_OFFSET0 (const double alpha, const_SparseMatrix_ptr< double > A, const double *in, const double beta, double *out)
template<typename T >
void | SparseMatrix_MatrixVector_CSR_OFFSET1 (const double alpha, const_SparseMatrix_ptr< T > A, const T *in, const double beta, T *out)
void | SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG (const double alpha, const_SparseMatrix_ptr< double > A, const double *in, const double beta, double *out)
SparseMatrix_ptr< double > | SparseMatrix_MatrixMatrix (const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B)
SparseMatrix_ptr< double > | SparseMatrix_MatrixMatrixTranspose (const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B, const_SparseMatrix_ptr< double > T)
void | SparseMatrix_MatrixMatrix_DD (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B)
void | SparseMatrix_MatrixMatrix_DB (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B)
void | SparseMatrix_MatrixMatrix_BD (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B)
void | SparseMatrix_MatrixMatrix_BB (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B)
void | SparseMatrix_MatrixMatrixTranspose_DD (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B, const_SparseMatrix_ptr< double > T)
void | SparseMatrix_MatrixMatrixTranspose_DB (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B, const_SparseMatrix_ptr< double > T)
void | SparseMatrix_MatrixMatrixTranspose_BD (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B, const_SparseMatrix_ptr< double > T)
void | SparseMatrix_MatrixMatrixTranspose_BB (SparseMatrix_ptr< double > C, const_SparseMatrix_ptr< double > A, const_SparseMatrix_ptr< double > B, const_SparseMatrix_ptr< double > T)
void | SparseMatrix_MatrixVector_CSR_OFFSET0_stripe (double alpha, dim_t nRows, dim_t row_block_size, dim_t col_block_size, const index_t *ptr, const index_t *index, const double *val, const double *in, double beta, double *out)
static int | calc_digits (int)
static void | fmt_str (int, int, int *, int *, int *, char *, char *)
static void | print_data (std::ofstream &, int, int, int, char *, const void *, int, int)
static void | generate_HB (std::ofstream &, dim_t *, dim_t *, const double *)
void | RHS_loadMM_toCSR (const char *filename, double *b, dim_t size)
static void | q_sort (index_t *, index_t *, double *, int, int)
void | UMFPACK_free (SparseMatrix< double > *A)
| frees any UMFPACK related data from the matrix More...
void | UMFPACK_solve (SparseMatrix_ptr< double > A, double *out, double *in, dim_t numRefinements, bool verbose)
| calls the solver More...
void | UMFPACK_free (SparseMatrix< cplx_t > *A)
| frees any UMFPACK related data from the matrix More...
void | UMFPACK_solve (SparseMatrix_ptr< cplx_t > A, cplx_t *out, cplx_t *in, dim_t numRefinements, bool verbose)
| calls the solver More...

## Variables

static const real_t | LARGE_POSITIVE_FLOAT = escript::DataTypes::real_t_max()
static double | Pattern_mis_seed =.4142135623730951
static const real_t | EPSILON = escript::DataTypes::real_t_eps()
static const real_t | PASO_RT_EXP_LIM_MIN = sqrt(EPSILON)
static const real_t | PASO_RT_EXP_LIM_MAX = log(1./sqrt(EPSILON))
static dim_t | M
static dim_t | N
static dim_t | nz
static int | M
static int | N
static int | nz
static const real_t | LARGE_POSITIVE_FLOAT = escript::DataTypes::real_t_max()

## Typedef Documentation

## Connector_ptr

typedef boost::shared_ptr<Connector> paso::Connector_ptr

## const_Connector_ptr

typedef boost::shared_ptr<const Connector> paso::const_Connector_ptr

## const_Coupler_ptr

template<typename T >

using paso::const_Coupler_ptr = typedef boost::shared_ptr<const Coupler<T> >

## const_Pattern_ptr

typedef boost::shared_ptr<const Pattern> paso::const_Pattern_ptr

## const_Preconditioner_ptr

typedef boost::shared_ptr<const Preconditioner> paso::const_Preconditioner_ptr

## const_SharedComponents_ptr

typedef boost::shared_ptr<const SharedComponents> paso::const_SharedComponents_ptr

## const_SparseMatrix_ptr

template<typename T >

using paso::const_SparseMatrix_ptr = typedef boost::shared_ptr<const SparseMatrix<T> >

## const_SystemMatrix_ptr

template<typename T >

using paso::const_SystemMatrix_ptr = typedef boost::shared_ptr<const SystemMatrix<T> >

## const_SystemMatrixPattern_ptr

typedef boost::shared_ptr<const SystemMatrixPattern> paso::const_SystemMatrixPattern_ptr

## const_TransportProblem_ptr

typedef boost::shared_ptr<const TransportProblem> paso::const_TransportProblem_ptr

## Coupler_ptr

template<typename T >

using paso::Coupler_ptr = typedef boost::shared_ptr<Coupler<T> >

## Pattern_ptr

typedef boost::shared_ptr<Pattern> paso::Pattern_ptr

## Preconditioner_ptr

typedef boost::shared_ptr<Preconditioner> paso::Preconditioner_ptr

## SharedComponents_ptr

typedef boost::shared_ptr<SharedComponents> paso::SharedComponents_ptr

## SparseMatrix_ptr

template<typename T >

using paso::SparseMatrix_ptr = typedef boost::shared_ptr<SparseMatrix<T> >

## SparseMatrixType

typedef int paso::SparseMatrixType

## SystemMatrix_ptr

template<typename T >

using paso::SystemMatrix_ptr = typedef boost::shared_ptr<SystemMatrix<T> >

## SystemMatrixPattern_ptr

typedef boost::shared_ptr<SystemMatrixPattern> paso::SystemMatrixPattern_ptr

## SystemMatrixType

typedef int paso::SystemMatrixType

## TransportProblem_ptr

typedef boost::shared_ptr<TransportProblem> paso::TransportProblem_ptr

## Enumeration Type Documentation

## SolverResult

enum paso::SolverResult

Enumerator
NoError |
MaxIterReached |
InputError |
MemoryError |
Breakdown |
NegativeNormError |
Divergence |

## Function Documentation

## BlockOps_Cpy_N()

void paso::BlockOps_Cpy_N | ( | dim_t | N,
|  | double * | R,
|  | const double * | V
| ) |  |

inline

References N, and V.

Referenced by paso::SparseMatrix< T >::getSubmatrix(), paso::SparseMatrix< T >::invMain(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_invM_2()

void paso::BlockOps_invM_2 | ( | double * | invA,
|  | const double * | A,
|  | int * | failed
| ) |  |

inline

Referenced by paso::SparseMatrix< T >::invMain().

## BlockOps_invM_3()

void paso::BlockOps_invM_3 | ( | double * | invA,
|  | const double * | A,
|  | int * | failed
| ) |  |

inline

Referenced by paso::SparseMatrix< T >::invMain().

## BlockOps_invM_N()

void paso::BlockOps_invM_N | ( | dim_t | N,
|  | double * | mat,
|  | index_t * | pivot,
|  | int * | failed
| ) |  |

inline

LU factorization of NxN matrix mat with partial pivoting.

References N, and PASO_MISSING_CLAPACK.

Referenced by paso::SparseMatrix< T >::invMain().

## BlockOps_MV_N()

void paso::BlockOps_MV_N | ( | dim_t | N,
|  | double * | R,
|  | const double * | mat,
|  | const double * | V
| ) |  |

inline

References N, PASO_MISSING_CLAPACK, and V.

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_MViP_2()

void paso::BlockOps_MViP_2 | ( | const double * | mat,
|  | double * | V
| ) |  |

inline

inplace matrix vector product - order 2

References V.

Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_MViP_3()

void paso::BlockOps_MViP_3 | ( | const double * | mat,
|  | double * | V
| ) |  |

inline

inplace matrix vector product - order 3

References V.

Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_SMV_2()

void paso::BlockOps_SMV_2 | ( | double * | R,
|  | const double * | mat,
|  | const double * | V
| ) |  |

inline

performs operation R=R-mat*V (V and R are not overlapping) - 2x2

References V.

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_SMV_3()

void paso::BlockOps_SMV_3 | ( | double * | R,
|  | const double * | mat,
|  | const double * | V
| ) |  |

inline

performs operation R=R-mat*V (V and R are not overlapping) - 3x3

References V.

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_SMV_N()

void paso::BlockOps_SMV_N | ( | dim_t | N,
|  | double * | R,
|  | const double * | mat,
|  | const double * | V
| ) |  |

inline

performs operation R=R-mat*V (V and R are not overlapping) - NxN

References N, PASO_MISSING_CLAPACK, and V.

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_solve_N()

void paso::BlockOps_solve_N | ( | dim_t | N,
|  | double * | X,
|  | double * | mat,
|  | index_t * | pivot,
|  | int * | failed
| ) |  |

inline

solves system of linear equations A*X=B

References N, and PASO_MISSING_CLAPACK.

Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

## BlockOps_solveAll()

void paso::BlockOps_solveAll | ( | dim_t | n_block,
|  | dim_t | n,
|  | double * | D,
|  | index_t * | pivot,
|  | double * | x
| ) |  |

inline

References BlockOps_MViP_2(), BlockOps_MViP_3(), and BlockOps_solve_N().

Referenced by paso::SparseMatrix< T >::applyBlockMatrix(), Preconditioner_LocalSmoother_Sweep(), and Solver_solveRILU().

## calc_digits()

int paso::calc_digits | ( | int | var | ) |

static

Referenced by generate_HB().

## checkPasoError()

void paso::checkPasoError | ( |  | ) |

## comparDegreeAndIdx()

int paso::comparDegreeAndIdx | ( | const void * | arg1,
|  | const void * | arg2
| ) |  |

References paso::DegreeAndIdx::deg, and paso::DegreeAndIdx::idx.

Referenced by paso::Pattern::reduceBandwidth().

## dropTree()

bool paso::dropTree | ( | index_t | root,
|  | const Pattern * | pattern,
|  | index_t * | AssignedLevel,
|  | index_t * | VerticesInTree,
|  | dim_t * | numLevels,
|  | index_t * | firstVertexInLevel,
|  | dim_t | max_LevelWidth_abort,
|  | dim_t | N
| ) |  |

References ESYS_ASSERT, paso::Pattern::index, N, paso::Pattern::numInput, and paso::Pattern::ptr.

Referenced by paso::Pattern::reduceBandwidth().

## fmt_str()

void paso::fmt_str | ( | int | nvalues,
|  | int | integer,
|  | int * | width,
|  | int * | nlines,
|  | int * | nperline,
|  | char * | pfmt,
|  | char * | fmt
| ) |  |

static

Referenced by generate_HB().

## generate_HB()

void paso::generate_HB | ( | std::ofstream & | fp,
|  | dim_t * | col_ptr,
|  | dim_t * | row_ind,
|  | const double * | val
| ) |  |

static

References calc_digits(), fmt_str(), M, N, nz, and print_data().

Referenced by paso::SparseMatrix< T >::saveHB_CSC().

## MKL_free() [1/2]

void paso::MKL_free | ( | SparseMatrix< cplx_t > * | A | ) |

## MKL_free() [2/2]

void paso::MKL_free | ( | SparseMatrix< double > * | A | ) |

References ES_MKL_INT, ES_PARDISO, MKL_ERROR_NO, MKL_MTYPE_REAL_UNSYM, MKL_PHASE_RELEASE_MEMORY, paso::SparseMatrix< T >::numRows, PASO_MKL, paso::SparseMatrix< T >::pattern, paso::SparseMatrix< T >::solver_p, paso::SparseMatrix< T >::solver_package, and paso::SparseMatrix< T >::val.

Referenced by MKL_solve(), solve_free(), and paso::SparseMatrix< T >::~SparseMatrix().

## MKL_solve() [1/2]

void paso::MKL_solve | ( | SparseMatrix_ptr< cplx_t > | A,
|  | cplx_t * | out,
|  | cplx_t * | in,
|  | index_t | reordering,
|  | dim_t | numRefinements,
|  | bool | verbose
| ) |  |

## MKL_solve() [2/2]

void paso::MKL_solve | ( | SparseMatrix_ptr< double > | A,
|  | double * | out,
|  | double * | in,
|  | index_t | reordering,
|  | dim_t | numRefinements,
|  | bool | verbose
| ) |  |

References ES_MKL_INT, ES_PARDISO, escript::gettime(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_OFFSET1, MKL_ERROR_NO, MKL_free(), MKL_MTYPE_REAL_UNSYM, MKL_PHASE_FACTORIZATION, MKL_PHASE_SOLVE, MKL_PHASE_SYMBOLIC_FACTORIZATION, MKL_REORDERING_MINIMUM_DEGREE, MKL_REORDERING_NESTED_DISSECTION, MKL_REORDERING_NESTED_DISSECTION_OMP, PASO_MINIMUM_FILL_IN, and PASO_MKL.

Referenced by paso::SystemMatrix< T >::solve().

## MUMPS_free()

template<typename T >

void paso::MUMPS_free | ( | SparseMatrix< T > * | A | ) |

frees any MUMPS related data from the matrix

References paso::MUMPS_Handler< T >::rhs, and paso::SparseMatrix< T >::solver_p.

Referenced by solve_free(), and paso::SparseMatrix< T >::~SparseMatrix().

## MUMPS_print_list()

template<typename T >

void paso::MUMPS_print_list | ( | const char * | name,
|  | const T * | vals,
|  | const int | n,
|  | const int | max_n = `100`
| ) |  |

Referenced by MUMPS_solve().

## MUMPS_solve()

template<typename T >

void paso::MUMPS_solve | ( | SparseMatrix_ptr< T > | A,
|  | T * | out,
|  | T * | in,
|  | dim_t | numRefinements,
|  | bool | verbose
| ) |  |

calls the solver

References escript::gettime(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_OFFSET1, MPI_COMM_WORLD, MUMPS_print_list(), PASO_MUMPS, paso::MUMPS_Handler< T >::rhs, and paso::MUMPS_Handler_t::ssExceptMsg.

Referenced by paso::SystemMatrix< T >::solve().

## operator<<()

std::ostream & paso::operator<< | ( | std::ostream & | os,
|  | const cplx_t & | c
| ) |  |

## Performance_close()

void paso::Performance_close | ( | Performance * | pp,
|  | int | verbose
| ) |  |

shuts down the monitoring process

References PERFORMANCE_ALL, PERFORMANCE_ASSEMBLAGE, PERFORMANCE_CLOSED, Performance_getEventIndex(), PERFORMANCE_MVM, PERFORMANCE_NUM_EVENTS, PERFORMANCE_NUM_MONITORS, PERFORMANCE_PRECONDITIONER, PERFORMANCE_PRECONDITIONER_INIT, PERFORMANCE_SOLVER, PERFORMANCE_UNMONITORED_EVENT, and PERFORMANCE_UNUSED.

Referenced by paso::SystemMatrix< T >::solve().

## Performance_getEventIndex()

int paso::Performance_getEventIndex | ( | Performance * | pp,
|  | int | event_id
| ) |  |

find the index of an event in the list of monitored events

References PERFORMANCE_UNMONITORED_EVENT.

Referenced by Performance_close().

## Performance_open()

void paso::Performance_open | ( | Performance * | pp,
|  | int | verbose
| ) |  |

sets up the monitoring process

References PERFORMANCE_NUM_EVENTS, PERFORMANCE_NUM_MONITORS, and PERFORMANCE_UNUSED.

Referenced by paso::SystemMatrix< T >::solve().

## Performance_startMonitor()

void paso::Performance_startMonitor | ( | Performance * | pp,
|  | int | monitor
| ) |  |

switches on a monitor

References PERFORMANCE_NUM_EVENTS, and PERFORMANCE_OPENED.

Referenced by paso::FCT_Solver::initialize(), paso::SystemMatrix< T >::solve(), Solver(), Solver_PCG(), and Solver_TFQMR().

## Performance_stopMonitor()

void paso::Performance_stopMonitor | ( | Performance * | pp,
|  | int | monitor
| ) |  |

switches off a monitor

References PERFORMANCE_CLOSED, and PERFORMANCE_NUM_EVENTS.

Referenced by paso::FCT_Solver::initialize(), paso::SystemMatrix< T >::solve(), Solver(), Solver_PCG(), and Solver_TFQMR().

## Preconditioner_alloc()

Preconditioner * paso::Preconditioner_alloc | ( | SystemMatrix_ptr< double > | A,
|  | Options * | options
| ) |  |

References paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, PASO_GS, PASO_ILU0, PASO_JACOBI, PASO_NO_PRECONDITIONER, PASO_RILU, paso::Options::preconditioner, Preconditioner_Smoother_alloc(), paso::Preconditioner::rilu, Solver_getILU(), Solver_getRILU(), paso::Options::sweeps, paso::Preconditioner::sweeps, paso::Preconditioner::type, paso::Options::use_local_preconditioner, and paso::Options::verbose.

Referenced by paso::SystemMatrix< T >::setPreconditioner().

## Preconditioner_free()

void paso::Preconditioner_free | ( | Preconditioner * | in | ) |

References paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, Preconditioner_Smoother_free(), paso::Preconditioner::rilu, Solver_ILU_free(), and Solver_RILU_free().

Referenced by paso::SystemMatrix< T >::freePreconditioner().

## Preconditioner_LocalSmoother_alloc()

Preconditioner_LocalSmoother * paso::Preconditioner_LocalSmoother_alloc | ( | SparseMatrix_ptr< double > | A,
|  | bool | jacobi,
|  | bool | verbose
| ) |  |

References paso::Preconditioner_LocalSmoother::buffer, paso::Preconditioner_LocalSmoother::diag, escript::gettime(), paso::Preconditioner_LocalSmoother::Jacobi, and paso::Preconditioner_LocalSmoother::pivot.

Referenced by Preconditioner_Smoother_alloc().

## Preconditioner_LocalSmoother_free()

void paso::Preconditioner_LocalSmoother_free | ( | Preconditioner_LocalSmoother * | in | ) |

References paso::Preconditioner_LocalSmoother::buffer, paso::Preconditioner_LocalSmoother::diag, and paso::Preconditioner_LocalSmoother::pivot.

Referenced by Preconditioner_Smoother_free(), and paso::SparseMatrix< T >::~SparseMatrix().

## Preconditioner_LocalSmoother_solve()

void paso::Preconditioner_LocalSmoother_solve | ( | SparseMatrix_ptr< double > | A,
|  | Preconditioner_LocalSmoother * | gs,
|  | double * | x,
|  | const double * | b,
|  | dim_t | sweeps,
|  | bool | x_is_initial
| ) |  |

References paso::util::AXPY(), paso::Preconditioner_LocalSmoother::buffer, paso::util::copy(), Preconditioner_LocalSmoother_Sweep(), and SparseMatrix_MatrixVector_CSR_OFFSET0().

Referenced by Preconditioner_Smoother_solve().

## Preconditioner_LocalSmoother_Sweep()

void paso::Preconditioner_LocalSmoother_Sweep | ( | SparseMatrix_ptr< double > | A,
|  | Preconditioner_LocalSmoother * | gs,
|  | double * | x
| ) |  |

References BlockOps_solveAll(), paso::Preconditioner_LocalSmoother::diag, paso::Preconditioner_LocalSmoother::Jacobi, paso::Preconditioner_LocalSmoother::pivot, Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

Referenced by Preconditioner_LocalSmoother_solve(), Preconditioner_Smoother_solve(), and Preconditioner_Smoother_solve_byTolerance().

## Preconditioner_LocalSmoother_Sweep_colored()

void paso::Preconditioner_LocalSmoother_Sweep_colored | ( | SparseMatrix_ptr< double > | A,
|  | Preconditioner_LocalSmoother * | gs,
|  | double * | x
| ) |  |

References BlockOps_Cpy_N(), BlockOps_MV_N(), BlockOps_MViP_2(), BlockOps_MViP_3(), BlockOps_SMV_2(), BlockOps_SMV_3(), BlockOps_SMV_N(), BlockOps_solve_N(), paso::Preconditioner_LocalSmoother::diag, and paso::Preconditioner_LocalSmoother::pivot.

Referenced by Preconditioner_LocalSmoother_Sweep().

## Preconditioner_LocalSmoother_Sweep_sequential()

void paso::Preconditioner_LocalSmoother_Sweep_sequential | ( | SparseMatrix_ptr< double > | A,
|  | Preconditioner_LocalSmoother * | gs,
|  | double * | x
| ) |  |

inplace Gauss-Seidel sweep in sequential mode

References BlockOps_Cpy_N(), BlockOps_MV_N(), BlockOps_MViP_2(), BlockOps_MViP_3(), BlockOps_SMV_2(), BlockOps_SMV_3(), BlockOps_SMV_N(), BlockOps_solve_N(), paso::Preconditioner_LocalSmoother::diag, and paso::Preconditioner_LocalSmoother::pivot.

Referenced by Preconditioner_LocalSmoother_Sweep().

## Preconditioner_LocalSmoother_Sweep_tiled()

void paso::Preconditioner_LocalSmoother_Sweep_tiled | ( | SparseMatrix_ptr< double > | A,
|  | Preconditioner_LocalSmoother * | gs,
|  | double * | x
| ) |  |

## Preconditioner_Smoother_alloc()

Preconditioner_Smoother * paso::Preconditioner_Smoother_alloc | ( | SystemMatrix_ptr< double > | A,
|  | bool | jacobi,
|  | bool | is_local,
|  | bool | verbose
| ) |  |

constructs the symmetric Gauss-Seidel preconditioner

References paso::Preconditioner_Smoother::is_local, paso::Preconditioner_Smoother::localSmoother, and Preconditioner_LocalSmoother_alloc().

Referenced by Preconditioner_alloc().

## Preconditioner_Smoother_free()

void paso::Preconditioner_Smoother_free | ( | Preconditioner_Smoother * | in | ) |

References paso::Preconditioner_Smoother::localSmoother, and Preconditioner_LocalSmoother_free().

Referenced by Preconditioner_free(), and solve_free().

## Preconditioner_Smoother_solve()

void paso::Preconditioner_Smoother_solve | ( | SystemMatrix_ptr< double > | A,
|  | Preconditioner_Smoother * | gs,
|  | double * | x,
|  | const double * | b,
|  | dim_t | sweeps,
|  | bool | x_is_initial
| ) |  |

References paso::util::AXPY(), paso::Preconditioner_LocalSmoother::buffer, paso::util::copy(), paso::Preconditioner_Smoother::is_local, paso::Preconditioner_Smoother::localSmoother, Preconditioner_LocalSmoother_solve(), Preconditioner_LocalSmoother_Sweep(), and SparseMatrix_MatrixVector_CSR_OFFSET0().

Referenced by Preconditioner_solve(), and paso::FCT_Solver::updateNL().

## Preconditioner_Smoother_solve_byTolerance()

SolverResult paso::Preconditioner_Smoother_solve_byTolerance | ( | SystemMatrix_ptr< double > | A,
|  | Preconditioner_Smoother * | gs,
|  | double * | x,
|  | const double * | b,
|  | double | atol,
|  | dim_t * | sweeps,
|  | bool | x_is_initial
| ) |  |

References paso::util::AXPY(), paso::Preconditioner_LocalSmoother::buffer, paso::util::copy(), paso::Preconditioner_Smoother::localSmoother, paso::util::lsup(), MaxIterReached, NoError, Preconditioner_LocalSmoother_Sweep(), and SparseMatrix_MatrixVector_CSR_OFFSET0().

Referenced by paso::FCT_Solver::updateLCN().

## Preconditioner_solve()

void paso::Preconditioner_solve | ( | Preconditioner * | prec,
|  | SystemMatrix_ptr< double > | A,
|  | double * | x,
|  | double * | b
| ) |  |

References paso::util::copy(), paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, PASO_GS, PASO_ILU0, PASO_JACOBI, PASO_NO_PRECONDITIONER, PASO_RILU, Preconditioner_Smoother_solve(), paso::Preconditioner::rilu, Solver_solveILU(), Solver_solveRILU(), paso::Preconditioner::sweeps, and paso::Preconditioner::type.

Referenced by paso::SystemMatrix< T >::solvePreconditioner().

## print_data()

void paso::print_data | ( | std::ofstream & | fp,
|  | int | n_perline,
|  | int | width,
|  | int | nval,
|  | char * | fmt,
|  | const void * | ptr,
|  | int | integer,
|  | int | adjust
| ) |  |

static

Referenced by generate_HB().

## q_sort() [1/2]

void paso::q_sort | ( | index_t * | row,
|  | index_t * | col,
|  | double * | val,
|  | int | begin,
|  | int | end
| ) |  |

static

References N, q_sort(), and swap().

## q_sort() [2/2]

void paso::q_sort | ( | index_t * | row,
|  | index_t * | col,
|  | double * | val,
|  | int | begin,
|  | int | end,
|  | int | N
| ) |  |

References N, and swap().

Referenced by paso::SystemMatrix< T >::loadMM_toCSC(), paso::SparseMatrix< T >::loadMM_toCSR(), paso::SystemMatrix< T >::loadMM_toCSR(), and q_sort().

## RHS_loadMM_toCSR()

void paso::RHS_loadMM_toCSR | ( | const char * | filename,
|  | double * | b,
|  | dim_t | size
| ) |  |

References M, mm_is_array, mm_is_general, mm_is_real, mm_read_banner(), mm_read_mtx_array_size(), N, and nz.

## solve_free()

template<typename T >

void paso::solve_free | ( | SystemMatrix< T > * | A | ) |

References paso::SystemMatrix< T >::mainBlock, MKL_free(), MUMPS_free(), PASO_MKL, PASO_MUMPS, PASO_PASO, PASO_SMOOTHER, PASO_UMFPACK, Preconditioner_Smoother_free(), Solver_free(), paso::SystemMatrix< T >::solver_p, paso::SystemMatrix< T >::solver_package, and UMFPACK_free().

Referenced by paso::FCT_Solver::initialize(), paso::TransportProblem::resetTransport(), paso::SystemMatrix< T >::resetValues(), and paso::SystemMatrix< T >::~SystemMatrix().

## Solver() [1/2]

SolverResult paso::Solver | ( | SystemMatrix_ptr< cplx_t > | A,
|  | cplx_t * | x,
|  | cplx_t * | b,
|  | Options * | options,
|  | Performance * | pp
| ) |  |

## Solver() [2/2]

SolverResult paso::Solver | ( | SystemMatrix_ptr< double > | A,
|  | double * | x,
|  | double * | b,
|  | Options * | options,
|  | Performance * | pp
| ) |  |

calls the iterative solver

References Breakdown, paso::Options::converged, EPSILON, paso::Options::getSolver(), escript::gettime(), InputError, paso::Options::iter_max, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MaxIterReached, paso::Options::method, MPI_DOUBLE, MPI_MAX, MPI_SUM, NegativeNormError, paso::Options::net_time, NoError, paso::Options::num_inner_iter, paso::Options::num_iter, paso::Options::num_level, PASO_BICGSTAB, PASO_GMRES, PASO_MINRES, PASO_NONLINEAR_GMRES, PASO_PASO, PASO_PCG, PASO_PRES20, PASO_TFQMR, PERFORMANCE_ALL, PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), escript::DataTypes::real_t_eps(), paso::Options::residual_norm, paso::Options::restart, paso::Options::set_up_time, Solver_BiCGStab(), Solver_GMRES(), Solver_MINRES(), Solver_NewtonGMRES(), Solver_PCG(), Solver_TFQMR(), paso::Options::symmetric, paso::Options::time, paso::Options::tolerance, paso::Options::truncation, and paso::Options::verbose.

Referenced by paso::SystemMatrix< T >::solve().

## Solver_BiCGStab()

SolverResult paso::Solver_BiCGStab | ( | SystemMatrix_ptr< double > | A,
|  | double * | r,
|  | double * | x,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | Performance * | pp
| ) |  |

References Breakdown, InputError, MaxIterReached, MPI_DOUBLE, MPI_SUM, NoError, PASO_ONE, PASO_ZERO, and TOLERANCE_FOR_SCALARS.

Referenced by Solver(), and paso::FCT_Solver::updateNL().

## Solver_free() [1/2]

void paso::Solver_free | ( | SystemMatrix< cplx_t > * | A | ) |

## Solver_free() [2/2]

void paso::Solver_free | ( | SystemMatrix< double > * | A | ) |

References paso::SystemMatrix< T >::freePreconditioner().

Referenced by solve_free().

## Solver_getILU()

Solver_ILU * paso::Solver_getILU | ( | SparseMatrix_ptr< double > | A,
|  | bool | verbose
| ) |  |

constructs the incomplete block factorization

References paso::Solver_ILU::factors, and escript::gettime().

Referenced by Preconditioner_alloc().

## Solver_getRILU()

Solver_RILU * paso::Solver_getRILU | ( | SparseMatrix_ptr< double > | A,
|  | bool | verbose
| ) |  |

References paso::Solver_RILU::A_CF, paso::Solver_RILU::A_FC, paso::Solver_RILU::A_FF_pivot, paso::Solver_RILU::b_C, paso::Solver_RILU::b_F, paso::util::comparIndex(), paso::util::cumsum(), escript::gettime(), paso::Solver_RILU::inv_A_FF, paso::Solver_RILU::mask_C, paso::Solver_RILU::mask_F, paso::Solver_RILU::n, paso::Solver_RILU::n_block, paso::Solver_RILU::n_C, paso::Solver_RILU::n_F, paso::Solver_RILU::RILU_of_Schur, paso::Solver_RILU::rows_in_C, paso::Solver_RILU::rows_in_F, Solver_updateIncompleteSchurComplement(), paso::Solver_RILU::x_C, and paso::Solver_RILU::x_F.

Referenced by Preconditioner_alloc().

## Solver_GMRES()

SolverResult paso::Solver_GMRES | ( | SystemMatrix_ptr< double > | A,
|  | double * | r,
|  | double * | x,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | dim_t | Length_of_recursion,
|  | dim_t | restart,
|  | Performance * | pp
| ) |  |

References Breakdown, InputError, MaxIterReached, MPI_DOUBLE, MPI_SUM, NoError, PASO_ONE, and PASO_ZERO.

Referenced by Solver().

## Solver_GMRES2()

SolverResult paso::Solver_GMRES2 | ( | Function * | F,
|  | const double * | f0,
|  | const double * | x0,
|  | double * | dx,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | Performance * | pp
| ) |  |

References paso::util::applyGivensRotations(), paso::Function::derivative(), escript::fabs(), paso::Function::getLen(), INDEX2, paso::util::innerProduct(), InputError, paso::util::l2(), paso::Function::mpi_info, NoError, paso::util::update(), and paso::util::zeroes().

Referenced by Solver_NewtonGMRES().

## Solver_ILU_free()

void paso::Solver_ILU_free | ( | Solver_ILU * | in | ) |

References paso::Solver_ILU::factors.

Referenced by Preconditioner_free().

## Solver_MINRES()

SolverResult paso::Solver_MINRES | ( | SystemMatrix_ptr< double > | A,
|  | double * | R,
|  | double * | X,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | Performance * | pp
| ) |  |

References paso::util::AXPY(), Breakdown, paso::util::copy(), paso::util::innerProduct(), InputError, paso::util::l2(), MaxIterReached, NegativeNormError, NoError, PASO_ONE, PASO_ZERO, and paso::util::scale().

Referenced by Solver().

## Solver_NewtonGMRES()

SolverResult paso::Solver_NewtonGMRES | ( | Function * | F,
|  | double * | x,
|  | Options * | options,
|  | Performance * | pp
| ) |  |

References paso::Options::absolute_tolerance, paso::Options::adapt_inner_tolerance, Breakdown, paso::Function::call(), paso::Function::getLen(), paso::Options::inner_iter_max, paso::Options::inner_tolerance, InputError, paso::Options::iter_max, paso::util::l2(), paso::util::lsup(), MaxIterReached, paso::Function::mpi_info, NoError, Solver_GMRES2(), paso::Options::tolerance, paso::util::update(), and paso::Options::verbose.

Referenced by Solver().

## Solver_PCG()

SolverResult paso::Solver_PCG | ( | SystemMatrix_ptr< double > | A,
|  | double * | r,
|  | double * | x,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | Performance * | pp
| ) |  |

References Breakdown, MaxIterReached, MPI_DOUBLE, MPI_SUM, NoError, PASO_ONE, PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), and TOLERANCE_FOR_SCALARS.

Referenced by Solver().

## Solver_RILU_free()

void paso::Solver_RILU_free | ( | Solver_RILU * | in | ) |

References paso::Solver_RILU::A_FF_pivot, paso::Solver_RILU::b_C, paso::Solver_RILU::b_F, paso::Solver_RILU::inv_A_FF, paso::Solver_RILU::mask_C, paso::Solver_RILU::mask_F, paso::Solver_RILU::RILU_of_Schur, paso::Solver_RILU::rows_in_C, paso::Solver_RILU::rows_in_F, paso::Solver_RILU::x_C, and paso::Solver_RILU::x_F.

Referenced by Preconditioner_free().

## Solver_solveILU()

void paso::Solver_solveILU | ( | SparseMatrix_ptr< double > | A,
|  | Solver_ILU * | ilu,
|  | double * | x,
|  | const double * | b
| ) |  |

References paso::Solver_ILU::factors.

Referenced by Preconditioner_solve().

## Solver_solveRILU()

void paso::Solver_solveRILU | ( | Solver_RILU * | rilu,
|  | double * | x,
|  | double * | b
| ) |  |

References paso::Solver_RILU::A_CF, paso::Solver_RILU::A_FC, paso::Solver_RILU::A_FF_pivot, paso::Solver_RILU::b_C, paso::Solver_RILU::b_F, BlockOps_solveAll(), paso::util::copy(), paso::Solver_RILU::inv_A_FF, paso::Solver_RILU::mask_C, paso::Solver_RILU::mask_F, paso::Solver_RILU::n, paso::Solver_RILU::n_block, paso::Solver_RILU::n_C, paso::Solver_RILU::n_F, paso::Solver_RILU::RILU_of_Schur, paso::Solver_RILU::rows_in_C, paso::Solver_RILU::rows_in_F, SparseMatrix_MatrixVector_CSR_OFFSET0(), paso::Solver_RILU::x_C, and paso::Solver_RILU::x_F.

Referenced by Preconditioner_solve().

## Solver_TFQMR()

SolverResult paso::Solver_TFQMR | ( | SystemMatrix_ptr< double > | A,
|  | double * | B,
|  | double * | X,
|  | dim_t * | iter,
|  | double * | tolerance,
|  | Performance * | pp
| ) |  |

References Breakdown, paso::util::copy(), paso::util::innerProduct(), InputError, paso::util::l2(), paso::util::linearCombination(), MaxIterReached, NoError, PASO_ONE, PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), paso::util::update(), and paso::util::zeroes().

Referenced by Solver().

## Solver_updateIncompleteSchurComplement()

void paso::Solver_updateIncompleteSchurComplement | ( | SparseMatrix_ptr< double > | A_CC,
|  | SparseMatrix_ptr< double > | A_CF,
|  | double * | invA_FF,
|  | index_t * | A_FF_pivot,
|  | SparseMatrix_ptr< double > | A_FC
| ) |  |

References paso::util::comparIndex().

Referenced by Solver_getRILU().

## SparseMatrix_MatrixMatrix()

SparseMatrix_ptr< double > paso::SparseMatrix_MatrixMatrix | ( | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B
| ) |  |

References MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, SparseMatrix_MatrixMatrix_BB(), SparseMatrix_MatrixMatrix_BD(), SparseMatrix_MatrixMatrix_DB(), and SparseMatrix_MatrixMatrix_DD().

## SparseMatrix_MatrixMatrix_BB()

void paso::SparseMatrix_MatrixMatrix_BB | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B
| ) |  |

References paso::util::comparIndex().

Referenced by SparseMatrix_MatrixMatrix().

## SparseMatrix_MatrixMatrix_BD()

void paso::SparseMatrix_MatrixMatrix_BD | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B
| ) |  |

References paso::util::comparIndex().

Referenced by SparseMatrix_MatrixMatrix().

## SparseMatrix_MatrixMatrix_DB()

void paso::SparseMatrix_MatrixMatrix_DB | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B
| ) |  |

References paso::util::comparIndex().

Referenced by SparseMatrix_MatrixMatrix().

## SparseMatrix_MatrixMatrix_DD()

void paso::SparseMatrix_MatrixMatrix_DD | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B
| ) |  |

References paso::util::comparIndex().

Referenced by SparseMatrix_MatrixMatrix().

## SparseMatrix_MatrixMatrixTranspose()

SparseMatrix_ptr< double > paso::SparseMatrix_MatrixMatrixTranspose | ( | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B,
|  | const_SparseMatrix_ptr< double > | T
| ) |  |

References MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, SparseMatrix_MatrixMatrixTranspose_BB(), SparseMatrix_MatrixMatrixTranspose_BD(), SparseMatrix_MatrixMatrixTranspose_DB(), and SparseMatrix_MatrixMatrixTranspose_DD().

## SparseMatrix_MatrixMatrixTranspose_BB()

void paso::SparseMatrix_MatrixMatrixTranspose_BB | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B,
|  | const_SparseMatrix_ptr< double > | T
| ) |  |

Referenced by SparseMatrix_MatrixMatrixTranspose().

## SparseMatrix_MatrixMatrixTranspose_BD()

void paso::SparseMatrix_MatrixMatrixTranspose_BD | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B,
|  | const_SparseMatrix_ptr< double > | T
| ) |  |

Referenced by SparseMatrix_MatrixMatrixTranspose().

## SparseMatrix_MatrixMatrixTranspose_DB()

void paso::SparseMatrix_MatrixMatrixTranspose_DB | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B,
|  | const_SparseMatrix_ptr< double > | T
| ) |  |

Referenced by SparseMatrix_MatrixMatrixTranspose().

## SparseMatrix_MatrixMatrixTranspose_DD()

void paso::SparseMatrix_MatrixMatrixTranspose_DD | ( | SparseMatrix_ptr< double > | C,
|  | const_SparseMatrix_ptr< double > | A,
|  | const_SparseMatrix_ptr< double > | B,
|  | const_SparseMatrix_ptr< double > | T
| ) |  |

Referenced by SparseMatrix_MatrixMatrixTranspose().

## SparseMatrix_MatrixVector_CSC_OFFSET0()

void paso::SparseMatrix_MatrixVector_CSC_OFFSET0 | ( | const double | alpha,
|  | const_SparseMatrix_ptr< double > | A,
|  | const double * | in,
|  | const double | beta,
|  | double * | out
| ) |  |

Referenced by paso::SystemMatrix< T >::MatrixVector().

## SparseMatrix_MatrixVector_CSC_OFFSET1()

void paso::SparseMatrix_MatrixVector_CSC_OFFSET1 | ( | const double | alpha,
|  | const_SparseMatrix_ptr< double > | A,
|  | const double * | in,
|  | const double | beta,
|  | double * | out
| ) |  |

Referenced by paso::SystemMatrix< T >::MatrixVector().

## SparseMatrix_MatrixVector_CSR_OFFSET0()

void paso::SparseMatrix_MatrixVector_CSR_OFFSET0 | ( | const double | alpha,
|  | const_SparseMatrix_ptr< double > | A,
|  | const double * | in,
|  | const double | beta,
|  | double * | out
| ) |  |

References SparseMatrix_MatrixVector_CSR_OFFSET0_stripe().

Referenced by paso::SystemMatrix< T >::MatrixVector_CSR_OFFSET0(), Preconditioner_LocalSmoother_solve(), Preconditioner_Smoother_solve(), Preconditioner_Smoother_solve_byTolerance(), and Solver_solveRILU().

## SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG()

void paso::SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG | ( | const double | alpha,
|  | const_SparseMatrix_ptr< double > | A,
|  | const double * | in,
|  | const double | beta,
|  | double * | out
| ) |  |

Referenced by paso::SystemMatrix< T >::MatrixVector_CSR_OFFSET0().

## SparseMatrix_MatrixVector_CSR_OFFSET0_stripe()

void paso::SparseMatrix_MatrixVector_CSR_OFFSET0_stripe | ( | double | alpha,
|  | dim_t | nRows,
|  | dim_t | row_block_size,
|  | dim_t | col_block_size,
|  | const index_t * | ptr,
|  | const index_t * | index,
|  | const double * | val,
|  | const double * | in,
|  | double | beta,
|  | double * | out
| ) |  |

Referenced by SparseMatrix_MatrixVector_CSR_OFFSET0().

## SparseMatrix_MatrixVector_CSR_OFFSET1()

template<typename T >

void paso::SparseMatrix_MatrixVector_CSR_OFFSET1 | ( | const double | alpha,
|  | const_SparseMatrix_ptr< T > | A,
|  | const T * | in,
|  | const double | beta,
|  | T * | out
| ) |  |

## swap()

void paso::swap | ( | index_t * | r,
|  | index_t * | c,
|  | double * | v,
|  | int | left,
|  | int | right
| ) |  |

Referenced by q_sort(), dudley::ElementFile::swapTable(), and finley::ElementFile::swapTable().

## UMFPACK_free() [1/2]

void paso::UMFPACK_free | ( | SparseMatrix< cplx_t > * | A | ) |

frees any UMFPACK related data from the matrix

## UMFPACK_free() [2/2]

void paso::UMFPACK_free | ( | SparseMatrix< double > * | A | ) |

frees any UMFPACK related data from the matrix

References paso::UMFPACK_Handler::numeric, paso::SparseMatrix< T >::solver_p, and paso::UMFPACK_Handler::symbolic.

Referenced by solve_free(), and paso::SparseMatrix< T >::~SparseMatrix().

## UMFPACK_solve() [1/2]

void paso::UMFPACK_solve | ( | SparseMatrix_ptr< cplx_t > | A,
|  | cplx_t * | out,
|  | cplx_t * | in,
|  | dim_t | numRefinements,
|  | bool | verbose
| ) |  |

calls the solver

## UMFPACK_solve() [2/2]

void paso::UMFPACK_solve | ( | SparseMatrix_ptr< double > | A,
|  | double * | out,
|  | double * | in,
|  | dim_t | numRefinements,
|  | bool | verbose
| ) |  |

calls the solver

References escript::gettime(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, paso::UMFPACK_Handler::numeric, PASO_UMFPACK, and paso::UMFPACK_Handler::symbolic.

Referenced by paso::SystemMatrix< T >::solve().

## Variable Documentation

## EPSILON

const real_t paso::EPSILON = escript::DataTypes::real_t_eps()

static

Referenced by paso::Function::derivative(), paso::FCT_Solver::initialize(), paso::TransportProblem::solve(), and Solver().

## LARGE_POSITIVE_FLOAT [1/2]

const real_t paso::LARGE_POSITIVE_FLOAT = escript::DataTypes::real_t_max()

static

Referenced by finley::FinleyDomain::addDiracPoints(), paso::FCT_Solver::getSafeTimeStepSize(), paso::ReactiveSolver::getSafeTimeStepSize(), paso::FCT_FluxLimiter::setU_tilde(), paso::TransportProblem::solve(), and paso::FCT_Solver::updateNL().

## LARGE_POSITIVE_FLOAT [2/2]

const real_t paso::LARGE_POSITIVE_FLOAT = escript::DataTypes::real_t_max()

static

## M [1/2]

dim_t paso::M

static

Referenced by dudley::DudleyDomain::addPDEToTransportProblem(), finley::FinleyDomain::addPDEToTransportProblem(), generate_HB(), ripley::MultiBrick::getConnections(), paso::SystemMatrix< T >::loadMM_toCSC(), paso::SparseMatrix< T >::loadMM_toCSR(), paso::SystemMatrix< T >::loadMM_toCSR(), mm_read_mtx_array_size(), mm_read_mtx_crd(), mm_read_mtx_crd_size(), mm_read_unsymmetric_sparse(), mm_write_mtx_array_size(), mm_write_mtx_crd(), mm_write_mtx_crd_size(), RHS_loadMM_toCSR(), paso::SparseMatrix< T >::saveHB_CSC(), paso::SparseMatrix< T >::saveMM(), and paso::FCT_Solver::setMuPaLu().

## M [2/2]

int paso::M

static

## N [1/2]

dim_t paso::N

static

Referenced by paso::util::AXPY(), BlockOps_Cpy_N(), BlockOps_invM_N(), BlockOps_MV_N(), BlockOps_SMV_N(), BlockOps_solve_N(), paso::util::copy(), paso::util::cumsum(), paso::util::cumsum_maskedFalse(), paso::util::cumsum_maskedTrue(), escript::Taipan::delete_array(), dropTree(), generate_HB(), dudley::util::getFlaggedMinMaxInt(), finley::util::getFlaggedMinMaxInt(), finley::util::getMaxInt(), finley::util::getMinInt(), dudley::util::getMinMaxInt(), finley::util::getMinMaxInt(), paso::util::iMax(), paso::util::isAny(), paso::SystemMatrix< T >::loadMM_toCSC(), paso::SparseMatrix< T >::loadMM_toCSR(), paso::SystemMatrix< T >::loadMM_toCSR(), mm_read_mtx_array_size(), mm_read_mtx_crd(), mm_read_mtx_crd_size(), mm_read_unsymmetric_sparse(), mm_write_mtx_array_size(), mm_write_mtx_crd(), mm_write_mtx_crd_size(), escript::Taipan::new_array(), escript::Taipan::num_arrays(), escript::Taipan::num_free(), paso::util::numPositives(), q_sort(), paso::Pattern::reduceBandwidth(), RHS_loadMM_toCSR(), paso::SparseMatrix< T >::saveHB_CSC(), paso::SparseMatrix< T >::saveMM(), paso::util::scale(), escript::JMPI_::setDistribution(), and escript::JMPI_::split().

## N [2/2]

int paso::N

static

## nz [1/2]

dim_t paso::nz

static

Referenced by generate_HB(), ripley::MultiBrick::interpolateNodesToNodesFinerWorker(), paso::SystemMatrix< T >::loadMM_toCSC(), paso::SparseMatrix< T >::loadMM_toCSR(), paso::SystemMatrix< T >::loadMM_toCSR(), mm_read_mtx_crd(), mm_read_mtx_crd_data(), mm_read_mtx_crd_size(), mm_read_unsymmetric_sparse(), mm_write_mtx_crd(), mm_write_mtx_crd_size(), ripley::Brick::populateDofMap(), and RHS_loadMM_toCSR().

## nz [2/2]

int paso::nz

static

## PASO_RT_EXP_LIM_MAX

const real_t paso::PASO_RT_EXP_LIM_MAX = log(1./sqrt(EPSILON))

static

Referenced by paso::ReactiveSolver::getSafeTimeStepSize(), and paso::ReactiveSolver::solve().

## PASO_RT_EXP_LIM_MIN

const real_t paso::PASO_RT_EXP_LIM_MIN = sqrt(EPSILON)

static

Referenced by paso::ReactiveSolver::solve().

## Pattern_mis_seed

double paso::Pattern_mis_seed =.4142135623730951

static

Referenced by paso::Pattern::mis().