Epetra_Util: The Epetra Util Wrapper Class. More...
#include <Epetra_Util.h>
Public Member Functions | |
Epetra_Util () | |
Epetra_Util Constructor. More... | |
Epetra_Util (const Epetra_Util &Util) | |
Epetra_Util Copy Constructor. More... | |
virtual | ~Epetra_Util () |
Epetra_Util Destructor. | |
Random number utilities | |
unsigned int | RandomInt () |
Returns a random integer on the interval (0, 2^31-1) | |
double | RandomDouble () |
Returns a random double on the interval (-1.0,1.0) | |
unsigned int | Seed () const |
Get seed from Random function. More... | |
int | SetSeed (unsigned int Seed_in) |
Set seed for Random function. More... | |
Static Public Member Functions | |
template<typename T > | |
static void | Sort (bool SortAscending, int NumKeys, T *Keys, int NumDoubleCompanions, double **DoubleCompanions, int NumIntCompanions, int **IntCompanions, int NumLongLongCompanions, long long **LongLongCompanions) |
Epetra_Util Sort Routine (Shell sort) More... | |
static void | Sort (bool SortAscending, int NumKeys, int *Keys, int NumDoubleCompanions, double **DoubleCompanions, int NumIntCompanions, int **IntCompanions, int NumLongLongCompanions, long long **LongLongCompanions) |
static void | Sort (bool SortAscending, int NumKeys, long long *Keys, int NumDoubleCompanions, double **DoubleCompanions, int NumIntCompanions, int **IntCompanions, int NumLongLongCompanions, long long **LongLongCompanions) |
static void | Sort (bool SortAscending, int NumKeys, int *Keys, int NumDoubleCompanions, double **DoubleCompanions, int NumIntCompanions, int **IntCompanions) |
static void | Sort (bool SortAscending, int NumKeys, double *Keys, int NumDoubleCompanions, double **DoubleCompanions, int NumIntCompanions, int **IntCompanions, int NumLongLongCompanions, long long **LongLongCompanions) |
static Epetra_Map | Create_Root_Map (const Epetra_Map &usermap, int root=0) |
Epetra_Util Create_Root_Map function. More... | |
static Epetra_Map | Create_OneToOne_Map (const Epetra_Map &usermap, bool high_rank_proc_owns_shared=false) |
Epetra_Util Create_OneToOne_Map function. More... | |
static Epetra_BlockMap | Create_OneToOne_BlockMap (const Epetra_BlockMap &usermap, bool high_rank_proc_owns_shared=false) |
Epetra_Util Create_OneToOne_Map function. More... | |
static Epetra_BlockMap | Create_OneToOne_BlockMap64 (const Epetra_BlockMap &usermap, bool high_rank_proc_owns_shared=false) |
Epetra_Util Create_OneToOne_Map function for long long ordinals. More... | |
static int | SortCrsEntries (int NumRows, const int *CRS_rowptr, int *CRS_colind, double *CRS_vals) |
Epetra_Util SortCrsEntries function. | |
static int | SortCrsEntries (int NumRows, const size_t *CRS_rowptr, int *CRS_colind, double *CRS_vals) |
Epetra_Util SortCrsEntries function. | |
static int | SortAndMergeCrsEntries (int NumRows, int *CRS_rowptr, int *CRS_colind, double *CRS_vals) |
Epetra_Util SortAndMergeCrsEntries function. | |
static int | SortAndMergeCrsEntries (int NumRows, size_t *CRS_rowptr, int *CRS_colind, double *CRS_vals) |
Epetra_Util SortAndMergeCrsEntries function. | |
static int | GetPidGidPairs (const Epetra_Import &Importer, std::vector< std::pair< int, int > > &gpids, bool use_minus_one_for_local) |
Epetra_Util GetPidGidPairs function. More... | |
static int | GetPidGidPairs (const Epetra_Import &Importer, std::vector< std::pair< int, long long > > &gpids, bool use_minus_one_for_local) |
static int | GetPids (const Epetra_Import &Importer, std::vector< int > &pids, bool use_minus_one_for_local) |
Epetra_Util GetPids function. More... | |
static int | GetRemotePIDs (const Epetra_Import &Importer, std::vector< int > &RemotePIDs) |
Epetra_Util GetRemotePIDs. More... | |
static double | Chop (const double &Value) |
Epetra_Util Chop method. Return zero if input Value is less than ChopValue. | |
Static Public Attributes | |
static const double | chopVal_ |
Epetra_Util: The Epetra Util Wrapper Class.
The Epetra_Util class is a collection of useful functions that cut across a broad
set of other classes.
A random number generator is provided, along with methods to set and retrieve the random-number seed.
The random number generator is a multiplicative linear congruential generator, with multiplier 16807 and modulus 2^31 - 1. It is based on the algorithm described in "Random Number Generators: Good Ones Are Hard To Find", S. K. Park and K. W. Miller, Communications of the ACM, vol. 31, no. 10, pp. 1192-1201.
Sorting is provided by a static function on this class (i.e., it is not necessary to construct an instance of this class to use the Sort function).
Epetra_Util is a serial interface only. This is appropriate since the standard utilities are only specified for serial execution (or shared memory parallel).
|
inline |
Epetra_Util Constructor.
Builds an instance of a serial Util object.
|
inline |
Epetra_Util Copy Constructor.
Makes an exact copy of an existing Epetra_Util instance.
|
static |
Epetra_Util Create_OneToOne_Map function.
Function to create a new Epetra_Map object with 1-to-1 ownership of entries from an existing map which may have entries that appear on multiple processors.
|
static |
Epetra_Util Create_OneToOne_Map function for long long ordinals.
Function to create a new Epetra_Map object with 1-to-1 ownership of entries from an existing map which may have entries that appear on multiple processors.
|
static |
Epetra_Util Create_OneToOne_Map function.
Function to create a new Epetra_Map object with 1-to-1 ownership of entries from an existing map which may have entries that appear on multiple processors.
|
static |
Epetra_Util Create_Root_Map function.
Function to create a new Epetra_Map object with all GIDs sent to the root processor which is zero by default. All all processors will have no GIDs. This root map can then be used to create an importer or exporter that will migrate all data to the root processor.
If root is set to -1 then the user map will be replicated completely on all processors.
|
static |
Epetra_Util GetPidGidPairs function.
For each GID in the TargetMap, find who owns the GID in the SourceMap. This works entirely from the Distributor and has no communication at all. This routine only works if your Importer is using an Epetra_MpiDistributor under the hood.
The routine returns (by reference) a std::vector of std::pair<int,int> which contains (PID,GID) pairs. If the use_minus_one_for_local==true, any GIDs owned by this processor get -1 instead of their PID.
|
static |
Epetra_Util GetPids function.
Like GetPidGidPairs, but just gets the PIDs, ordered by the columnmap
|
static |
Epetra_Util GetRemotePIDs.
Gets a list of remote PIDs from an importer in the order corresponding to the RemoteLIDs
unsigned int Epetra_Util::Seed | ( | ) | const |
Get seed from Random function.
int Epetra_Util::SetSeed | ( | unsigned int | Seed_in | ) |
Set seed for Random function.
In | Seed - An integer on the interval [1, 2^31-2] |
|
static |
Epetra_Util Sort Routine (Shell sort)
This function sorts a list of integer values in ascending or descending order. Additionally it sorts any number of companion lists of doubles or ints. A shell sort is used, which is fast if indices are already sorted.
In | SortAscending - Sort keys in ascending order if true, otherwise sort in descending order.. |
In | NumKeys - Number of integer values to be sorted. |
In/Out | Keys - List of integers to be sorted. |
In | NumDoubleCompanions - Number of lists of double precision numbers to be sorted with the key. If set to zero, DoubleCompanions is ignored and can be set to zero. |
In | DoubleCompanions - DoubleCompanions[i] is a pointer to the ith list of doubles to be sorted with key. |
In | NumIntCompanions - Number of lists of integers to be sorted with the key. If set to zero, IntCompanions is ignored and can be set to zero. |
In | IntCompanions - IntCompanions[i] is a pointer to the ith list of integers to be sorted with key. |