17 #ifndef __deal2__utilities_h
18 #define __deal2__utilities_h
20 #include <deal.II/base/config.h>
22 #include <deal.II/base/mpi.h>
29 #ifdef DEAL_II_WITH_TRILINOS
30 # include <Epetra_Comm.h>
31 # include <Epetra_Map.h>
32 # ifdef DEAL_II_WITH_MPI
33 # include <Epetra_MpiComm.h>
35 # include <Epetra_SerialComm.h>
39 DEAL_II_NAMESPACE_OPEN
120 std::vector<std::string>
122 const char delimiter =
',');
138 std::vector<std::string>
140 const unsigned int width,
141 const char delimiter =
' ');
150 const std::string &pattern);
165 std::pair<int, unsigned int>
167 const unsigned int position);
214 template <
int N,
typename T>
232 template <
int a,
int N>
246 static const int value = 1;
291 template<
typename Iterator,
typename T>
304 template<
typename Iterator,
typename T,
typename Comp>
318 std::vector<unsigned int>
329 std::vector<unsigned int>
339 std::vector<unsigned long long int>
350 std::vector<unsigned long long int>
382 unsigned long int VmPeak;
475 Utilities::MPI::compute_point_to_point_communication_pattern;
484 using Utilities::MPI::duplicate_communicator;
500 const
double my_value,
501 MinMaxAvg &result) DEAL_II_DEPRECATED;
514 #ifdef DEAL_II_WITH_TRILINOS
612 duplicate_communicator (
const Epetra_Comm &communicator);
690 const Epetra_Comm &comm);
703 template <
int N,
typename T>
720 for (
int d=1; d<N; ++d)
728 template<
typename Iterator,
typename T>
741 template<
typename Iterator,
typename T,
typename Comp>
752 Assert (last - first >= 0,
753 ExcMessage (
"The given iterators do not satisfy the proper ordering."));
755 unsigned int len =
static_cast<unsigned int>(last-first);
772 if (!comp(*first, val))
776 if (!comp(*first, val))
780 if (!comp(*first, val))
784 if (!comp(*first, val))
788 if (!comp(*first, val))
792 if (!comp(*first, val))
796 if (!comp(*first, val))
815 const unsigned int half = len >> 1;
816 const Iterator middle = first + half;
823 if (comp(*middle, val))
835 DEAL_II_NAMESPACE_CLOSE
Iterator lower_bound(Iterator first, Iterator last, const T &val)
void calculate_collective_mpi_min_max_avg(const MPI_Comm &mpi_communicator, const double my_value, MinMaxAvg &result) DEAL_II_DEPRECATED
static const unsigned int invalid_unsigned_int
std::vector< unsigned int > reverse_permutation(const std::vector< unsigned int > &permutation)
const Epetra_Comm & comm_world()
::ExceptionBase & ExcMessage(std::string arg1)
void get_memory_stats(MemoryStats &stats)
double string_to_double(const std::string &s)
double generate_normal_random_number(const double a, const double sigma)
#define Assert(cond, exc)
std::vector< std::string > break_text_into_lines(const std::string &original_text, const unsigned int width, const char delimiter= ' ')
bool match_at_string_start(const std::string &name, const std::string &pattern)
std::string int_to_string(const unsigned int i, const unsigned int digits=numbers::invalid_unsigned_int)
unsigned int get_n_mpi_processes(const MPI_Comm &mpi_communicator) DEAL_II_DEPRECATED
std::pair< int, unsigned int > get_integer_at_position(const std::string &name, const unsigned int position)
const Epetra_Comm & comm_self()
BlockCompressedSparsityPattern CompressedBlockSparsityPattern DEAL_II_DEPRECATED
std::vector< unsigned int > invert_permutation(const std::vector< unsigned int > &permutation)
bool program_uses_mpi() DEAL_II_DEPRECATED
std::vector< std::string > split_string_list(const std::string &s, const char delimiter= ',')
void destroy_communicator(Epetra_Comm &communicator)
std::string get_hostname()
int string_to_int(const std::string &s)
::ExceptionBase & ExcNotImplemented()
Epetra_Map duplicate_map(const Epetra_BlockMap &map, const Epetra_Comm &comm)
::ExceptionBase & ExcInternalError()
unsigned int needed_digits(const unsigned int max_number)
unsigned int get_this_mpi_process(const MPI_Comm &mpi_communicator) DEAL_II_DEPRECATED