conv_pts.sh 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. #!/bin/bash
  2. CORES=16;
  3. export EXEC=examples/bin/fmm_pts
  4. # List arrays and corresponding executable option prefix
  5. declare -a opt_array=(nodes cores mpi_proc threads ker n_pts m_pts b_len dist m depth sin_pr max_time);
  6. declare -a opt_names=( - - - omp ker N M b dist m d sp -);
  7. for (( i=0; i<${#opt_names[@]}; i++ )) ; do # Declare arrays
  8. eval "declare -a ${opt_array[$i]}=()";
  9. done
  10. ###################################################################################################
  11. # Convergence Laplace kernel, 1M points, uniform distribution #
  12. ###################################################################################################
  13. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  14. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  15. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  16. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  17. ker+=( 1 1 1 1 1 1 1 1 1 :)
  18. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  19. m_pts+=( 300 300 300 300 300 300 300 300 300 :)
  20. b_len+=( 0.8125 0.8125 0.75 0.75 0.625 1.0 1.0 0.875 0.75 :)
  21. dist+=( 0 0 0 0 0 0 0 0 0 :)
  22. m+=( 2 4 6 6 8 10 12 14 16 :)
  23. depth+=( 6 6 6 6 6 5 5 5 5 :)
  24. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  25. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  26. ###################################################################################################
  27. # Convergence Laplace kernel, 1M points, non-uniform distribution (sphere) #
  28. ###################################################################################################
  29. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  30. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  31. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  32. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  33. ker+=( 1 1 1 1 1 1 1 1 1 :)
  34. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  35. m_pts+=( 180 190 200 180 200 700 750 750 1500 :)
  36. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  37. dist+=( 1 1 1 1 1 1 1 1 1 :)
  38. m+=( 2 4 6 6 8 10 12 14 16 :)
  39. depth+=( 15 15 15 15 15 15 15 15 15 :)
  40. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  41. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  42. ###################################################################################################
  43. # Convergence Laplace kernel, 1M points, non-uniform distribution (ellipse) #
  44. ###################################################################################################
  45. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  46. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  47. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  48. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  49. ker+=( 1 1 1 1 1 1 1 1 1 :)
  50. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  51. m_pts+=( 190 270 370 260 370 430 640 1000 1400 :)
  52. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  53. dist+=( 2 2 2 2 2 2 2 2 2 :)
  54. m+=( 2 4 6 6 8 10 12 14 16 :)
  55. depth+=( 15 15 15 15 15 15 15 15 15 :)
  56. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  57. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  58. ###################################################################################################
  59. # Convergence Stokes velocity kernel, 1M points, uniform distribution #
  60. ###################################################################################################
  61. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  62. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  63. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  64. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  65. ker+=( 3 3 3 3 3 3 3 3 3 :)
  66. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  67. m_pts+=( 300 300 300 300 300 300 300 300 300 :)
  68. b_len+=( 0.8125 0.8125 0.75 0.75 0.625 1.0 1.0 0.875 0.75 :)
  69. dist+=( 0 0 0 0 0 0 0 0 0 :)
  70. m+=( 2 4 6 6 8 10 12 14 16 :)
  71. depth+=( 6 6 6 6 6 5 5 5 5 :)
  72. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  73. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  74. ###################################################################################################
  75. # Convergence Stokes velocity kernel, 1M points, non-uniform distribution (sphere) #
  76. ###################################################################################################
  77. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  78. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  79. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  80. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  81. ker+=( 3 3 3 3 3 3 3 3 3 :)
  82. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  83. m_pts+=( 190 270 370 260 370 430 640 1000 1400 :)
  84. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  85. dist+=( 1 1 1 1 1 1 1 1 1 :)
  86. m+=( 2 4 6 6 8 10 12 14 16 :)
  87. depth+=( 15 15 15 15 15 15 15 15 15 :)
  88. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  89. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  90. ###################################################################################################
  91. # Convergence Stokes velocity kernel, 1M points, non-uniform distribution (ellipse) #
  92. ###################################################################################################
  93. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  94. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  95. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  96. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  97. ker+=( 3 3 3 3 3 3 3 3 3 :)
  98. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  99. m_pts+=( 190 270 370 260 370 430 640 1000 1400 :)
  100. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  101. dist+=( 2 2 2 2 2 2 2 2 2 :)
  102. m+=( 2 4 6 6 8 10 12 14 16 :)
  103. depth+=( 15 15 15 15 15 15 15 15 15 :)
  104. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  105. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  106. ###################################################################################################
  107. # Convergence Helmholtz kernel (wave-number=10), 1M points, uniform distribution #
  108. ###################################################################################################
  109. nodes+=( 1 1 1 1 1 1 1 :)
  110. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  111. mpi_proc+=( 1 1 1 1 1 1 1 :)
  112. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  113. ker+=( 4 4 4 4 4 4 4 :)
  114. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  115. m_pts+=( 300 400 400 600 800 1400 1800 :)
  116. b_len+=( 1 1 1 1 1 1 1 :)
  117. dist+=( 0 0 0 0 0 0 0 :)
  118. m+=( 8 10 10 12 14 16 18 :)
  119. depth+=( 15 15 15 15 15 15 15 :)
  120. sin_pr+=( 1 1 0 0 0 0 0 :)
  121. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  122. ###################################################################################################
  123. # Convergence Helmholtz kernel (wave-number=10), 1M points, non-uniform distribution (sphere) #
  124. ###################################################################################################
  125. nodes+=( 1 1 1 1 1 1 1 :)
  126. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  127. mpi_proc+=( 1 1 1 1 1 1 1 :)
  128. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  129. ker+=( 4 4 4 4 4 4 4 :)
  130. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  131. m_pts+=( 300 400 400 600 800 1400 1800 :)
  132. b_len+=( 1 1 1 1 1 1 1 :)
  133. dist+=( 1 1 1 1 1 1 1 :)
  134. m+=( 8 10 10 12 14 16 18 :)
  135. depth+=( 15 15 15 15 15 15 15 :)
  136. sin_pr+=( 1 1 0 0 0 0 0 :)
  137. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  138. ###################################################################################################
  139. # Convergence Helmholtz kernel (wave-number=10), 1M points, non-uniform distribution (ellipse) #
  140. ###################################################################################################
  141. nodes+=( 1 1 1 1 1 1 1 :)
  142. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  143. mpi_proc+=( 1 1 1 1 1 1 1 :)
  144. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  145. ker+=( 4 4 4 4 4 4 4 :)
  146. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  147. m_pts+=( 300 400 400 600 800 1400 1800 :)
  148. b_len+=( 1 1 1 1 1 1 1 :)
  149. dist+=( 2 2 2 2 2 2 2 :)
  150. m+=( 8 10 10 12 14 16 18 :)
  151. depth+=( 15 15 15 15 15 15 15 :)
  152. sin_pr+=( 1 1 0 0 0 0 0 :)
  153. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  154. RESULT_HEADER=" Script: $0 Convergence with multipole order for 1M points"
  155. declare -a RESULT_FIELDS=()
  156. RESULT_FIELDS+=("FMM Kernel name" "kernel" )
  157. RESULT_FIELDS+=("Point distribution" "dist" )
  158. RESULT_FIELDS+=("Number of Leaf Nodes" "Noct" )
  159. RESULT_FIELDS+=("Tree Depth" "d" )
  160. RESULT_FIELDS+=("Maximum points per octant" "M" )
  161. RESULT_FIELDS+=("Order of multipole expansions" "m" )
  162. RESULT_FIELDS+=("|" "|" )
  163. RESULT_FIELDS+=("Maximum Relative Error \[Output\]" "Linf(e)")
  164. declare -a PROF_FIELDS=()
  165. PROF_FIELDS+=("InitTree" )
  166. PROF_FIELDS+=("SetupFMM" )
  167. PROF_FIELDS+=("RunFMM" )
  168. #PROF_FIELDS+=("UpwardPass" )
  169. #PROF_FIELDS+=("ReduceBcast" )
  170. #PROF_FIELDS+=("DownwardPass")
  171. WORK_DIR=$(dirname ${PWD}/$0)/..
  172. TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
  173. source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}