utils.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * \file utils.hpp
  3. * \author Dhairya Malhotra, dhairya.malhotra@gmail.com
  4. * \date 1-1-2011
  5. */
  6. #ifndef _UTILS_
  7. #define _UTILS_
  8. #include <vector>
  9. #include <mpi.h>
  10. #include <cheb_utils.hpp>
  11. #include <fmm_tree.hpp>
  12. template <class FMM_Mat_t>
  13. void CheckFMMOutput(pvfmm::FMM_Tree<FMM_Mat_t>* mytree, const pvfmm::Kernel<typename FMM_Mat_t::Real_t>* mykernel);
  14. template <class Real_t>
  15. struct TestFn{
  16. typedef void (*Fn_t)(Real_t* c, int n, Real_t* out);
  17. };
  18. template <class FMMTree_t>
  19. void CheckChebOutput(FMMTree_t* mytree, typename TestFn<typename FMMTree_t::Real_t>::Fn_t fn_poten, int fn_dof, std::string t_name="");
  20. enum DistribType{
  21. UnifGrid,
  22. RandUnif,
  23. RandGaus,
  24. RandElps,
  25. RandSphr
  26. };
  27. template <class Real_t>
  28. std::vector<Real_t> point_distrib(DistribType, size_t N, MPI_Comm comm);
  29. void commandline_option_start(int argc, char** argv, const char* help_text=NULL);
  30. const char* commandline_option(int argc, char** argv, const char* opt, const char* def_val, bool required, const char* err_msg);
  31. void commandline_option_end(int argc, char** argv);
  32. #include <utils.txx>
  33. #endif