90 energy,qsourcesplit,active)
97 integer,
intent(in) :: ixI^L, ixO^L
98 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
99 double precision,
intent(inout) :: w(ixI^S,1:nw)
100 logical,
intent(in) :: energy,qsourcesplit
101 logical,
intent(inout) :: active
103 double precision:: lambda(ixI^S,ndir,ndir),tmp(ixI^S),vlambda(ixI^S,ndir),qdtmu,divv23,nabla_v(ndim,ndir)
105 logical :: total_energy=.false.
107 if(qsourcesplit .eqv.
vc_split)
then
109 if(energy.and..not.phys_internal_e) total_energy=.true.
115 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
116 call mpistop(
"error for viscous source addition, 2 layers needed")
121 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
122 call mpistop(
"error for viscous source addition"//&
123 "requested fourth order gradients: 4 layers needed")
128 {
do ix^db=ixmin^db,ixmax^db\}
130 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
132 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
134 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
136 lambda(ix^d,2,1)=(wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
138 lambda(ix^d,2,2)=(wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
140 lambda(ix^d,2,3)=(wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
142 lambda(ix^d,3,1)=(wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
144 lambda(ix^d,3,2)=(wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
146 lambda(ix^d,3,3)=(wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
147 if(phys_internal_e)
then
148 nabla_v(1,1)=lambda(ix^d,1,1)
149 nabla_v(1,2)=lambda(ix^d,1,2)
150 nabla_v(1,3)=lambda(ix^d,1,3)
151 nabla_v(2,1)=lambda(ix^d,2,1)
152 nabla_v(2,2)=lambda(ix^d,2,2)
153 nabla_v(2,3)=lambda(ix^d,2,3)
154 nabla_v(3,1)=lambda(ix^d,3,1)
155 nabla_v(3,2)=lambda(ix^d,3,2)
156 nabla_v(3,3)=lambda(ix^d,3,3)
159 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
160 lambda(ix^d,2,1)=lambda(ix^d,1,2)
161 lambda(ix^d,1,3)=lambda(ix^d,1,3)+lambda(ix^d,3,1)
162 lambda(ix^d,3,1)=lambda(ix^d,1,3)
163 lambda(ix^d,2,3)=lambda(ix^d,2,3)+lambda(ix^d,3,2)
164 lambda(ix^d,3,2)=lambda(ix^d,2,3)
165 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
166 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
167 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
168 lambda(ix^d,3,3)=two*lambda(ix^d,3,3)-divv23
169 if(total_energy)
then
170 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
171 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
172 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
174 if(phys_internal_e)
then
175 w(ix^d,e_)=w(ix^d,e_)+&
176 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
177 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
178 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
182 {
do ix^db=ixomin^db,ixomax^db\}
183 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
184 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
185 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdtmu+w(ix^d,mom(1))
186 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
187 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
188 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdtmu+w(ix^d,mom(2))
189 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
190 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
191 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdtmu+w(ix^d,mom(3))
195 {
do ix^db=ixmin^db,ixmax^db\}
197 lambda(ix^d,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
199 lambda(ix^d,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
201 lambda(ix^d,2,1)=(wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))
203 lambda(ix^d,2,2)=(wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))
204 if(phys_internal_e)
then
205 nabla_v(1,1)=lambda(ix^d,1,1)
206 nabla_v(1,2)=lambda(ix^d,1,2)
207 nabla_v(2,1)=lambda(ix^d,2,1)
208 nabla_v(2,2)=lambda(ix^d,2,2)
210 nabla_v(1,3)=lambda(ix^d,1,3)
211 nabla_v(2,3)=lambda(ix^d,2,3)
215 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
216 lambda(ix^d,2,1)=lambda(ix^d,1,2)
217 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
218 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
219 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
222 lambda(ix1,ix2,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
224 lambda(ix1,ix2,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))
225 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
226 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
227 lambda(ix1,ix2,3,3)=-divv23
228 if(total_energy)
then
229 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,1)
230 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,2)
231 vlambda(ix1,ix2,3)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,3)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,3)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,3)
233 if(phys_internal_e)
then
234 w(ix^d,e_)=w(ix^d,e_)+&
235 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
236 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)&
237 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3))
240 if(total_energy)
then
241 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
242 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
244 if(phys_internal_e)
then
245 w(ix^d,e_)=w(ix^d,e_)+&
246 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
247 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
252 {
do ix^db=ixomin^db,ixomax^db\}
253 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
254 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdtmu+w(ix^d,mom(1))
255 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
256 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdtmu+w(ix^d,mom(2))
258 w(ix1,ix2,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
259 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdtmu+w(ix1,ix2,mom(3))
266 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
268 if(phys_internal_e)
then
269 nabla_v(1,1)=lambda(ix^d,1,1)
271 divv23=two*third*lambda(ix1,1,1)
272 lambda(ix1,1,1)=two*lambda(ix1,1,1)-divv23
275 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
276 if(phys_internal_e) nabla_v(1,2)=lambda(ix^d,1,2)
278 lambda(ix1,2,1)=lambda(ix1,1,2)
279 lambda(ix1,2,2)=-divv23
280 if(total_energy)
then
281 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
282 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
284 if(phys_internal_e)
then
285 w(ix^d,e_)=w(ix^d,e_)+&
286 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)&
287 +lambda(ix^d,1,2)*nabla_v(1,2))
289 else if(ndir==3)
then
291 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
293 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
294 if(phys_internal_e)
then
295 nabla_v(1,2)=lambda(ix^d,1,2)
296 nabla_v(1,3)=lambda(ix^d,1,3)
299 lambda(ix1,2,1)=lambda(ix1,1,2)
300 lambda(ix1,2,2)=-divv23
301 lambda(ix1,3,1)=lambda(ix1,1,3)
302 lambda(ix1,3,3)=-divv23
303 if(total_energy)
then
304 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
305 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
306 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
308 if(phys_internal_e)
then
309 w(ix^d,e_)=w(ix^d,e_)+&
310 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)&
311 +lambda(ix^d,1,2)*nabla_v(1,2)&
312 +lambda(ix^d,1,3)*nabla_v(1,3))
315 if(total_energy)
then
316 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
318 if(phys_internal_e)
then
319 w(ix^d,e_)=w(ix^d,e_)+&
320 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1))
325 do ix1=ixomin1,ixomax1
327 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(1))
328 else if(ndir==2)
then
329 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(1))
330 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(2))
332 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(1))
333 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(2))
334 w(ix1,mom(3))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix1,mom(3))
338 if(total_energy)
then
341 call divvector(vlambda,ixi^l,ixo^l,tmp)
342 w(ixo^s,e_)=w(ixo^s,e_)+tmp(ixo^s)*qdtmu
349 energy,qsourcesplit,active)
356 integer,
intent(in) :: ixI^L, ixO^L
357 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
358 double precision,
intent(inout) :: w(ixI^S,1:nw)
359 logical,
intent(in) :: energy,qsourcesplit
360 logical,
intent(inout) :: active
362 double precision :: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S),tctan(ixI^S),invrsin(ixI^S),nabla_v(ndir,ndir)
363 double precision :: qdtmu,tsin,tcos,divv23
365 logical :: total_energy=.false.
367 if(qsourcesplit .eqv.
vc_split)
then
369 if(energy.and..not.phys_internal_e) total_energy=.true.
375 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
376 call mpistop(
"error for viscous source addition, 2 layers needed")
381 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
382 call mpistop(
"error for viscous source addition"//&
383 "requested fourth order gradients: 4 layers needed")
391 {
do ix^db=ixmin^db,ixmax^db\}
392 invr(ix^d)=1.d0/x(ix^d,1)
395 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
397 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
399 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
401 lambda(ix^d,2,1)=((wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))-wp(ix^d,
v2_))*invr(ix^d)
403 lambda(ix^d,2,2)=((wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v1_))*invr(ix^d)
405 lambda(ix^d,2,3)=((wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v2_)*tcos)*invr(ix^d)
407 invrsin(ix^d)=invr(ix^d)/tsin
408 tctan(ix^d)=tcos/tsin
410 lambda(ix^d,3,1)=((wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))-wp(ix^d,
v3_)*tsin)*invrsin(ix^d)
412 lambda(ix^d,3,2)=((wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))-wp(ix^d,
v3_)*tcos)*invrsin(ix^d)
414 lambda(ix^d,3,3)=((wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+wp(ix^d,
v1_)*tsin+&
415 wp(ix^d,
v2_)*tcos)*invrsin(ix^d)
416 if(phys_internal_e)
then
417 nabla_v(1,1)=lambda(ix^d,1,1)
418 nabla_v(1,2)=lambda(ix^d,1,2)
419 nabla_v(1,3)=lambda(ix^d,1,3)
420 nabla_v(2,1)=lambda(ix^d,2,1)
421 nabla_v(2,2)=lambda(ix^d,2,2)
422 nabla_v(2,3)=lambda(ix^d,2,3)
423 nabla_v(3,1)=lambda(ix^d,3,1)
424 nabla_v(3,2)=lambda(ix^d,3,2)
425 nabla_v(3,3)=lambda(ix^d,3,3)
428 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
429 lambda(ix^d,2,1)=lambda(ix^d,1,2)
430 lambda(ix^d,1,3)=lambda(ix^d,1,3)+lambda(ix^d,3,1)
431 lambda(ix^d,3,1)=lambda(ix^d,1,3)
432 lambda(ix^d,2,3)=lambda(ix^d,2,3)+lambda(ix^d,3,2)
433 lambda(ix^d,3,2)=lambda(ix^d,2,3)
434 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
435 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
436 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
437 lambda(ix^d,3,3)=two*lambda(ix^d,3,3)-divv23
438 if(total_energy)
then
439 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
440 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
441 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
443 if(phys_internal_e)
then
444 w(ix^d,e_)=w(ix^d,e_)+&
445 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
446 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
447 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
451 {
do ix^db=ixomin^db,ixomax^db\}
452 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
453 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
454 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
455 two*lambda(ix^d,1,1)*invr(ix^d)+lambda(ix^d,2,1)*invr(ix^d)*tctan(ix^d))*qdtmu+w(ix^d,mom(1))
456 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
457 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
458 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
459 two*lambda(ix^d,1,2)*invr(ix^d)+lambda(ix^d,2,2)*invr(ix^d)*tctan(ix^d)-lambda(ix^d,3,3)*tctan(ix^d)*invr(ix^d)**2)*qdtmu+&
461 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
462 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
463 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
464 two*lambda(ix^d,1,3)*invr(ix^d)+lambda(ix^d,2,3)*(invr(ix^d)+invr(ix^d)**2)*tctan(ix^d))*qdtmu+w(ix^d,mom(3))
468 {
do ix^db=ixmin^db,ixmax^db\}
469 invr(ix1,ix2)=1.d0/x(ix1,ix2,1)
471 lambda(ix1,ix2,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
473 lambda(ix1,ix2,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
475 lambda(ix1,ix2,2,1)=((wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))-wp(ix1,ix2,
v2_))*invr(ix1,ix2)
477 lambda(ix1,ix2,2,2)=((wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix1,ix2,
v1_))*invr(ix1,ix2)
478 tcos=dcos(x(ix1,ix2,2))
479 tsin=dsin(x(ix1,ix2,2))
480 tctan(ix1,ix2)=tcos/tsin
482 if(phys_internal_e)
then
483 nabla_v(1,1)=lambda(ix^d,1,1)
484 nabla_v(1,2)=lambda(ix^d,1,2)
485 nabla_v(2,1)=lambda(ix^d,2,1)
486 nabla_v(2,2)=lambda(ix^d,2,2)
489 lambda(ix1,ix2,1,2)=lambda(ix1,ix2,1,2)+lambda(ix1,ix2,2,1)
490 lambda(ix1,ix2,2,1)=lambda(ix1,ix2,1,2)
491 divv23=two*third*(lambda(ix1,ix2,1,1)+lambda(ix1,ix2,2,2))
492 lambda(ix1,ix2,1,1)=two*lambda(ix1,ix2,1,1)-divv23
493 lambda(ix1,ix2,2,2)=two*lambda(ix1,ix2,2,2)-divv23
494 if(total_energy)
then
495 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
496 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
498 if(phys_internal_e)
then
499 w(ix^d,e_)=w(ix^d,e_)+&
500 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
501 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
504 invrsin(ix1,ix2)=invr(ix1,ix2)/tsin
506 lambda(ix1,ix2,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
508 lambda(ix1,ix2,2,3)=((wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix1,ix2,
v2_)*tcos)*invr(ix1,ix2)
510 lambda(ix1,ix2,3,1)=-wp(ix1,ix2,
v3_)*tsin*invrsin(ix1,ix2)
512 lambda(ix1,ix2,3,2)=-wp(ix1,ix2,
v3_)*tcos*invrsin(ix1,ix2)
514 lambda(ix1,ix2,3,3)=(wp(ix1,ix2,
v1_)*tsin+wp(ix1,ix2,
v2_)*tcos)*invrsin(ix1,ix2)
515 if(phys_internal_e)
then
516 nabla_v(1,1)=lambda(ix^d,1,1)
517 nabla_v(1,2)=lambda(ix^d,1,2)
518 nabla_v(1,3)=lambda(ix^d,1,3)
519 nabla_v(2,1)=lambda(ix^d,2,1)
520 nabla_v(2,2)=lambda(ix^d,2,2)
521 nabla_v(2,3)=lambda(ix^d,2,3)
522 nabla_v(3,1)=lambda(ix^d,3,1)
523 nabla_v(3,2)=lambda(ix^d,3,2)
524 nabla_v(3,3)=lambda(ix^d,3,3)
527 lambda(ix1,ix2,1,2)=lambda(ix1,ix2,1,2)+lambda(ix1,ix2,2,1)
528 lambda(ix1,ix2,2,1)=lambda(ix1,ix2,1,2)
529 lambda(ix1,ix2,1,3)=lambda(ix1,ix2,1,3)+lambda(ix1,ix2,3,1)
530 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
531 lambda(ix1,ix2,2,3)=lambda(ix1,ix2,2,3)+lambda(ix1,ix2,3,2)
532 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
533 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
534 lambda(ix1,ix2,1,1)=two*lambda(ix1,ix2,1,1)-divv23
535 lambda(ix1,ix2,2,2)=two*lambda(ix1,ix2,2,2)-divv23
536 lambda(ix1,ix2,3,3)=two*lambda(ix1,ix2,3,3)-divv23
537 if(total_energy)
then
538 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,1)
539 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,2)
540 vlambda(ix1,ix2,3)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,3)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,3)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,3)
542 if(phys_internal_e)
then
543 w(ix^d,e_)=w(ix^d,e_)+&
544 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
545 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
546 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
551 {
do ix^db=ixomin^db,ixomax^db\}
553 w(ix1,ix2,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
554 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
555 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2))*qdtmu+w(ix1,ix2,mom(1))
556 w(ix1,ix2,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
557 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
558 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2))*qdtmu+w(ix1,ix2,mom(2))
560 w(ix1,ix2,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
561 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
562 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2))*qdtmu+w(ix1,ix2,mom(1))
563 w(ix1,ix2,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
564 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
565 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2)-&
566 lambda(ix1,ix2,3,3)*tctan(ix1,ix2)*invr(ix1,ix2)**2)*qdtmu+w(ix1,ix2,mom(2))
567 w(ix1,ix2,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
568 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
569 two*lambda(ix1,ix2,1,3)*invr(ix1,ix2)+lambda(ix1,ix2,2,3)*(invr(ix1,ix2)+invr(ix1,ix2)**2)*tctan(ix1,ix2))*qdtmu+&
576 invr(ix1)=1.d0/x(ix1,1)
578 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
580 if(phys_internal_e)
then
581 nabla_v(1,1)=lambda(ix^d,1,1)
583 divv23=two*third*lambda(ix1,1,1)
584 lambda(ix1,1,1)=two*lambda(ix1,1,1)-divv23
585 if(total_energy)
then
586 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
588 if(phys_internal_e)
then
589 w(ix^d,e_)=w(ix^d,e_)+&
590 qdtmu*lambda(ix^d,1,1)*nabla_v(1,1)
592 else if(ndir==2)
then
594 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
595 lambda(ix1,2,2)=-divv23
596 if(phys_internal_e)
then
597 nabla_v(1,1)=lambda(ix^d,1,1)
598 nabla_v(1,2)=lambda(ix^d,1,2)
599 nabla_v(2,1)=lambda(ix^d,2,1)
600 nabla_v(2,2)=lambda(ix^d,2,2)
603 lambda(ix1,2,1)=lambda(ix1,1,2)
604 divv23=two*third*(lambda(ix1,1,1)+lambda(ix1,2,2))
605 lambda(ix1,1,1)=two*lambda(ix1,1,1)-divv23
606 lambda(ix1,2,2)=two*lambda(ix1,2,2)-divv23
607 if(total_energy)
then
608 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
609 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
611 if(phys_internal_e)
then
612 w(ix^d,e_)=w(ix^d,e_)+&
613 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
614 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
620 invrsin(ix1)=invr(ix1)/tsin
621 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
622 lambda(ix1,3,1)=-wp(ix1,
v3_)*tsin*invrsin(ix1)
623 lambda(ix1,2,3)=wp(ix1,
v2_)*tcos*invr(ix1)
624 lambda(ix1,3,2)=-wp(ix1,
v3_)*tcos*invrsin(ix1)
625 lambda(ix1,3,3)=(wp(ix1,
v1_)*tsin+wp(ix1,
v2_)*tcos)*invrsin(ix1)
626 if(phys_internal_e)
then
627 nabla_v(1,1)=lambda(ix^d,1,1)
628 nabla_v(1,2)=lambda(ix^d,1,2)
629 nabla_v(1,3)=lambda(ix^d,1,3)
630 nabla_v(2,1)=lambda(ix^d,2,1)
631 nabla_v(2,2)=lambda(ix^d,2,2)
632 nabla_v(2,3)=lambda(ix^d,2,3)
633 nabla_v(3,1)=lambda(ix^d,3,1)
634 nabla_v(3,2)=lambda(ix^d,3,2)
635 nabla_v(3,3)=lambda(ix^d,3,3)
638 lambda(ix1,1,3)=lambda(ix1,1,3)+lambda(ix1,3,1)
639 lambda(ix1,3,1)=lambda(ix1,1,3)
640 lambda(ix1,2,3)=lambda(ix1,2,3)+lambda(ix1,3,2)
641 lambda(ix1,2,3)=lambda(ix1,3,2)
642 divv23=two*third*(lambda(ix1,1,1)+lambda(ix1,2,2)+lambda(ix1,3,3))
643 lambda(ix1,1,1)=two*lambda(ix1,1,1)-divv23
644 lambda(ix1,2,2)=two*lambda(ix1,2,2)-divv23
645 lambda(ix1,3,3)=two*lambda(ix1,3,3)-divv23
646 if(total_energy)
then
647 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
648 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
649 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
651 if(phys_internal_e)
then
652 w(ix^d,e_)=w(ix^d,e_)+&
653 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
654 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
655 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
660 do ix1=ixomin1,ixomax1
662 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
663 two*lambda(ix1,1,1)*invr(ix1))*qdtmu+w(ix1,mom(1))
664 else if(ndir==2)
then
665 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
666 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1))*qdtmu+w(ix1,mom(1))
667 w(ix1,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
668 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1))*qdtmu+w(ix1,mom(2))
670 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
671 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1))*qdtmu+w(ix1,mom(1))
672 w(ix1,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
673 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1)-lambda(ix1,3,3)*tctan(ix1)*invr(ix1)**2)*qdtmu+&
675 w(ix1,mom(3))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
676 two*lambda(ix1,1,3)*invr(ix1)+lambda(ix1,2,3)*(invr(ix1)+invr(ix1)**2)*tctan(ix1))*qdtmu+w(ix1,mom(3))
680 if(total_energy)
then
683 call divvector(vlambda,ixi^l,ixo^l,invr)
684 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)*qdtmu
692 energy,qsourcesplit,active)
699 integer,
intent(in) :: ixI^L, ixO^L
700 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
701 double precision,
intent(inout) :: w(ixI^S,1:nw)
702 logical,
intent(in) :: energy,qsourcesplit
703 logical,
intent(inout) :: active
705 double precision:: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S),nabla_v(ndir,ndir)
706 double precision :: qdtmu,divv23
708 logical :: total_energy=.false.
710 if(qsourcesplit .eqv.
vc_split)
then
712 if(energy.and..not.phys_internal_e) total_energy=.true.
718 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
719 call mpistop(
"error for viscous source addition, 2 layers needed")
724 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
725 call mpistop(
"error for viscous source addition"//&
726 "requested fourth order gradients: 4 layers needed")
734 {
do ix^db=ixmin^db,ixmax^db\}
735 invr(ix^d)=1.d0/x(ix^d,1)
737 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
739 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
741 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
743 lambda(ix^d,2,1)=((wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))-wp(ix^d,
v2_))*invr(ix^d)
745 lambda(ix^d,2,2)=((wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v1_))*invr(ix^d)
747 lambda(ix^d,2,3)=(wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)
749 lambda(ix^d,3,1)=(wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
751 lambda(ix^d,3,2)=(wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
753 lambda(ix^d,3,3)=(wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
754 if(phys_internal_e)
then
755 nabla_v(1,1)=lambda(ix^d,1,1)
756 nabla_v(1,2)=lambda(ix^d,1,2)
757 nabla_v(1,3)=lambda(ix^d,1,3)
758 nabla_v(2,1)=lambda(ix^d,2,1)
759 nabla_v(2,2)=lambda(ix^d,2,2)
760 nabla_v(2,3)=lambda(ix^d,2,3)
761 nabla_v(3,1)=lambda(ix^d,3,1)
762 nabla_v(3,2)=lambda(ix^d,3,2)
763 nabla_v(3,3)=lambda(ix^d,3,3)
766 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
767 lambda(ix^d,2,1)=lambda(ix^d,1,2)
768 lambda(ix^d,1,3)=lambda(ix^d,1,3)+lambda(ix^d,3,1)
769 lambda(ix^d,3,1)=lambda(ix^d,1,3)
770 lambda(ix^d,2,3)=lambda(ix^d,2,3)+lambda(ix^d,3,2)
771 lambda(ix^d,3,2)=lambda(ix^d,2,3)
772 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
773 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
774 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
775 lambda(ix^d,3,3)=two*lambda(ix^d,3,3)-divv23
776 if(total_energy)
then
777 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
778 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
779 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
781 if(phys_internal_e)
then
782 w(ix^d,e_)=w(ix^d,e_)+&
783 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
784 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
785 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
789 {
do ix^db=ixomin^db,ixomax^db\}
790 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
791 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
792 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
793 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
794 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
795 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
796 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
797 two*lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
798 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
799 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
800 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
801 lambda(ix^d,1,3)*invr(ix^d))*qdtmu+w(ix^d,mom(3))
805 {
do ix^db=ixmin^db,ixmax^db\}
806 invr(ix^d)=1.d0/x(ix^d,1)
808 lambda(ix^d,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
810 lambda(ix^d,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
813 lambda(ix^d,2,1)=((wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))-wp(ix^d,
v2_))*invr(ix^d)
815 lambda(ix^d,2,2)=((wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix^d,
v1_))*invr(ix^d)
817 lambda(ix^d,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
819 lambda(ix^d,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
821 lambda(ix^d,3,1)=0.d0
823 lambda(ix^d,3,2)=0.d0
825 lambda(ix^d,3,3)=0.d0
829 lambda(ix^d,2,1)=(wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
831 lambda(ix^d,2,2)=(wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
833 lambda(ix^d,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
835 lambda(ix^d,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
837 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
839 lambda(ix^d,3,2)=0.d0
841 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)
845 if(phys_internal_e)
then
846 nabla_v(1,1)=lambda(ix^d,1,1)
847 nabla_v(1,2)=lambda(ix^d,1,2)
848 nabla_v(1,3)=lambda(ix^d,1,3)
849 nabla_v(2,1)=lambda(ix^d,2,1)
850 nabla_v(2,2)=lambda(ix^d,2,2)
851 nabla_v(2,3)=lambda(ix^d,2,3)
852 nabla_v(3,1)=lambda(ix^d,3,1)
853 nabla_v(3,2)=lambda(ix^d,3,2)
854 nabla_v(3,3)=lambda(ix^d,3,3)
857 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
858 lambda(ix^d,2,1)=lambda(ix^d,1,2)
859 lambda(ix^d,1,3)=lambda(ix^d,1,3)+lambda(ix^d,3,1)
860 lambda(ix^d,3,1)=lambda(ix^d,1,3)
861 lambda(ix^d,2,3)=lambda(ix^d,2,3)+lambda(ix^d,3,2)
862 lambda(ix^d,3,2)=lambda(ix^d,2,3)
863 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
864 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
865 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
866 lambda(ix^d,3,3)=two*lambda(ix^d,3,3)-divv23
867 if(total_energy)
then
868 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
869 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
870 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
872 if(phys_internal_e)
then
873 w(ix^d,e_)=w(ix^d,e_)+&
874 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
875 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
876 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
879 if(phys_internal_e)
then
880 nabla_v(1,1)=lambda(ix^d,1,1)
881 nabla_v(1,2)=lambda(ix^d,1,2)
882 nabla_v(2,1)=lambda(ix^d,2,1)
883 nabla_v(2,2)=lambda(ix^d,2,2)
886 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
887 lambda(ix^d,2,1)=lambda(ix^d,1,2)
888 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
889 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
890 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
891 if(total_energy)
then
892 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
893 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
895 if(phys_internal_e)
then
896 w(ix^d,e_)=w(ix^d,e_)+&
897 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
898 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
903 {
do ix^db=ixomin^db,ixomax^db\}
906 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
907 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
908 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
909 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
910 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
911 two*lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
913 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
914 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
915 lambda(ix^d,1,1)*invr(ix^d))*qdtmu+w(ix^d,mom(1))
916 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
917 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
918 lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
922 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
923 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
924 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
925 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
926 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
927 two*lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
928 w(ix^d,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
929 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
930 lambda(ix^d,1,3)*invr(ix^d))*qdtmu+w(ix^d,mom(3))
932 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
933 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
934 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
935 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
936 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
937 two*lambda(ix^d,1,3)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
938 w(ix^d,mom(3))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
939 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
940 lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(3))
946 {
do ix^db=ixmin^db,ixmax^db\}
947 invr(ix^d)=1.d0/x(ix^d,1)
950 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
951 if(phys_internal_e)
then
952 nabla_v(1,1)=lambda(ix^d,1,1)
954 divv23=two*third*lambda(ix^d,1,1)
955 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
956 if(total_energy)
then
957 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)
959 if(phys_internal_e)
then
960 w(ix^d,e_)=w(ix^d,e_)+&
961 qdtmu*lambda(ix^d,1,1)*nabla_v(1,1)
963 else if(ndir==2)
then
965 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
967 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
970 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
972 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)
975 lambda(ix^d,2,1)=0.d0
977 lambda(ix^d,2,2)=0.d0
979 if(phys_internal_e)
then
980 nabla_v(1,1)=lambda(ix^d,1,1)
981 nabla_v(1,2)=lambda(ix^d,1,2)
982 nabla_v(2,1)=lambda(ix^d,2,1)
983 nabla_v(2,2)=lambda(ix^d,2,2)
986 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
987 lambda(ix^d,2,1)=lambda(ix^d,1,2)
988 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
989 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
990 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
991 if(total_energy)
then
992 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
993 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
995 if(phys_internal_e)
then
996 w(ix^d,e_)=w(ix^d,e_)+&
997 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
998 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
1002 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
1004 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
1006 lambda(ix^d,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
1009 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
1011 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)
1013 lambda(ix^d,2,3)=0.d0
1015 lambda(ix^d,3,1)=0.d0
1017 lambda(ix^d,3,2)=0.d0
1019 lambda(ix^d,3,3)=0.d0
1022 lambda(ix^d,2,1)=0.d0
1024 lambda(ix^d,2,2)=0.d0
1026 lambda(ix^d,2,3)=0.d0
1028 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
1030 lambda(ix^d,3,2)=0.d0
1032 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)
1034 if(phys_internal_e)
then
1035 nabla_v(1,1)=lambda(ix^d,1,1)
1036 nabla_v(1,2)=lambda(ix^d,1,2)
1037 nabla_v(1,3)=lambda(ix^d,1,3)
1038 nabla_v(2,1)=lambda(ix^d,2,1)
1039 nabla_v(2,2)=lambda(ix^d,2,2)
1040 nabla_v(2,3)=lambda(ix^d,2,3)
1041 nabla_v(3,1)=lambda(ix^d,3,1)
1042 nabla_v(3,2)=lambda(ix^d,3,2)
1043 nabla_v(3,3)=lambda(ix^d,3,3)
1046 lambda(ix^d,1,2)=lambda(ix^d,1,2)+lambda(ix^d,2,1)
1047 lambda(ix^d,2,1)=lambda(ix^d,1,2)
1048 lambda(ix^d,1,3)=lambda(ix^d,1,3)+lambda(ix^d,3,1)
1049 lambda(ix^d,3,1)=lambda(ix^d,1,3)
1050 lambda(ix^d,2,3)=lambda(ix^d,2,3)+lambda(ix^d,3,2)
1051 lambda(ix^d,3,2)=lambda(ix^d,2,3)
1052 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
1053 lambda(ix^d,1,1)=two*lambda(ix^d,1,1)-divv23
1054 lambda(ix^d,2,2)=two*lambda(ix^d,2,2)-divv23
1055 lambda(ix^d,3,3)=two*lambda(ix^d,3,3)-divv23
1056 if(total_energy)
then
1057 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
1058 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
1059 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
1061 if(phys_internal_e)
then
1062 w(ix^d,e_)=w(ix^d,e_)+&
1063 qdtmu*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
1064 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
1065 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
1070 {
do ix^db=ixomin^db,ixomax^db\}
1072 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu+w(ix^d,mom(1))
1073 else if(ndir==2)
then
1075 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1076 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
1077 w(ix^d,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1078 two*lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
1080 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1081 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
1085 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1086 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
1087 w(ix^d,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1088 two*lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
1089 w(ix^d,mom(3))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
1090 lambda(ix^d,1,3)*invr(ix^d))*qdtmu+w(ix^d,mom(3))
1092 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1093 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdtmu+w(ix^d,mom(1))
1094 w(ix^d,mom(2))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
1095 two*lambda(ix^d,1,3)*invr(ix^d))*qdtmu+w(ix^d,mom(2))
1096 w(ix^d,mom(3))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1097 lambda(ix^d,1,2)*invr(ix^d))*qdtmu+w(ix^d,mom(3))
1102 if(total_energy)
then
1105 call divvector(vlambda,ixi^l,ixo^l,invr)
1106 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)*qdtmu