escript  Revision_Unversioneddirectory
dudley/src/Util.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 /************************************************************************************/
18 
19 /* Some utility routines: */
20 
21 /************************************************************************************/
22 
23 #ifndef INC_DUDLEY_UTIL
24 #define INC_DUDLEY_UTIL
25 
26 #include "Dudley.h"
27 
28 /************************************************************************************/
29 
30 void Dudley_Util_Gather_double(dim_t len, index_t * index, dim_t numData, double *in, double *out);
31 void Dudley_Util_Gather_int(dim_t len, index_t * index, dim_t numData, index_t * in, index_t * out);
32 void Dudley_Util_AddScatter(const dim_t len, const index_t * index, const dim_t numData, const double *in, double *out, const index_t upperBound);
33 void Dudley_Util_SmallMatMult(dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C);
34 void Dudley_Util_SmallMatSetMult(dim_t len, dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C);
35 void Dudley_Util_SmallMatSetMult1(dim_t len, dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C);
36 void Dudley_Util_InvertSmallMat(dim_t len, dim_t dim, double *A, double *invA, double *det);
37 void Dudley_Util_DetOfSmallMat(dim_t len, dim_t dim, double *A, double *det);
38 void Dudley_NormalVector(dim_t len, dim_t dim, dim_t dim1, double *A, double *Normal);
39 void Dudley_LengthOfNormalVector(dim_t len, dim_t dim, dim_t dim1, double *A, double *length);
46 bool Dudley_Util_isAny(dim_t N, index_t * array, index_t value);
48 bool Dudley_Util_anyNonZeroDouble(dim_t N, double *values);
49 void Dudley_Util_setValuesInUse(const index_t * values, const dim_t numValues, dim_t * numValuesInUse,
50  index_t ** valuesInUse, esysUtils::JMPI& mpiinfo);
51 
52 #ifdef ESYS_MPI
53 void Dudley_printDoubleArray(FILE * fid, dim_t n, double *array, char *name);
54 void Dudley_printIntArray(FILE * fid, dim_t n, int *array, char *name);
55 void Dudley_printMaskArray(FILE * fid, dim_t n, int *array, char *name);
56 #endif
57 
58 /* Dudley_Util_orderValueAndIndex is used to sort items by a value */
59 /* index points to the location of the original item array. */
60 /* it can be used to reorder the array */
64 };
66 
68 int Dudley_Util_ValueAndIndex_compar(const void *, const void *);
69 
70 #endif /* #ifndef INC_UTIL_UTIL */
bool Dudley_Util_anyNonZeroDouble(dim_t N, double *values)
Definition: dudley/src/Util.cpp:38
void Dudley_Util_SmallMatSetMult(dim_t len, dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C)
Definition: dudley/src/Util.cpp:130
void Dudley_NormalVector(dim_t len, dim_t dim, dim_t dim1, double *A, double *Normal)
Definition: dudley/src/Util.cpp:318
void Dudley_Util_DetOfSmallMat(dim_t len, dim_t dim, double *A, double *det)
Definition: dudley/src/Util.cpp:268
index_t value
Definition: dudley/src/Util.h:63
index_t Dudley_Util_cumsum(dim_t, index_t *)
Definition: dudley/src/Util.cpp:607
void Dudley_Util_InvertSmallMat(dim_t len, dim_t dim, double *A, double *invA, double *det)
Definition: dudley/src/Util.cpp:175
void Dudley_Util_Gather_int(dim_t len, index_t *index, dim_t numData, index_t *in, index_t *out)
Definition: dudley/src/Util.cpp:71
void Dudley_Util_SmallMatSetMult1(dim_t len, dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C)
Definition: dudley/src/Util.cpp:153
index_t Dudley_Util_getFlaggedMinInt(dim_t dim, dim_t N, index_t *values, index_t ignore)
Definition: dudley/src/Util.cpp:525
void Dudley_Util_setValuesInUse(const index_t *values, const dim_t numValues, dim_t *numValuesInUse, index_t **valuesInUse, esysUtils::JMPI &mpiinfo)
Definition: dudley/src/Util.cpp:654
index_t Dudley_Util_getMaxInt(dim_t dim, dim_t N, index_t *values)
Definition: dudley/src/Util.cpp:494
void Dudley_LengthOfNormalVector(dim_t len, dim_t dim, dim_t dim1, double *A, double *length)
Definition: dudley/src/Util.cpp:384
static dim_t N
Definition: SparseMatrix_saveHB.cpp:37
void Dudley_Util_InvertMap(dim_t, index_t *, dim_t, index_t *)
Definition: dudley/src/Util.cpp:427
int index_t
Definition: types.h:24
void Dudley_Util_sortValueAndIndex(dim_t n, Dudley_Util_ValueAndIndex *array)
Definition: dudley/src/Util.cpp:458
dim_t Dudley_Util_packMask(dim_t N, index_t *mask, index_t *index)
Definition: dudley/src/Util.cpp:579
void Dudley_Util_Gather_double(dim_t len, index_t *index, dim_t numData, double *in, double *out)
Definition: dudley/src/Util.cpp:53
index_t Dudley_Util_getFlaggedMaxInt(dim_t dim, dim_t N, index_t *values, index_t ignore)
Definition: dudley/src/Util.cpp:552
index_t dim_t
Definition: types.h:27
void Dudley_Util_AddScatter(const dim_t len, const index_t *index, const dim_t numData, const double *in, double *out, const index_t upperBound)
Definition: dudley/src/Util.cpp:89
void Dudley_Util_SmallMatMult(dim_t A1, dim_t A2, double *A, dim_t B2, const double *B, const double *C)
Definition: dudley/src/Util.cpp:108
Definition: dudley/src/Util.h:61
int Dudley_Util_ValueAndIndex_compar(const void *, const void *)
Definition: dudley/src/Util.cpp:442
boost::shared_ptr< JMPI_ > JMPI
Definition: Esys_MPI.h:79
index_t Dudley_Util_getMinInt(dim_t dim, dim_t N, index_t *values)
Definition: dudley/src/Util.cpp:468
index_t index
Definition: dudley/src/Util.h:62
bool Dudley_Util_isAny(dim_t N, index_t *array, index_t value)
Definition: dudley/src/Util.cpp:596