rhs.c.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  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 "header.h"
  19. void compute_rhs() {
  20. //---------------------------------------------------------------------
  21. //---------------------------------------------------------------------
  22. int c, i, j, k, m;
  23. double rho_inv, uijk, up1, um1, vijk, vp1, vm1,
  24. wijk, wp1, wm1;
  25. //---------------------------------------------------------------------
  26. // loop over all cells owned by this node
  27. //---------------------------------------------------------------------
  28. for (c = 1; c <= ncells; c++) {
  29. //---------------------------------------------------------------------
  30. // compute the reciprocal of density, and the kinetic energy,
  31. // and the speed of sound.
  32. //---------------------------------------------------------------------
  33. for (k = -1; k <= cell_size(3,c); k++) {
  34. for (j = -1; j <= cell_size(2,c); j++) {
  35. for (i = -1; i <= cell_size(1,c); i++) {
  36. rho_inv = 1.0e0/u(1,i,j,k,c);
  37. rho_i(i,j,k,c) = rho_inv;
  38. us(i,j,k,c) = u(2,i,j,k,c) * rho_inv;
  39. vs(i,j,k,c) = u(3,i,j,k,c) * rho_inv;
  40. ws(i,j,k,c) = u(4,i,j,k,c) * rho_inv;
  41. square(i,j,k,c) = 0.5e0* (
  42. u(2,i,j,k,c)*u(2,i,j,k,c) +
  43. u(3,i,j,k,c)*u(3,i,j,k,c) +
  44. u(4,i,j,k,c)*u(4,i,j,k,c) ) * rho_inv;
  45. qs(i,j,k,c) = square(i,j,k,c) * rho_inv;
  46. }
  47. }
  48. }
  49. //---------------------------------------------------------------------
  50. // copy the exact forcing term to the right hand side; because
  51. // this forcing term is known, we can store it on the whole of every
  52. // cell, including the boundary
  53. //---------------------------------------------------------------------
  54. for (k = 0; k <= cell_size(3,c)-1; k++) {
  55. for (j = 0; j <= cell_size(2,c)-1; j++) {
  56. for (i = 0; i <= cell_size(1,c)-1; i++) {
  57. for (m = 1; m <= 5; m++) {
  58. rhs(m,i,j,k,c) = forcing(m,i,j,k,c);
  59. }
  60. }
  61. }
  62. }
  63. //---------------------------------------------------------------------
  64. // compute xi-direction fluxes
  65. //---------------------------------------------------------------------
  66. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  67. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  68. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  69. uijk = us(i,j,k,c);
  70. up1 = us(i+1,j,k,c);
  71. um1 = us(i-1,j,k,c);
  72. rhs(1,i,j,k,c) = rhs(1,i,j,k,c) + dx1tx1 *
  73. (u(1,i+1,j,k,c) - 2.0e0*u(1,i,j,k,c) +
  74. u(1,i-1,j,k,c)) -
  75. tx2 * (u(2,i+1,j,k,c) - u(2,i-1,j,k,c));
  76. rhs(2,i,j,k,c) = rhs(2,i,j,k,c) + dx2tx1 *
  77. (u(2,i+1,j,k,c) - 2.0e0*u(2,i,j,k,c) +
  78. u(2,i-1,j,k,c)) +
  79. xxcon2*con43 * (up1 - 2.0e0*uijk + um1) -
  80. tx2 * (u(2,i+1,j,k,c)*up1 -
  81. u(2,i-1,j,k,c)*um1 +
  82. (u(5,i+1,j,k,c)- square(i+1,j,k,c)-
  83. u(5,i-1,j,k,c)+ square(i-1,j,k,c))*
  84. c2);
  85. rhs(3,i,j,k,c) = rhs(3,i,j,k,c) + dx3tx1 *
  86. (u(3,i+1,j,k,c) - 2.0e0*u(3,i,j,k,c) +
  87. u(3,i-1,j,k,c)) +
  88. xxcon2 * (vs(i+1,j,k,c) - 2.0e0*vs(i,j,k,c) +
  89. vs(i-1,j,k,c)) -
  90. tx2 * (u(3,i+1,j,k,c)*up1 -
  91. u(3,i-1,j,k,c)*um1);
  92. rhs(4,i,j,k,c) = rhs(4,i,j,k,c) + dx4tx1 *
  93. (u(4,i+1,j,k,c) - 2.0e0*u(4,i,j,k,c) +
  94. u(4,i-1,j,k,c)) +
  95. xxcon2 * (ws(i+1,j,k,c) - 2.0e0*ws(i,j,k,c) +
  96. ws(i-1,j,k,c)) -
  97. tx2 * (u(4,i+1,j,k,c)*up1 -
  98. u(4,i-1,j,k,c)*um1);
  99. rhs(5,i,j,k,c) = rhs(5,i,j,k,c) + dx5tx1 *
  100. (u(5,i+1,j,k,c) - 2.0e0*u(5,i,j,k,c) +
  101. u(5,i-1,j,k,c)) +
  102. xxcon3 * (qs(i+1,j,k,c) - 2.0e0*qs(i,j,k,c) +
  103. qs(i-1,j,k,c)) +
  104. xxcon4 * (up1*up1 - 2.0e0*uijk*uijk +
  105. um1*um1) +
  106. xxcon5 * (u(5,i+1,j,k,c)*rho_i(i+1,j,k,c) -
  107. 2.0e0*u(5,i,j,k,c)*rho_i(i,j,k,c) +
  108. u(5,i-1,j,k,c)*rho_i(i-1,j,k,c)) -
  109. tx2 * ( (c1*u(5,i+1,j,k,c) -
  110. c2*square(i+1,j,k,c))*up1 -
  111. (c1*u(5,i-1,j,k,c) -
  112. c2*square(i-1,j,k,c))*um1 );
  113. }
  114. }
  115. }
  116. //---------------------------------------------------------------------
  117. // add fourth order xi-direction dissipation
  118. //---------------------------------------------------------------------
  119. if (start(1,c) > 0) {
  120. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  121. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  122. i = 1;
  123. for (m = 1; m <= 5; m++) {
  124. rhs(m,i,j,k,c) = rhs(m,i,j,k,c)- dssp *
  125. ( 5.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i+1,j,k,c) +
  126. u(m,i+2,j,k,c));
  127. }
  128. i = 2;
  129. for (m = 1; m <= 5; m++) {
  130. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  131. (-4.0e0*u(m,i-1,j,k,c) + 6.0e0*u(m,i,j,k,c) -
  132. 4.0e0*u(m,i+1,j,k,c) + u(m,i+2,j,k,c));
  133. }
  134. }
  135. }
  136. }
  137. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  138. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  139. for (i = 3*start(1,c); i <= cell_size(1,c)-3*end(1,c)-1; i++) {
  140. for (m = 1; m <= 5; m++) {
  141. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  142. ( u(m,i-2,j,k,c) - 4.0e0*u(m,i-1,j,k,c) +
  143. 6.0*u(m,i,j,k,c) - 4.0e0*u(m,i+1,j,k,c) +
  144. u(m,i+2,j,k,c) );
  145. }
  146. }
  147. }
  148. }
  149. if (end(1,c) > 0) {
  150. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  151. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  152. i = cell_size(1,c)-3;
  153. for (m = 1; m <= 5; m++) {
  154. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  155. ( u(m,i-2,j,k,c) - 4.0e0*u(m,i-1,j,k,c) +
  156. 6.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i+1,j,k,c) );
  157. }
  158. i = cell_size(1,c)-2;
  159. for (m = 1; m <= 5; m++) {
  160. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  161. ( u(m,i-2,j,k,c) - 4.e0*u(m,i-1,j,k,c) +
  162. 5.e0*u(m,i,j,k,c) );
  163. }
  164. }
  165. }
  166. }
  167. //---------------------------------------------------------------------
  168. // compute eta-direction fluxes
  169. //---------------------------------------------------------------------
  170. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  171. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  172. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  173. vijk = vs(i,j,k,c);
  174. vp1 = vs(i,j+1,k,c);
  175. vm1 = vs(i,j-1,k,c);
  176. rhs(1,i,j,k,c) = rhs(1,i,j,k,c) + dy1ty1 *
  177. (u(1,i,j+1,k,c) - 2.0e0*u(1,i,j,k,c) +
  178. u(1,i,j-1,k,c)) -
  179. ty2 * (u(3,i,j+1,k,c) - u(3,i,j-1,k,c));
  180. rhs(2,i,j,k,c) = rhs(2,i,j,k,c) + dy2ty1 *
  181. (u(2,i,j+1,k,c) - 2.0e0*u(2,i,j,k,c) +
  182. u(2,i,j-1,k,c)) +
  183. yycon2 * (us(i,j+1,k,c) - 2.0e0*us(i,j,k,c) +
  184. us(i,j-1,k,c)) -
  185. ty2 * (u(2,i,j+1,k,c)*vp1 -
  186. u(2,i,j-1,k,c)*vm1);
  187. rhs(3,i,j,k,c) = rhs(3,i,j,k,c) + dy3ty1 *
  188. (u(3,i,j+1,k,c) - 2.0e0*u(3,i,j,k,c) +
  189. u(3,i,j-1,k,c)) +
  190. yycon2*con43 * (vp1 - 2.0e0*vijk + vm1) -
  191. ty2 * (u(3,i,j+1,k,c)*vp1 -
  192. u(3,i,j-1,k,c)*vm1 +
  193. (u(5,i,j+1,k,c) - square(i,j+1,k,c) -
  194. u(5,i,j-1,k,c) + square(i,j-1,k,c))
  195. *c2);
  196. rhs(4,i,j,k,c) = rhs(4,i,j,k,c) + dy4ty1 *
  197. (u(4,i,j+1,k,c) - 2.0e0*u(4,i,j,k,c) +
  198. u(4,i,j-1,k,c)) +
  199. yycon2 * (ws(i,j+1,k,c) - 2.0e0*ws(i,j,k,c) +
  200. ws(i,j-1,k,c)) -
  201. ty2 * (u(4,i,j+1,k,c)*vp1 -
  202. u(4,i,j-1,k,c)*vm1);
  203. rhs(5,i,j,k,c) = rhs(5,i,j,k,c) + dy5ty1 *
  204. (u(5,i,j+1,k,c) - 2.0e0*u(5,i,j,k,c) +
  205. u(5,i,j-1,k,c)) +
  206. yycon3 * (qs(i,j+1,k,c) - 2.0e0*qs(i,j,k,c) +
  207. qs(i,j-1,k,c)) +
  208. yycon4 * (vp1*vp1 - 2.0e0*vijk*vijk +
  209. vm1*vm1) +
  210. yycon5 * (u(5,i,j+1,k,c)*rho_i(i,j+1,k,c) -
  211. 2.0e0*u(5,i,j,k,c)*rho_i(i,j,k,c) +
  212. u(5,i,j-1,k,c)*rho_i(i,j-1,k,c)) -
  213. ty2 * ((c1*u(5,i,j+1,k,c) -
  214. c2*square(i,j+1,k,c)) * vp1 -
  215. (c1*u(5,i,j-1,k,c) -
  216. c2*square(i,j-1,k,c)) * vm1);
  217. }
  218. }
  219. }
  220. //---------------------------------------------------------------------
  221. // add fourth order eta-direction dissipation
  222. //---------------------------------------------------------------------
  223. if (start(2,c) > 0) {
  224. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  225. j = 1;
  226. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  227. for (m = 1; m <= 5; m++) {
  228. rhs(m,i,j,k,c) = rhs(m,i,j,k,c)- dssp *
  229. ( 5.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i,j+1,k,c) +
  230. u(m,i,j+2,k,c));
  231. }
  232. }
  233. j = 2;
  234. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  235. for (m = 1; m <= 5; m++) {
  236. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  237. (-4.0e0*u(m,i,j-1,k,c) + 6.0e0*u(m,i,j,k,c) -
  238. 4.0e0*u(m,i,j+1,k,c) + u(m,i,j+2,k,c));
  239. }
  240. }
  241. }
  242. }
  243. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  244. for (j = 3*start(2,c); j <= cell_size(2,c)-3*end(2,c)-1; j++) {
  245. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  246. for (m = 1; m <= 5; m++) {
  247. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  248. ( u(m,i,j-2,k,c) - 4.0e0*u(m,i,j-1,k,c) +
  249. 6.0*u(m,i,j,k,c) - 4.0e0*u(m,i,j+1,k,c) +
  250. u(m,i,j+2,k,c) );
  251. }
  252. }
  253. }
  254. }
  255. if (end(2,c) > 0) {
  256. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  257. j = cell_size(2,c)-3;
  258. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  259. for (m = 1; m <= 5; m++) {
  260. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  261. ( u(m,i,j-2,k,c) - 4.0e0*u(m,i,j-1,k,c) +
  262. 6.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i,j+1,k,c) );
  263. }
  264. }
  265. j = cell_size(2,c)-2;
  266. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  267. for (m = 1; m <= 5; m++) {
  268. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  269. ( u(m,i,j-2,k,c) - 4.e0*u(m,i,j-1,k,c) +
  270. 5.e0*u(m,i,j,k,c) );
  271. }
  272. }
  273. }
  274. }
  275. //---------------------------------------------------------------------
  276. // compute zeta-direction fluxes
  277. //---------------------------------------------------------------------
  278. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  279. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  280. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  281. wijk = ws(i,j,k,c);
  282. wp1 = ws(i,j,k+1,c);
  283. wm1 = ws(i,j,k-1,c);
  284. rhs(1,i,j,k,c) = rhs(1,i,j,k,c) + dz1tz1 *
  285. (u(1,i,j,k+1,c) - 2.0e0*u(1,i,j,k,c) +
  286. u(1,i,j,k-1,c)) -
  287. tz2 * (u(4,i,j,k+1,c) - u(4,i,j,k-1,c));
  288. rhs(2,i,j,k,c) = rhs(2,i,j,k,c) + dz2tz1 *
  289. (u(2,i,j,k+1,c) - 2.0e0*u(2,i,j,k,c) +
  290. u(2,i,j,k-1,c)) +
  291. zzcon2 * (us(i,j,k+1,c) - 2.0e0*us(i,j,k,c) +
  292. us(i,j,k-1,c)) -
  293. tz2 * (u(2,i,j,k+1,c)*wp1 -
  294. u(2,i,j,k-1,c)*wm1);
  295. rhs(3,i,j,k,c) = rhs(3,i,j,k,c) + dz3tz1 *
  296. (u(3,i,j,k+1,c) - 2.0e0*u(3,i,j,k,c) +
  297. u(3,i,j,k-1,c)) +
  298. zzcon2 * (vs(i,j,k+1,c) - 2.0e0*vs(i,j,k,c) +
  299. vs(i,j,k-1,c)) -
  300. tz2 * (u(3,i,j,k+1,c)*wp1 -
  301. u(3,i,j,k-1,c)*wm1);
  302. rhs(4,i,j,k,c) = rhs(4,i,j,k,c) + dz4tz1 *
  303. (u(4,i,j,k+1,c) - 2.0e0*u(4,i,j,k,c) +
  304. u(4,i,j,k-1,c)) +
  305. zzcon2*con43 * (wp1 - 2.0e0*wijk + wm1) -
  306. tz2 * (u(4,i,j,k+1,c)*wp1 -
  307. u(4,i,j,k-1,c)*wm1 +
  308. (u(5,i,j,k+1,c) - square(i,j,k+1,c) -
  309. u(5,i,j,k-1,c) + square(i,j,k-1,c))
  310. *c2);
  311. rhs(5,i,j,k,c) = rhs(5,i,j,k,c) + dz5tz1 *
  312. (u(5,i,j,k+1,c) - 2.0e0*u(5,i,j,k,c) +
  313. u(5,i,j,k-1,c)) +
  314. zzcon3 * (qs(i,j,k+1,c) - 2.0e0*qs(i,j,k,c) +
  315. qs(i,j,k-1,c)) +
  316. zzcon4 * (wp1*wp1 - 2.0e0*wijk*wijk +
  317. wm1*wm1) +
  318. zzcon5 * (u(5,i,j,k+1,c)*rho_i(i,j,k+1,c) -
  319. 2.0e0*u(5,i,j,k,c)*rho_i(i,j,k,c) +
  320. u(5,i,j,k-1,c)*rho_i(i,j,k-1,c)) -
  321. tz2 * ( (c1*u(5,i,j,k+1,c) -
  322. c2*square(i,j,k+1,c))*wp1 -
  323. (c1*u(5,i,j,k-1,c) -
  324. c2*square(i,j,k-1,c))*wm1);
  325. }
  326. }
  327. }
  328. //---------------------------------------------------------------------
  329. // add fourth order zeta-direction dissipation
  330. //---------------------------------------------------------------------
  331. if (start(3,c) > 0) {
  332. k = 1;
  333. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  334. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  335. for (m = 1; m <= 5; m++) {
  336. rhs(m,i,j,k,c) = rhs(m,i,j,k,c)- dssp *
  337. ( 5.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i,j,k+1,c) +
  338. u(m,i,j,k+2,c));
  339. }
  340. }
  341. }
  342. k = 2;
  343. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  344. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  345. for (m = 1; m <= 5; m++) {
  346. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  347. (-4.0e0*u(m,i,j,k-1,c) + 6.0e0*u(m,i,j,k,c) -
  348. 4.0e0*u(m,i,j,k+1,c) + u(m,i,j,k+2,c));
  349. }
  350. }
  351. }
  352. }
  353. for (k = 3*start(3,c); k <= cell_size(3,c)-3*end(3,c)-1; k++) {
  354. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  355. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  356. for (m = 1; m <= 5; m++) {
  357. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  358. ( u(m,i,j,k-2,c) - 4.0e0*u(m,i,j,k-1,c) +
  359. 6.0*u(m,i,j,k,c) - 4.0e0*u(m,i,j,k+1,c) +
  360. u(m,i,j,k+2,c) );
  361. }
  362. }
  363. }
  364. }
  365. if (end(3,c) > 0) {
  366. k = cell_size(3,c)-3;
  367. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  368. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  369. for (m = 1; m <= 5; m++) {
  370. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  371. ( u(m,i,j,k-2,c) - 4.0e0*u(m,i,j,k-1,c) +
  372. 6.0e0*u(m,i,j,k,c) - 4.0e0*u(m,i,j,k+1,c) );
  373. }
  374. }
  375. }
  376. k = cell_size(3,c)-2;
  377. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  378. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  379. for (m = 1; m <= 5; m++) {
  380. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) - dssp *
  381. ( u(m,i,j,k-2,c) - 4.e0*u(m,i,j,k-1,c) +
  382. 5.e0*u(m,i,j,k,c) );
  383. }
  384. }
  385. }
  386. }
  387. for (k = start(3,c); k <= cell_size(3,c)-end(3,c)-1; k++) {
  388. for (j = start(2,c); j <= cell_size(2,c)-end(2,c)-1; j++) {
  389. for (i = start(1,c); i <= cell_size(1,c)-end(1,c)-1; i++) {
  390. for (m = 1; m <= 5; m++) {
  391. rhs(m,i,j,k,c) = rhs(m,i,j,k,c) * dt;
  392. }
  393. }
  394. }
  395. }
  396. }
  397. return;
  398. }