Go to the documentation of this file.
20 #ifndef __DUDLEY_UTIL_H__
21 #define __DUDLEY_UTIL_H__
25 #include <escript/Data.h>
30 typedef std::pair<index_t,index_t>
IndexPair;
38 void gather(
int len,
const index_t* index,
int numData,
const double* in,
44 template<
typename Scalar>
49 void smallMatMult(
int A1,
int A2,
double* A,
int B2,
const double* B,
54 template<
typename Scalar>
60 void normalVector(
int len,
int dim,
int dim1,
const double* A,
double* normal);
72 std::vector<index_t>
packMask(
const std::vector<short>& mask);
80 #endif // __DUDLEY_UTIL_H__
IndexPair getFlaggedMinMaxInt(dim_t N, const index_t *values, index_t ignore)
Definition: finley/src/Util.cpp:330
template void addScatter< cplx_t >(int len, const index_t *index, int numData, const cplx_t *in, cplx_t *out, index_t upperBound)
static dim_t N
Definition: SparseMatrix_saveHB.cpp:50
std::vector< IndexPair > ValueAndIndexList
Definition: finley/src/Util.h:56
void smallMatSetMult1(int len, int A1, int A2, Scalar *A, int B2, const Scalar *B, const double *C)
Definition: dudley/src/Util.cpp:113
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:76
void addScatter(int len, const index_t *index, int numData, const Scalar *in, Scalar *out, index_t upperBound)
Definition: finley/src/Util.cpp:80
template void smallMatSetMult1< cplx_t >(int len, int A1, int A2, cplx_t *A, int B2, const std::vector< cplx_t > &B, const std::vector< real_t > &C)
Definition: DudleyException.h:37
template void addScatter< real_t >(int len, const index_t *index, int numData, const real_t *in, real_t *out, index_t upperBound)
index_t index_t_min()
Returns the minimum finite value for the index_t type.
Definition: DataTypes.h:96
std::pair< index_t, index_t > IndexPair
Definition: finley/src/Util.h:55
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:22
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: dudley/src/Util.cpp:184
Definition: FinleyException.h:38
void smallMatMult(int A1, int A2, double *A, int B2, const std::vector< double > &B, const std::vector< double > &C)
multiplies two matrices: A(1:A1,1:A2) := B(1:A1,1:B2)*C(1:B2,1:A2)
Definition: finley/src/Util.cpp:99
template void smallMatSetMult1< real_t >(int len, int A1, int A2, real_t *A, int B2, const real_t *B, const real_t *C)
bool ValueAndIndexCompare(const std::pair< int, int > &i, const std::pair< int, int > &j)
comparison function for sortValueAndIndex
Definition: finley/src/Util.cpp:56
#define MPI_INT
Definition: EsysMPI.h:45
index_t index_t_max()
Returns the maximum finite value for the index_t type.
Definition: DataTypes.h:105
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: finley/src/Util.cpp:368
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:32
IndexPair getFlaggedMinMaxInt(dim_t N, const index_t *values, index_t ignore)
Definition: dudley/src/Util.cpp:211
#define INDEX3(_X1_, _X2_, _X3_, _N1_, _N2_)
Definition: index.h:24
index_t getMinInt(int dim, dim_t N, const index_t *values)
calculates the minimum value from a dim X N integer array
Definition: finley/src/Util.cpp:262
index_t dim_t
Definition: DataTypes.h:90
void normalVector(int len, int dim, int dim1, const double *A, double *Normal)
Definition: finley/src/Util.cpp:212
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
void sortValueAndIndex(ValueAndIndexList &array)
orders a ValueAndIndexList by value.
Definition: finley/src/Util.cpp:64
template void addScatter< cplx_t >(int len, const index_t *index, int numData, const cplx_t *in, cplx_t *out, index_t upperBound)
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: finley/src/Util.cpp:303
index_t getMaxInt(int dim, dim_t N, const index_t *values)
calculates the maximum value from a dim X N integer array
Definition: finley/src/Util.cpp:283
std::vector< IndexPair > ValueAndIndexList
Definition: dudley/src/Util.h:56
void gather(int len, const index_t *index, int numData, const double *in, double *out)
Definition: finley/src/Util.cpp:69
std::vector< index_t > packMask(const std::vector< short > &mask)
Definition: dudley/src/Util.cpp:238
void sortValueAndIndex(ValueAndIndexList &array)
orders a ValueAndIndexList by value.
Definition: dudley/src/Util.cpp:64
void normalVector(int len, int dim, int dim1, const double *A, double *Normal)
Definition: dudley/src/Util.cpp:135
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: dudley/src/Util.cpp:249
#define MPI_MIN
Definition: EsysMPI.h:52
template void smallMatSetMult1< real_t >(int len, int A1, int A2, real_t *A, int B2, const std::vector< real_t > &B, const std::vector< real_t > &C)
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:85
void smallMatMult(int A1, int A2, double *A, int B2, const double *B, const double *C)
multiplies two matrices: A(1:A1,1:A2) := B(1:A1,1:B2)*C(1:B2,1:A2)
Definition: dudley/src/Util.cpp:99
void invertSmallMat(int len, int dim, const double *A, double *invA, double *det)
Definition: finley/src/Util.cpp:141
bool ValueAndIndexCompare(const std::pair< int, int > &i, const std::pair< int, int > &j)
comparison function for sortValueAndIndex
Definition: dudley/src/Util.cpp:56
void smallMatSetMult1(int len, int A1, int A2, Scalar *A, int B2, const std::vector< Scalar > &B, const std::vector< real_t > &C)
Definition: finley/src/Util.cpp:114
void gather(int len, const index_t *index, int numData, const double *in, double *out)
Definition: dudley/src/Util.cpp:69
template void addScatter< real_t >(int len, const index_t *index, int numData, const real_t *in, real_t *out, index_t upperBound)
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:79
Data Scalar(double value, const FunctionSpace &what, bool expanded)
A collection of factory functions for creating Data objects which contain data points of various shap...
Definition: DataFactory.cpp:62
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:32
std::vector< index_t > packMask(const std::vector< short > &mask)
Definition: finley/src/Util.cpp:357
An exception class that signals an invalid argument value.
Definition: EsysException.h:101
template void smallMatSetMult1< cplx_t >(int len, int A1, int A2, cplx_t *A, int B2, const cplx_t *B, const real_t *C)
std::pair< index_t, index_t > IndexPair
Definition: dudley/src/Util.h:55
void addScatter(int len, const index_t *index, int numData, const Scalar *in, Scalar *out, index_t upperBound)
Definition: dudley/src/Util.cpp:80