escript
Revision_
|
Functions | |
int | comparIndex (const void *index1, const void *index2) |
this int-comparison function is used by qsort/bsearch in various places More... | |
bool | isAny (dim_t N, const index_t *array, index_t value) |
returns true if array contains value More... | |
dim_t | numPositives (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the number of positive values in x More... | |
index_t | iMax (dim_t N, const index_t *array) |
returns the maximum value in integer array More... | |
index_t | cumsum (dim_t N, index_t *array) |
calculates the cumulative sum in array and returns the total sum More... | |
index_t | cumsum_maskedTrue (dim_t N, index_t *array, int *mask) |
index_t | cumsum_maskedFalse (dim_t N, index_t *array, int *mask) |
index_t | arg_max (dim_t N, dim_t *lambda) |
returns the index to the largest entry in lambda More... | |
void | zeroes (dim_t N, double *x) |
fills array x with zeroes More... | |
void | update (dim_t n, double a, double *x, double b, const double *y) |
void | linearCombination (dim_t n, double *z, double a, const double *x, double b, const double *y) |
double | innerProduct (dim_t N, const double *x, const double *y, escript::JMPI mpiInfo) |
returns the inner product of global arrays x and y More... | |
double | lsup (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the global Lsup of x More... | |
double | l2 (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the global L2 norm of x More... | |
void | applyGivensRotations (dim_t n, double *v, const double *c, const double *s) |
void | copy (dim_t N, double *out, const double *in) |
out = in More... | |
void | scale (dim_t N, double *x, double a) |
x = a*x More... | |
void | AXPY (dim_t N, double *x, double a, const double *y) |
x = x+a*y More... | |
bool | samesign (double a, double b) |
returns true if both arguments have the same sign, false otherwise More... | |
void paso::util::applyGivensRotations | ( | dim_t | N, |
double * | v, | ||
const double * | c, | ||
const double * | s | ||
) |
Applies a sequence of N-1 Givens rotations (c,s) to v of length N which is assumed to be small.
Referenced by paso::Solver_GMRES2().
index_t paso::util::arg_max | ( | dim_t | n, |
dim_t * | lambda | ||
) |
returns the index to the largest entry in lambda
Referenced by paso::Preconditioner_LocalAMG_RungeStuebenSearch().
|
inline |
x = x+a*y
References update().
Referenced by paso::Preconditioner_LocalSmoother_solve(), paso::Preconditioner_Smoother_solve(), paso::Preconditioner_Smoother_solve_byTolerance(), and paso::Solver_MINRES().
int paso::util::comparIndex | ( | const void * | index1, |
const void * | index2 | ||
) |
this int-comparison function is used by qsort/bsearch in various places
Referenced by paso::Pattern::borrowMainDiagonalPointer(), paso::SystemMatrix::extendedRowsForST(), paso::SparseMatrix::getTranspose(), paso::Pattern::Pattern(), paso::Preconditioner_AMG_buildInterpolationOperator(), paso::Preconditioner_AMG_buildInterpolationOperatorBlock(), paso::Preconditioner_AMG_CIJPCoarsening(), paso::Preconditioner_AMG_getRestriction(), paso::Preconditioner_AMG_setClassicProlongation(), paso::Preconditioner_AMG_setClassicProlongation_Block(), paso::Preconditioner_AMG_setDirectProlongation(), paso::Preconditioner_AMG_setDirectProlongation_Block(), paso::Preconditioner_LocalAMG_enforceFFConnectivity(), paso::Preconditioner_LocalAMG_setClassicProlongation(), paso::Preconditioner_LocalAMG_setClassicProlongation_Block(), paso::Preconditioner_LocalAMG_setDirectProlongation(), paso::Preconditioner_LocalAMG_setDirectProlongation_Block(), paso::Solver_getRILU(), paso::Solver_updateIncompleteSchurComplement(), paso::SparseMatrix_MatrixMatrix_BB(), paso::SparseMatrix_MatrixMatrix_BD(), paso::SparseMatrix_MatrixMatrix_DB(), paso::SparseMatrix_MatrixMatrix_DD(), and paso::SparseMatrix::unroll().
|
inline |
out = in
References linearCombination().
Referenced by paso::SparseMatrix::applyBlockMatrix(), dudley::Assemble_CopyNodalData(), finley::Assemble_CopyNodalData(), weipa::FinleyElements::buildReducedElements(), paso::LinearSystem::call(), speckley::SpeckleyDomain::copyData(), ripley::RipleyDomain::copyData(), weipa::DataVar::DataVar(), ripley::RipleyDomain::dofToNodes(), weipa::FinleyNodes::FinleyNodes(), weipa::DataVar::getDataFlat(), weipa::DataVar::initFromEscript(), speckley::Rectangle::interpolateElementsOnNodes(), speckley::Brick::interpolateNodesOnElements(), speckley::SpeckleyDomain::interpolateOnDomain(), ripley::RipleyDomain::interpolateOnDomain(), ripley::Brick::nodesToDOF(), ripley::Rectangle::nodesToDOF(), escript::patternFillArray(), paso::Preconditioner_AMG_solve(), paso::Preconditioner_LocalAMG_solve(), paso::Preconditioner_LocalSmoother_solve(), paso::Preconditioner_Smoother_solve(), paso::Preconditioner_Smoother_solve_byTolerance(), paso::Preconditioner_solve(), weipa::RipleyElements::reorderArray(), weipa::SpeckleyElements::reorderArray(), weipa::FinleyElements::reorderArray(), weipa::DataVar::reorderSamples(), weipa::RipleyNodes::RipleyNodes(), paso::TransportProblem::solve(), paso::Solver_MINRES(), paso::Solver_solveRILU(), paso::Solver_TFQMR(), weipa::SpeckleyNodes::SpeckleyNodes(), paso::FCT_Solver::updateNL(), and ripley::RipleyDomain::updateTagsInUse().
index_t paso::util::cumsum | ( | dim_t | N, |
index_t * | array | ||
) |
calculates the cumulative sum in array and returns the total sum
References paso::N.
Referenced by paso::Pattern::getSubpattern(), paso::Preconditioner_AMG_CopyRemoteData(), paso::Preconditioner_AMG_getProlongation(), paso::Preconditioner_LocalAMG_getProlongation(), and paso::Solver_getRILU().
index_t paso::util::cumsum_maskedFalse | ( | dim_t | N, |
index_t * | array, | ||
int * | mask | ||
) |
References paso::N.
Referenced by paso::Preconditioner_AMG_alloc(), and paso::Preconditioner_LocalAMG_alloc().
index_t paso::util::cumsum_maskedTrue | ( | dim_t | N, |
index_t * | array, | ||
int * | mask | ||
) |
References paso::N.
Referenced by paso::Preconditioner_AMG_alloc(), and paso::Preconditioner_LocalAMG_alloc().
index_t paso::util::iMax | ( | dim_t | N, |
const index_t * | array | ||
) |
returns the maximum value in integer array
References escript::DataTypes::index_t_min(), and paso::N.
Referenced by paso::Preconditioner_LocalAMG_setClassicProlongation(), and paso::Preconditioner_LocalAMG_setClassicProlongation_Block().
double paso::util::innerProduct | ( | dim_t | n, |
const double * | x, | ||
const double * | y, | ||
escript::JMPI | mpiinfo | ||
) |
returns the inner product of global arrays x and y
References MPI_DOUBLE, and MPI_SUM.
Referenced by paso::Solver_GMRES2(), paso::Solver_MINRES(), and paso::Solver_TFQMR().
bool paso::util::isAny | ( | dim_t | N, |
const index_t * | array, | ||
index_t | value | ||
) |
returns true if array contains value
References paso::N.
Referenced by paso::Pattern::borrowColoringPointer(), and paso::Pattern::mis().
double paso::util::l2 | ( | dim_t | n, |
const double * | x, | ||
escript::JMPI | mpiinfo | ||
) |
returns the global L2 norm of x
References MPI_DOUBLE, and MPI_SUM.
Referenced by speckley::_brick(), ripley::_brick(), ripley::_multibrick(), ripley::Brick::Brick(), speckley::Brick::Brick(), paso::Solver_GMRES2(), paso::Solver_MINRES(), paso::Solver_NewtonGMRES(), paso::Solver_TFQMR(), and paso::FCT_Solver::updateNL().
void paso::util::linearCombination | ( | dim_t | N, |
double * | z, | ||
double | a, | ||
const double * | x, | ||
double | b, | ||
const double * | y | ||
) |
Performs an update of the form z = a*x+b*y where y and x are long vectors. If a=0, x is not used; if b=0, y is not used.
Referenced by copy(), paso::Function::derivative(), and paso::Solver_TFQMR().
double paso::util::lsup | ( | dim_t | n, |
const double * | x, | ||
escript::JMPI | mpiinfo | ||
) |
returns the global Lsup of x
References MPI_DOUBLE, and MPI_MAX.
Referenced by paso::Function::derivative(), paso::Preconditioner_Smoother_solve_byTolerance(), paso::Solver_NewtonGMRES(), paso::FCT_Solver::updateLCN(), and paso::FCT_Solver::updateNL().
dim_t paso::util::numPositives | ( | dim_t | N, |
const double * | x, | ||
escript::JMPI | mpiInfo | ||
) |
returns the number of positive values in x
References MPI_SUM, and paso::N.
Referenced by paso::Preconditioner_AMG_CIJPCoarsening().
|
inline |
returns true if both arguments have the same sign, false otherwise
Referenced by paso::Preconditioner_AMG_setClassicProlongation(), paso::Preconditioner_AMG_setClassicProlongation_Block(), paso::Preconditioner_LocalAMG_setClassicProlongation(), and paso::Preconditioner_LocalAMG_setClassicProlongation_Block().
|
inline |
x = a*x
References update().
Referenced by escript::eigenvalues_and_eigenvectors2(), paso::Solver_MINRES(), and paso::FCT_Solver::updateLCN().
void paso::util::update | ( | dim_t | N, |
double | a, | ||
double * | x, | ||
double | b, | ||
const double * | y | ||
) |
Performs an update of the form x = a*x+b*y where y and x are long vectors. If b=0, y is not used.
Referenced by AXPY(), paso::Function::derivative(), scale(), paso::Solver_GMRES2(), paso::Solver_NewtonGMRES(), paso::Solver_TFQMR(), paso::FCT_Solver::updateLCN(), and paso::FCT_Solver::updateNL().
void paso::util::zeroes | ( | dim_t | n, |
double * | x | ||
) |
fills array x with zeroes
Referenced by paso::Function::derivative(), paso::TransportProblem::resetTransport(), paso::Solver_GMRES2(), paso::Solver_TFQMR(), and paso::FCT_Solver::updateNL().