escript  Revision_
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
paso Namespace Reference

Namespaces

namespace  util

Classes

struct  Preconditioner_BoomerAMG
struct  Connector
struct  Coupler
struct  Distribution
 describes the distribution of a vector stored on the local process More...
struct  FCT_Solver
struct  FCT_FluxLimiter
struct  Function
struct  LinearSystem
struct  MergedSolver
struct  Options
struct  Pattern
struct  DegreeAndIdx
struct  Performance
struct  Preconditioner
struct  Preconditioner_LocalSmoother
struct  Preconditioner_Smoother
struct  Preconditioner_AMG
 Local preconditioner. More...
struct  Preconditioner_LocalAMG
 Local AMG preconditioner. More...
struct  Preconditioner_AMG_Root
struct  Solver_ILU
 ILU preconditioner. More...
struct  Solver_RILU
 RILU preconditioner. More...
struct  ReactiveSolver
struct  SharedComponents
struct  SparseMatrix
struct  SystemMatrix
struct  SystemMatrixPattern
struct  TransportProblem
struct  UMFPACK_Handler
class  PasoException
 PasoException exception class. More...
class  SystemMatrixAdapter
class  TransportProblemAdapter

Typedefs

typedef boost::shared_ptr
< Connector
Connector_ptr
typedef boost::shared_ptr
< const Connector
const_Connector_ptr
typedef boost::shared_ptr
< Coupler
Coupler_ptr
typedef boost::shared_ptr
< const Coupler
const_Coupler_ptr
typedef boost::shared_ptr
< Distribution
Distribution_ptr
typedef boost::shared_ptr
< const Distribution
const_Distribution_ptr
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
typedef boost::shared_ptr
< SparseMatrix
SparseMatrix_ptr
typedef boost::shared_ptr
< const SparseMatrix
const_SparseMatrix_ptr
typedef int SparseMatrixType
typedef boost::shared_ptr
< SystemMatrix
SystemMatrix_ptr
typedef boost::shared_ptr
< const SystemMatrix
const_SystemMatrix_ptr
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  AMGBlockSelect { PASO_AMG_UNDECIDED = -1, PASO_AMG_IN_F = 0, PASO_AMG_IN_C = 1 }

Functions

void Preconditioner_AMG_free (Preconditioner_AMG *in)
index_t Preconditioner_AMG_getMaxLevel (const Preconditioner_AMG *in)
double Preconditioner_AMG_getCoarseLevelSparsity (const Preconditioner_AMG *in)
dim_t Preconditioner_AMG_getNumCoarseUnknowns (const Preconditioner_AMG *in)
Preconditioner_AMGPreconditioner_AMG_alloc (SystemMatrix_ptr A, dim_t level, Options *options)
void Preconditioner_AMG_solve (SystemMatrix_ptr A, Preconditioner_AMG *amg, double *x, double *b)
void Preconditioner_AMG_setStrongConnections (SystemMatrix_ptr A, dim_t *degree_S, index_t *offset_S, index_t *S, double theta, double tau)
void Preconditioner_AMG_setStrongConnections_Block (SystemMatrix_ptr A, dim_t *degree_S, index_t *offset_S, index_t *S, double theta, double tau)
void Preconditioner_AMG_transposeStrongConnections (dim_t n, const dim_t *degree_S, const index_t *offset_S, const index_t *S, const dim_t nT, dim_t *degree_ST, index_t *offset_ST, index_t *ST)
void Preconditioner_AMG_CIJPCoarsening (dim_t n, dim_t my_n, AMGBlockSelect *split_marker, const dim_t *degree_S, const index_t *offset_S, const index_t *S, const dim_t *degree_ST, const index_t *offset_ST, const index_t *ST, Connector_ptr col_connector, const_Distribution_ptr col_dist)
void Preconditioner_AMG_extendB (SystemMatrix_ptr A, SystemMatrix_ptr B)
void Preconditioner_AMG_CopyRemoteData (SystemMatrix_ptr P, index_t **p_ptr, index_t **p_idx, double **p_val, index_t *global_id, index_t block_size)
SystemMatrix_ptr Preconditioner_AMG_buildInterpolationOperator (SystemMatrix_ptr A, SystemMatrix_ptr P, SystemMatrix_ptr R)
SystemMatrix_ptr Preconditioner_AMG_buildInterpolationOperatorBlock (SystemMatrix_ptr A, SystemMatrix_ptr P, SystemMatrix_ptr R)
SystemMatrix_ptr Preconditioner_AMG_getProlongation (SystemMatrix_ptr A_p, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const dim_t n_C, index_t *counter_C, const index_t interpolation_method)
void Preconditioner_AMG_setDirectProlongation (SystemMatrix_ptr P, SystemMatrix_ptr A, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
void Preconditioner_AMG_setDirectProlongation_Block (SystemMatrix_ptr P, SystemMatrix_ptr A, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
void Preconditioner_AMG_setClassicProlongation (SystemMatrix_ptr P, SystemMatrix_ptr A, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
void Preconditioner_AMG_setClassicProlongation_Block (SystemMatrix_ptr P, SystemMatrix_ptr A, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
SystemMatrix_ptr Preconditioner_AMG_getRestriction (SystemMatrix_ptr P)
void Preconditioner_AMG_Root_free (Preconditioner_AMG_Root *in)
Preconditioner_AMG_RootPreconditioner_AMG_Root_alloc (SystemMatrix_ptr A, Options *options)
void Preconditioner_AMG_Root_solve (SystemMatrix_ptr A, Preconditioner_AMG_Root *prec, double *x, double *b)
err_t Solver_BiCGStab (SystemMatrix_ptr 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
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
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
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, int *pivot, int *failed)
 LU factorization of NxN matrix mat with partial pivoting.
void BlockOps_solve_N (dim_t N, double *X, double *mat, int *pivot, int *failed)
 solves system of linear equations A*X=B
void BlockOps_MViP_2 (const double *mat, double *V)
 inplace matrix vector product - order 2
void BlockOps_MViP_3 (const double *mat, double *V)
 inplace matrix vector product - order 3
void BlockOps_solveAll (dim_t n_block, dim_t n, double *D, index_t *pivot, double *x)
void Preconditioner_BoomerAMG_free (Preconditioner_BoomerAMG *in)
Preconditioner_BoomerAMGPreconditioner_BoomerAMG_alloc (SystemMatrix_ptr A, Options *options)
void Preconditioner_BoomerAMG_solve (SystemMatrix_ptr A, Preconditioner_BoomerAMG *amg, double *out, double *in)
 call the solver
err_t Solver_GMRES (SystemMatrix_ptr A, double *r, double *x, dim_t *iter, double *tolerance, dim_t Length_of_recursion, dim_t restart, Performance *pp)
err_t 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_ILUSolver_getILU (SparseMatrix_ptr A, bool verbose)
 constructs the incomplete block factorization
void Solver_solveILU (SparseMatrix_ptr A, Solver_ILU *ilu, double *x, const double *b)
void Preconditioner_LocalAMG_free (Preconditioner_LocalAMG *in)
index_t Preconditioner_LocalAMG_getMaxLevel (const Preconditioner_LocalAMG *in)
double Preconditioner_LocalAMG_getCoarseLevelSparsity (const Preconditioner_LocalAMG *in)
dim_t Preconditioner_LocalAMG_getNumCoarseUnknowns (const Preconditioner_LocalAMG *in)
Preconditioner_LocalAMGPreconditioner_LocalAMG_alloc (SparseMatrix_ptr A_p, dim_t level, Options *options)
void Preconditioner_LocalAMG_solve (SparseMatrix_ptr A, Preconditioner_LocalAMG *amg, double *x, double *b)
void Preconditioner_LocalAMG_setStrongConnections (SparseMatrix_ptr A, dim_t *degree_S, index_t *S, const double theta, const double tau)
void Preconditioner_LocalAMG_setStrongConnections_Block (SparseMatrix_ptr A, dim_t *degree_S, index_t *S, double theta, double tau)
void Preconditioner_LocalAMG_RungeStuebenSearch (dim_t n, const index_t *offset_S, const dim_t *degree_S, const index_t *S, AMGBlockSelect *split_marker, bool usePanel)
void Preconditioner_LocalAMG_enforceFFConnectivity (dim_t n, const index_t *offset_S, const dim_t *degree_S, const index_t *S, AMGBlockSelect *split_marker)
 ensures that two F nodes are connected via a C node
SparseMatrix_ptr Preconditioner_LocalAMG_getProlongation (SparseMatrix_ptr A_p, const index_t *offset_S, const dim_t *degree_S, const index_t *S, dim_t n_C, const index_t *counter_C, index_t interpolation_method)
void Preconditioner_LocalAMG_setDirectProlongation (SparseMatrix_ptr P_p, const_SparseMatrix_ptr A_p, const index_t *counter_C)
void Preconditioner_LocalAMG_setDirectProlongation_Block (SparseMatrix_ptr P_p, const_SparseMatrix_ptr A_p, const index_t *counter_C)
void Preconditioner_LocalAMG_setClassicProlongation (SparseMatrix_ptr P_p, SparseMatrix_ptr A_p, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
void Preconditioner_LocalAMG_setClassicProlongation_Block (SparseMatrix_ptr P_p, SparseMatrix_ptr A_p, const index_t *offset_S, const dim_t *degree_S, const index_t *S, const index_t *counter_C)
err_t Solver_MINRES (SystemMatrix_ptr A, double *R, double *X, dim_t *iter, double *tolerance, Performance *pp)
void MKL_free (SparseMatrix *A)
void MKL_solve (SparseMatrix_ptr A, double *out, double *in, index_t reordering, dim_t numRefinements, bool verbose)
err_t Solver_NewtonGMRES (Function *F, double *x, Options *options, Performance *pp)
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)
err_t Solver_PCG (SystemMatrix_ptr A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
void Performance_open (Performance *pp, int verbose)
 sets up the monitoring process
int Performance_getEventIndex (Performance *pp, int event_id)
 find the index of an event in the list of monitored events
void Performance_close (Performance *pp, int verbose)
 shuts down the monitoring process
void Performance_startMonitor (Performance *pp, int monitor)
 switches on a monitor
void Performance_stopMonitor (Performance *pp, int monitor)
 switches off a monitor
void Preconditioner_free (Preconditioner *in)
PreconditionerPreconditioner_alloc (SystemMatrix_ptr A, Options *options)
void Preconditioner_solve (Preconditioner *prec, SystemMatrix_ptr A, double *x, double *b)
void Preconditioner_Smoother_free (Preconditioner_Smoother *in)
void Preconditioner_LocalSmoother_free (Preconditioner_LocalSmoother *in)
Preconditioner_SmootherPreconditioner_Smoother_alloc (SystemMatrix_ptr A, bool jacobi, bool is_local, bool verbose)
 constructs the symmetric Gauss-Seidel preconditioner
Preconditioner_LocalSmootherPreconditioner_LocalSmoother_alloc (SparseMatrix_ptr A, bool jacobi, bool verbose)
void Preconditioner_Smoother_solve (SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
void Preconditioner_LocalSmoother_solve (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
err_t Preconditioner_Smoother_solve_byTolerance (SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial)
void Preconditioner_LocalSmoother_Sweep (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x)
void Preconditioner_LocalSmoother_Sweep_sequential (SparseMatrix_ptr A, Preconditioner_LocalSmoother *smoother, double *x)
 inplace Gauss-Seidel sweep in sequential mode
void Preconditioner_LocalSmoother_Sweep_tiled (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x)
void Preconditioner_LocalSmoother_Sweep_colored (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x)
SparseMatrix_ptr Preconditioner_AMG_mergeSystemMatrix (SystemMatrix_ptr A)
void Preconditioner_AMG_mergeSolve (Preconditioner_AMG *amg)
void Solver_RILU_free (Solver_RILU *in)
Solver_RILUSolver_getRILU (SparseMatrix_ptr A, bool verbose)
void Solver_solveRILU (Solver_RILU *rilu, double *x, double *b)
void Solver_updateIncompleteSchurComplement (SparseMatrix_ptr A_CC, SparseMatrix_ptr A_CF, double *invA_FF, index_t *A_FF_pivot, SparseMatrix_ptr A_FC)
void solve (SystemMatrix_ptr A, double *out, double *in, Options *options)
void solve_free (SystemMatrix *in)
void Solver_free (SystemMatrix *A)
void Solver (SystemMatrix_ptr A, double *x, double *b, Options *options, Performance *pp)
 calls the iterative solver
err_t Solver_TFQMR (SystemMatrix_ptr 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 A, const double *in, const double beta, double *out)
void SparseMatrix_MatrixVector_CSC_OFFSET1 (const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
void SparseMatrix_MatrixVector_CSR_OFFSET0 (const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
void SparseMatrix_MatrixVector_CSR_OFFSET1 (const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
void SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG (const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
SparseMatrix_ptr SparseMatrix_MatrixMatrix (const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
SparseMatrix_ptr SparseMatrix_MatrixMatrixTranspose (const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr T)
void SparseMatrix_MatrixMatrix_DD (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
void SparseMatrix_MatrixMatrix_DB (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
void SparseMatrix_MatrixMatrix_BD (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
void SparseMatrix_MatrixMatrix_BB (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
void SparseMatrix_MatrixMatrixTranspose_DD (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr T)
void SparseMatrix_MatrixMatrixTranspose_DB (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr T)
void SparseMatrix_MatrixMatrixTranspose_BD (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr T)
void SparseMatrix_MatrixMatrixTranspose_BB (SparseMatrix_ptr C, const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr 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 (FILE *, int, int, int, char *, const void *, int, int)
static void generate_HB (FILE *, dim_t *, dim_t *, const double *)
void SystemMatrix_MatrixVector (double alpha, SystemMatrix_ptr A, const double *in, double beta, double *out)
void SystemMatrix_MatrixVector_CSR_OFFSET0 (double alpha, SystemMatrix_ptr A, const double *in, double beta, double *out)
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 *A)
 frees any UMFPACK related data from the matrix
void UMFPACK_solve (SparseMatrix_ptr A, double *out, double *in, dim_t numRefinements, bool verbose)
 calls the solver
void checkPasoError ()

Variables

static double Pattern_mis_seed = .4142135623730951
static dim_t M
static dim_t N
static dim_t nz

Typedef Documentation

typedef boost::shared_ptr<Connector> paso::Connector_ptr
typedef boost::shared_ptr<const Connector> paso::const_Connector_ptr
typedef boost::shared_ptr<const Coupler> paso::const_Coupler_ptr
typedef boost::shared_ptr<const Distribution> paso::const_Distribution_ptr
typedef boost::shared_ptr<const Pattern> paso::const_Pattern_ptr
typedef boost::shared_ptr<const Preconditioner> paso::const_Preconditioner_ptr
typedef boost::shared_ptr<const SharedComponents> paso::const_SharedComponents_ptr
typedef boost::shared_ptr<const SparseMatrix> paso::const_SparseMatrix_ptr
typedef boost::shared_ptr<const SystemMatrix> paso::const_SystemMatrix_ptr
typedef boost::shared_ptr<const SystemMatrixPattern> paso::const_SystemMatrixPattern_ptr
typedef boost::shared_ptr<const TransportProblem> paso::const_TransportProblem_ptr
typedef boost::shared_ptr<Coupler> paso::Coupler_ptr
typedef boost::shared_ptr<Distribution> paso::Distribution_ptr
typedef boost::shared_ptr<Pattern> paso::Pattern_ptr
typedef boost::shared_ptr<Preconditioner> paso::Preconditioner_ptr
typedef boost::shared_ptr<SharedComponents> paso::SharedComponents_ptr
typedef boost::shared_ptr<SparseMatrix> paso::SparseMatrix_ptr
typedef boost::shared_ptr<SystemMatrix> paso::SystemMatrix_ptr
typedef boost::shared_ptr<TransportProblem> paso::TransportProblem_ptr

Enumeration Type Documentation

Enumerator:
PASO_AMG_UNDECIDED 
PASO_AMG_IN_F 
PASO_AMG_IN_C 

Function Documentation

void paso::BlockOps_Cpy_N ( dim_t  N,
double *  R,
const double *  V 
) [inline]
void paso::BlockOps_invM_2 ( double *  invA,
const double *  A,
int *  failed 
) [inline]
void paso::BlockOps_invM_3 ( double *  invA,
const double *  A,
int *  failed 
) [inline]
void paso::BlockOps_invM_N ( dim_t  N,
double *  mat,
int *  pivot,
int *  failed 
) [inline]

LU factorization of NxN matrix mat with partial pivoting.

References PASO_MISSING_CLAPACK.

Referenced by paso::SparseMatrix::invMain().

void paso::BlockOps_MV_N ( dim_t  N,
double *  R,
const double *  mat,
const double *  V 
) [inline]
void paso::BlockOps_MViP_2 ( const double *  mat,
double *  V 
) [inline]
void paso::BlockOps_MViP_3 ( const double *  mat,
double *  V 
) [inline]
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

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

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

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

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 PASO_MISSING_CLAPACK.

Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().

void paso::BlockOps_solve_N ( dim_t  N,
double *  X,
double *  mat,
int *  pivot,
int *  failed 
) [inline]
void paso::BlockOps_solveAll ( dim_t  n_block,
dim_t  n,
double *  D,
index_t pivot,
double *  x 
) [inline]
int paso::calc_digits ( int  var) [static]

Referenced by generate_HB().

int paso::comparDegreeAndIdx ( const void *  arg1,
const void *  arg2 
)
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 
)
void paso::fmt_str ( int  nvalues,
int  integer,
int *  width,
int *  nlines,
int *  nperline,
char *  pfmt,
char *  fmt 
) [static]

Referenced by generate_HB().

void paso::generate_HB ( FILE *  fp,
dim_t col_ptr,
dim_t row_ind,
const double *  val 
) [static]
void paso::MKL_free ( SparseMatrix *  A)
void paso::MKL_solve ( SparseMatrix_ptr  A,
double *  out,
double *  in,
index_t  reordering,
dim_t  numRefinements,
bool  verbose 
)
void paso::Performance_close ( Performance *  pp,
int  verbose 
)
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().

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

sets up the monitoring process

References Esys_noError(), Esys_setError(), PERFORMANCE_NUM_EVENTS, PERFORMANCE_NUM_MONITORS, PERFORMANCE_UNUSED, and SYSTEM_ERROR.

Referenced by solve().

void paso::Performance_startMonitor ( Performance *  pp,
int  monitor 
)
void paso::Performance_stopMonitor ( Performance *  pp,
int  monitor 
)
Preconditioner * paso::Preconditioner_alloc ( SystemMatrix_ptr  A,
Options *  options 
)
Preconditioner_AMG * paso::Preconditioner_AMG_alloc ( SystemMatrix_ptr  A,
dim_t  level,
Options *  options 
)
SystemMatrix_ptr paso::Preconditioner_AMG_buildInterpolationOperator ( SystemMatrix_ptr  A,
SystemMatrix_ptr  P,
SystemMatrix_ptr  R 
)
SystemMatrix_ptr paso::Preconditioner_AMG_buildInterpolationOperatorBlock ( SystemMatrix_ptr  A,
SystemMatrix_ptr  P,
SystemMatrix_ptr  R 
)
void paso::Preconditioner_AMG_CIJPCoarsening ( dim_t  n,
dim_t  my_n,
AMGBlockSelect *  split_marker,
const dim_t degree_S,
const index_t offset_S,
const index_t S,
const dim_t degree_ST,
const index_t offset_ST,
const index_t ST,
Connector_ptr  col_connector,
const_Distribution_ptr  col_dist 
)
void paso::Preconditioner_AMG_CopyRemoteData ( SystemMatrix_ptr  P,
index_t **  p_ptr,
index_t **  p_idx,
double **  p_val,
index_t global_id,
index_t  block_size 
)
void paso::Preconditioner_AMG_extendB ( SystemMatrix_ptr  A,
SystemMatrix_ptr  B 
)
void paso::Preconditioner_AMG_free ( Preconditioner_AMG *  in)
double paso::Preconditioner_AMG_getCoarseLevelSparsity ( const Preconditioner_AMG *  in)
index_t paso::Preconditioner_AMG_getMaxLevel ( const Preconditioner_AMG *  in)
dim_t paso::Preconditioner_AMG_getNumCoarseUnknowns ( const Preconditioner_AMG *  in)
SystemMatrix_ptr paso::Preconditioner_AMG_getProlongation ( SystemMatrix_ptr  A_p,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const dim_t  n_C,
index_t counter_C,
const index_t  interpolation_method 
)
void paso::Preconditioner_AMG_mergeSolve ( Preconditioner_AMG *  amg)
Preconditioner_AMG_Root * paso::Preconditioner_AMG_Root_alloc ( SystemMatrix_ptr  A,
Options *  options 
)
void paso::Preconditioner_AMG_Root_free ( Preconditioner_AMG_Root *  in)
void paso::Preconditioner_AMG_Root_solve ( SystemMatrix_ptr  A,
Preconditioner_AMG_Root *  prec,
double *  x,
double *  b 
)
void paso::Preconditioner_AMG_setClassicProlongation ( SystemMatrix_ptr  P,
SystemMatrix_ptr  A,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_AMG_setClassicProlongation_Block ( SystemMatrix_ptr  P,
SystemMatrix_ptr  A,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_AMG_setDirectProlongation ( SystemMatrix_ptr  P,
SystemMatrix_ptr  A,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_AMG_setDirectProlongation_Block ( SystemMatrix_ptr  P,
SystemMatrix_ptr  A,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_AMG_setStrongConnections ( SystemMatrix_ptr  A,
dim_t degree_S,
index_t offset_S,
index_t S,
double  theta,
double  tau 
)

theta = threshold for strong connections tau = threshold for diagonal dominance

S_i={j N_i; i strongly coupled to j} in the sense that |A_{ij}| >= theta * max_k |A_{ik}|

Referenced by Preconditioner_AMG_alloc().

void paso::Preconditioner_AMG_setStrongConnections_Block ( SystemMatrix_ptr  A,
dim_t degree_S,
index_t offset_S,
index_t S,
double  theta,
double  tau 
)
void paso::Preconditioner_AMG_solve ( SystemMatrix_ptr  A,
Preconditioner_AMG *  amg,
double *  x,
double *  b 
)
void paso::Preconditioner_AMG_transposeStrongConnections ( dim_t  n,
const dim_t degree_S,
const index_t offset_S,
const index_t S,
const dim_t  nT,
dim_t degree_ST,
index_t offset_ST,
index_t ST 
)
Preconditioner_BoomerAMG * paso::Preconditioner_BoomerAMG_alloc ( SystemMatrix_ptr  A,
Options *  options 
)
void paso::Preconditioner_BoomerAMG_free ( Preconditioner_BoomerAMG *  in)
void paso::Preconditioner_BoomerAMG_solve ( SystemMatrix_ptr  A,
Preconditioner_BoomerAMG *  amg,
double *  out,
double *  in 
)
void paso::Preconditioner_free ( Preconditioner *  in)
Preconditioner_LocalAMG * paso::Preconditioner_LocalAMG_alloc ( SparseMatrix_ptr  A_p,
dim_t  level,
Options *  options 
)

References paso::Preconditioner_LocalAMG::A_C, paso::Preconditioner_LocalAMG::AMG_C, paso::Preconditioner_LocalAMG::b_C, paso::Options::coarse_matrix_refinements, paso::Options::coarsening_selection_time, paso::Options::coarsening_threshold, paso::util::cumsum_maskedFalse(), paso::util::cumsum_maskedTrue(), paso::Options::diagonal_dominance_threshold, Esys_checkPtr(), Esys_noError(), Esys_timer(), paso::Options::interpolation_method, paso::Preconditioner_LocalAMG::level, paso::Options::level_max, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, paso::Options::min_coarse_matrix_size, paso::Options::min_coarse_sparsity, paso::Preconditioner_LocalAMG::P, PASO_AMG_IN_C, PASO_AMG_IN_F, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, PASO_JACOBI, PASO_MKL, PASO_SMOOTHER, PASO_UMFPACK, paso::Options::post_sweeps, paso::Preconditioner_LocalAMG::post_sweeps, paso::Options::pre_sweeps, paso::Preconditioner_LocalAMG::pre_sweeps, Preconditioner_LocalAMG_enforceFFConnectivity(), Preconditioner_LocalAMG_free(), Preconditioner_LocalAMG_getProlongation(), Preconditioner_LocalAMG_RungeStuebenSearch(), Preconditioner_LocalAMG_setStrongConnections(), Preconditioner_LocalAMG_setStrongConnections_Block(), Preconditioner_LocalSmoother_alloc(), paso::Preconditioner_LocalAMG::R, paso::Preconditioner_LocalAMG::r, paso::Preconditioner_LocalAMG::refinements, paso::Options::reordering, paso::Preconditioner_LocalAMG::reordering, S, SHOW_TIMING, paso::Options::smoother, paso::Preconditioner_LocalAMG::Smoother, SparseMatrix_MatrixMatrix(), SparseMatrix_MatrixMatrixTranspose(), USE_TRANSPOSE, paso::Options::usePanel, paso::Options::verbose, and paso::Preconditioner_LocalAMG::x_C.

Referenced by Preconditioner_AMG_Root_alloc().

void paso::Preconditioner_LocalAMG_enforceFFConnectivity ( dim_t  n,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
AMGBlockSelect *  split_marker 
)

ensures that two F nodes are connected via a C node

References paso::util::comparIndex(), PASO_AMG_IN_C, and PASO_AMG_IN_F.

Referenced by Preconditioner_LocalAMG_alloc().

void paso::Preconditioner_LocalAMG_free ( Preconditioner_LocalAMG *  in)
double paso::Preconditioner_LocalAMG_getCoarseLevelSparsity ( const Preconditioner_LocalAMG *  in)
index_t paso::Preconditioner_LocalAMG_getMaxLevel ( const Preconditioner_LocalAMG *  in)
dim_t paso::Preconditioner_LocalAMG_getNumCoarseUnknowns ( const Preconditioner_LocalAMG *  in)
SparseMatrix_ptr paso::Preconditioner_LocalAMG_getProlongation ( SparseMatrix_ptr  A_p,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
dim_t  n_C,
const index_t counter_C,
index_t  interpolation_method 
)
void paso::Preconditioner_LocalAMG_RungeStuebenSearch ( dim_t  n,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
AMGBlockSelect *  split_marker,
bool  usePanel 
)
void paso::Preconditioner_LocalAMG_setClassicProlongation ( SparseMatrix_ptr  P_p,
SparseMatrix_ptr  A_p,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_LocalAMG_setClassicProlongation_Block ( SparseMatrix_ptr  P_p,
SparseMatrix_ptr  A_p,
const index_t offset_S,
const dim_t degree_S,
const index_t S,
const index_t counter_C 
)
void paso::Preconditioner_LocalAMG_setDirectProlongation ( SparseMatrix_ptr  P_p,
const_SparseMatrix_ptr  A_p,
const index_t counter_C 
)
void paso::Preconditioner_LocalAMG_setDirectProlongation_Block ( SparseMatrix_ptr  P_p,
const_SparseMatrix_ptr  A_p,
const index_t counter_C 
)
void paso::Preconditioner_LocalAMG_setStrongConnections ( SparseMatrix_ptr  A,
dim_t degree_S,
index_t S,
const double  theta,
const double  tau 
)
void paso::Preconditioner_LocalAMG_setStrongConnections_Block ( SparseMatrix_ptr  A,
dim_t degree_S,
index_t S,
double  theta,
double  tau 
)
void paso::Preconditioner_LocalAMG_solve ( SparseMatrix_ptr  A,
Preconditioner_LocalAMG *  amg,
double *  x,
double *  b 
)
Preconditioner_LocalSmoother * paso::Preconditioner_LocalSmoother_alloc ( SparseMatrix_ptr  A,
bool  jacobi,
bool  verbose 
)
void paso::Preconditioner_LocalSmoother_free ( Preconditioner_LocalSmoother *  in)
void paso::Preconditioner_LocalSmoother_solve ( SparseMatrix_ptr  A,
Preconditioner_LocalSmoother *  gs,
double *  x,
const double *  b,
dim_t  sweeps,
bool  x_is_initial 
)
void paso::Preconditioner_LocalSmoother_Sweep ( SparseMatrix_ptr  A,
Preconditioner_LocalSmoother *  gs,
double *  x 
)
void paso::Preconditioner_LocalSmoother_Sweep_colored ( SparseMatrix_ptr  A,
Preconditioner_LocalSmoother *  gs,
double *  x 
)
void paso::Preconditioner_LocalSmoother_Sweep_sequential ( SparseMatrix_ptr  A,
Preconditioner_LocalSmoother *  gs,
double *  x 
)
void paso::Preconditioner_LocalSmoother_Sweep_tiled ( SparseMatrix_ptr  A,
Preconditioner_LocalSmoother *  gs,
double *  x 
)
Preconditioner_Smoother * paso::Preconditioner_Smoother_alloc ( SystemMatrix_ptr  A,
bool  jacobi,
bool  is_local,
bool  verbose 
)
void paso::Preconditioner_Smoother_free ( Preconditioner_Smoother *  in)
void paso::Preconditioner_Smoother_solve ( SystemMatrix_ptr  A,
Preconditioner_Smoother *  gs,
double *  x,
const double *  b,
dim_t  sweeps,
bool  x_is_initial 
)
err_t paso::Preconditioner_Smoother_solve_byTolerance ( SystemMatrix_ptr  A,
Preconditioner_Smoother *  gs,
double *  x,
const double *  b,
double  atol,
dim_t sweeps,
bool  x_is_initial 
)
void paso::Preconditioner_solve ( Preconditioner *  prec,
SystemMatrix_ptr  A,
double *  x,
double *  b 
)
void paso::print_data ( FILE *  fp,
int  n_perline,
int  width,
int  nval,
char *  fmt,
const void *  ptr,
int  integer,
int  adjust 
) [static]

Referenced by generate_HB().

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

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

void paso::q_sort ( index_t row,
index_t col,
double *  val,
int  begin,
int  end,
int  N 
)
void paso::RHS_loadMM_toCSR ( const char *  filename,
double *  b,
dim_t  size 
)
void paso::solve ( SystemMatrix_ptr  A,
double *  out,
double *  in,
Options *  options 
)
void paso::solve_free ( SystemMatrix *  in)
void paso::Solver ( SystemMatrix_ptr  A,
double *  x,
double *  b,
Options *  options,
Performance *  pp 
)
err_t paso::Solver_BiCGStab ( SystemMatrix_ptr  A,
double *  r,
double *  x,
dim_t iter,
double *  tolerance,
Performance *  pp 
)
void paso::Solver_free ( SystemMatrix *  A)
Solver_ILU * paso::Solver_getILU ( SparseMatrix_ptr  A,
bool  verbose 
)
Solver_RILU * paso::Solver_getRILU ( SparseMatrix_ptr  A,
bool  verbose 
)
err_t paso::Solver_GMRES ( SystemMatrix_ptr  A,
double *  r,
double *  x,
dim_t iter,
double *  tolerance,
dim_t  Length_of_recursion,
dim_t  restart,
Performance *  pp 
)
err_t paso::Solver_GMRES2 ( Function *  F,
const double *  f0,
const double *  x0,
double *  dx,
dim_t iter,
double *  tolerance,
Performance *  pp 
)
void paso::Solver_ILU_free ( Solver_ILU *  in)
err_t paso::Solver_MINRES ( SystemMatrix_ptr  A,
double *  R,
double *  X,
dim_t iter,
double *  tolerance,
Performance *  pp 
)
err_t paso::Solver_NewtonGMRES ( Function *  F,
double *  x,
Options *  options,
Performance *  pp 
)
err_t paso::Solver_PCG ( SystemMatrix_ptr  A,
double *  r,
double *  x,
dim_t iter,
double *  tolerance,
Performance *  pp 
)
void paso::Solver_RILU_free ( Solver_RILU *  in)
void paso::Solver_solveILU ( SparseMatrix_ptr  A,
Solver_ILU *  ilu,
double *  x,
const double *  b 
)
void paso::Solver_solveRILU ( Solver_RILU *  rilu,
double *  x,
double *  b 
)
err_t paso::Solver_TFQMR ( SystemMatrix_ptr  A,
double *  B,
double *  X,
dim_t iter,
double *  tolerance,
Performance *  pp 
)
void paso::Solver_updateIncompleteSchurComplement ( SparseMatrix_ptr  A_CC,
SparseMatrix_ptr  A_CF,
double *  invA_FF,
index_t A_FF_pivot,
SparseMatrix_ptr  A_FC 
)

References paso::util::comparIndex().

Referenced by Solver_getRILU().

SparseMatrix_ptr paso::SparseMatrix_MatrixMatrix ( const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B 
)
void paso::SparseMatrix_MatrixMatrix_BB ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B 
)
void paso::SparseMatrix_MatrixMatrix_BD ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B 
)
void paso::SparseMatrix_MatrixMatrix_DB ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B 
)
void paso::SparseMatrix_MatrixMatrix_DD ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B 
)
SparseMatrix_ptr paso::SparseMatrix_MatrixMatrixTranspose ( const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B,
const_SparseMatrix_ptr  T 
)
void paso::SparseMatrix_MatrixMatrixTranspose_BB ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B,
const_SparseMatrix_ptr  T 
)
void paso::SparseMatrix_MatrixMatrixTranspose_BD ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B,
const_SparseMatrix_ptr  T 
)
void paso::SparseMatrix_MatrixMatrixTranspose_DB ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B,
const_SparseMatrix_ptr  T 
)
void paso::SparseMatrix_MatrixMatrixTranspose_DD ( SparseMatrix_ptr  C,
const_SparseMatrix_ptr  A,
const_SparseMatrix_ptr  B,
const_SparseMatrix_ptr  T 
)
void paso::SparseMatrix_MatrixVector_CSC_OFFSET0 ( const double  alpha,
const_SparseMatrix_ptr  A,
const double *  in,
const double  beta,
double *  out 
)
void paso::SparseMatrix_MatrixVector_CSC_OFFSET1 ( const double  alpha,
const_SparseMatrix_ptr  A,
const double *  in,
const double  beta,
double *  out 
)
void paso::SparseMatrix_MatrixVector_CSR_OFFSET0 ( const double  alpha,
const_SparseMatrix_ptr  A,
const double *  in,
const double  beta,
double *  out 
)
void paso::SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG ( const double  alpha,
const_SparseMatrix_ptr  A,
const double *  in,
const double  beta,
double *  out 
)
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 
)
void paso::SparseMatrix_MatrixVector_CSR_OFFSET1 ( const double  alpha,
const_SparseMatrix_ptr  A,
const double *  in,
const double  beta,
double *  out 
)
void paso::swap ( index_t r,
index_t c,
double *  v,
int  left,
int  right 
)
void paso::SystemMatrix_MatrixVector ( double  alpha,
SystemMatrix_ptr  A,
const double *  in,
double  beta,
double *  out 
)
void paso::SystemMatrix_MatrixVector_CSR_OFFSET0 ( double  alpha,
SystemMatrix_ptr  A,
const double *  in,
double  beta,
double *  out 
)
void paso::UMFPACK_free ( SparseMatrix *  A)

frees any UMFPACK related data from the matrix

References paso::UMFPACK_Handler::numeric, paso::SparseMatrix::solver_p, and paso::UMFPACK_Handler::symbolic.

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

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

Variable Documentation

static int paso::M [static]
static int paso::N [static]
static int paso::nz [static]
double paso::Pattern_mis_seed = .4142135623730951 [static]

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