set_constants.c.svn-base 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. //---------------------------------------------------------------------
  2. //
  3. // Copyright 2010 Intel Corporation
  4. //
  5. // Licensed under the Apache License, Version 2.0 (the "License");
  6. // you may not use this file except in compliance with the License.
  7. // You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing, software
  12. // distributed under the License is distributed on an "AS IS" BASIS,
  13. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. // See the License for the specific language governing permissions and
  15. // limitations under the License.
  16. //
  17. //---------------------------------------------------------------------
  18. #include <math.h>
  19. #include "header.h"
  20. #define dmax1(x,y) ((x)>(y)? (x):(y))
  21. void set_constants() {
  22. //---------------------------------------------------------------------
  23. //---------------------------------------------------------------------
  24. ce(1,1) = 2.0e0;
  25. ce(1,2) = 0.0e0;
  26. ce(1,3) = 0.0e0;
  27. ce(1,4) = 4.0e0;
  28. ce(1,5) = 5.0e0;
  29. ce(1,6) = 3.0e0;
  30. ce(1,7) = 0.5e0;
  31. ce(1,8) = 0.02e0;
  32. ce(1,9) = 0.01e0;
  33. ce(1,10) = 0.03e0;
  34. ce(1,11) = 0.5e0;
  35. ce(1,12) = 0.4e0;
  36. ce(1,13) = 0.3e0;
  37. ce(2,1) = 1.0e0;
  38. ce(2,2) = 0.0e0;
  39. ce(2,3) = 0.0e0;
  40. ce(2,4) = 0.0e0;
  41. ce(2,5) = 1.0e0;
  42. ce(2,6) = 2.0e0;
  43. ce(2,7) = 3.0e0;
  44. ce(2,8) = 0.01e0;
  45. ce(2,9) = 0.03e0;
  46. ce(2,10) = 0.02e0;
  47. ce(2,11) = 0.4e0;
  48. ce(2,12) = 0.3e0;
  49. ce(2,13) = 0.5e0;
  50. ce(3,1) = 2.0e0;
  51. ce(3,2) = 2.0e0;
  52. ce(3,3) = 0.0e0;
  53. ce(3,4) = 0.0e0;
  54. ce(3,5) = 0.0e0;
  55. ce(3,6) = 2.0e0;
  56. ce(3,7) = 3.0e0;
  57. ce(3,8) = 0.04e0;
  58. ce(3,9) = 0.03e0;
  59. ce(3,10) = 0.05e0;
  60. ce(3,11) = 0.3e0;
  61. ce(3,12) = 0.5e0;
  62. ce(3,13) = 0.4e0;
  63. ce(4,1) = 2.0e0;
  64. ce(4,2) = 2.0e0;
  65. ce(4,3) = 0.0e0;
  66. ce(4,4) = 0.0e0;
  67. ce(4,5) = 0.0e0;
  68. ce(4,6) = 2.0e0;
  69. ce(4,7) = 3.0e0;
  70. ce(4,8) = 0.03e0;
  71. ce(4,9) = 0.05e0;
  72. ce(4,10) = 0.04e0;
  73. ce(4,11) = 0.2e0;
  74. ce(4,12) = 0.1e0;
  75. ce(4,13) = 0.3e0;
  76. ce(5,1) = 5.0e0;
  77. ce(5,2) = 4.0e0;
  78. ce(5,3) = 3.0e0;
  79. ce(5,4) = 2.0e0;
  80. ce(5,5) = 0.1e0;
  81. ce(5,6) = 0.4e0;
  82. ce(5,7) = 0.3e0;
  83. ce(5,8) = 0.05e0;
  84. ce(5,9) = 0.04e0;
  85. ce(5,10) = 0.03e0;
  86. ce(5,11) = 0.1e0;
  87. ce(5,12) = 0.3e0;
  88. ce(5,13) = 0.2e0;
  89. c1 = 1.4e0;
  90. c2 = 0.4e0;
  91. c3 = 0.1e0;
  92. c4 = 1.0e0;
  93. c5 = 1.4e0;
  94. bt = sqrt(0.5e0);
  95. dnxm1 = 1.0e0 / (double)(grid_points(1)-1);
  96. dnym1 = 1.0e0 / (double)(grid_points(2)-1);
  97. dnzm1 = 1.0e0 / (double)(grid_points(3)-1);
  98. c1c2 = c1 * c2;
  99. c1c5 = c1 * c5;
  100. c3c4 = c3 * c4;
  101. c1345 = c1c5 * c3c4;
  102. conz1 = (1.0e0-c1c5);
  103. tx1 = 1.0e0 / (dnxm1 * dnxm1);
  104. tx2 = 1.0e0 / (2.0e0 * dnxm1);
  105. tx3 = 1.0e0 / dnxm1;
  106. ty1 = 1.0e0 / (dnym1 * dnym1);
  107. ty2 = 1.0e0 / (2.0e0 * dnym1);
  108. ty3 = 1.0e0 / dnym1;
  109. tz1 = 1.0e0 / (dnzm1 * dnzm1);
  110. tz2 = 1.0e0 / (2.0e0 * dnzm1);
  111. tz3 = 1.0e0 / dnzm1;
  112. dx1 = 0.75e0;
  113. dx2 = 0.75e0;
  114. dx3 = 0.75e0;
  115. dx4 = 0.75e0;
  116. dx5 = 0.75e0;
  117. dy1 = 0.75e0;
  118. dy2 = 0.75e0;
  119. dy3 = 0.75e0;
  120. dy4 = 0.75e0;
  121. dy5 = 0.75e0;
  122. dz1 = 1.0e0;
  123. dz2 = 1.0e0;
  124. dz3 = 1.0e0;
  125. dz4 = 1.0e0;
  126. dz5 = 1.0e0;
  127. dxmax = dmax1(dx3, dx4);
  128. dymax = dmax1(dy2, dy4);
  129. dzmax = dmax1(dz2, dz3);
  130. dssp = 0.25e0 * dmax1(dx1, dmax1(dy1, dz1) );
  131. c4dssp = 4.0e0 * dssp;
  132. c5dssp = 5.0e0 * dssp;
  133. dttx1 = dt*tx1;
  134. dttx2 = dt*tx2;
  135. dtty1 = dt*ty1;
  136. dtty2 = dt*ty2;
  137. dttz1 = dt*tz1;
  138. dttz2 = dt*tz2;
  139. c2dttx1 = 2.0e0*dttx1;
  140. c2dtty1 = 2.0e0*dtty1;
  141. c2dttz1 = 2.0e0*dttz1;
  142. dtdssp = dt*dssp;
  143. comz1 = dtdssp;
  144. comz4 = 4.0e0*dtdssp;
  145. comz5 = 5.0e0*dtdssp;
  146. comz6 = 6.0e0*dtdssp;
  147. c3c4tx3 = c3c4*tx3;
  148. c3c4ty3 = c3c4*ty3;
  149. c3c4tz3 = c3c4*tz3;
  150. dx1tx1 = dx1*tx1;
  151. dx2tx1 = dx2*tx1;
  152. dx3tx1 = dx3*tx1;
  153. dx4tx1 = dx4*tx1;
  154. dx5tx1 = dx5*tx1;
  155. dy1ty1 = dy1*ty1;
  156. dy2ty1 = dy2*ty1;
  157. dy3ty1 = dy3*ty1;
  158. dy4ty1 = dy4*ty1;
  159. dy5ty1 = dy5*ty1;
  160. dz1tz1 = dz1*tz1;
  161. dz2tz1 = dz2*tz1;
  162. dz3tz1 = dz3*tz1;
  163. dz4tz1 = dz4*tz1;
  164. dz5tz1 = dz5*tz1;
  165. c2iv = 2.5e0;
  166. con43 = 4.0e0/3.0e0;
  167. con16 = 1.0e0/6.0e0;
  168. xxcon1 = c3c4tx3*con43*tx3;
  169. xxcon2 = c3c4tx3*tx3;
  170. xxcon3 = c3c4tx3*conz1*tx3;
  171. xxcon4 = c3c4tx3*con16*tx3;
  172. xxcon5 = c3c4tx3*c1c5*tx3;
  173. yycon1 = c3c4ty3*con43*ty3;
  174. yycon2 = c3c4ty3*ty3;
  175. yycon3 = c3c4ty3*conz1*ty3;
  176. yycon4 = c3c4ty3*con16*ty3;
  177. yycon5 = c3c4ty3*c1c5*ty3;
  178. zzcon1 = c3c4tz3*con43*tz3;
  179. zzcon2 = c3c4tz3*tz3;
  180. zzcon3 = c3c4tz3*conz1*tz3;
  181. zzcon4 = c3c4tz3*con16*tz3;
  182. zzcon5 = c3c4tz3*c1c5*tz3;
  183. return;
  184. }