Skip to content

Commit 15ce993

Browse files
author
Loren
committed
put horizontal and vertical diffusivities in here
1 parent df1bcc4 commit 15ce993

File tree

2 files changed

+153
-0
lines changed

2 files changed

+153
-0
lines changed

src/Diagnostics/Diagnostics_Base.F90

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,18 @@ Module Diagnostics_Base
301301
Integer, Parameter :: ialtcomp_t2 = ialt_offset4 + 5 + comp_offset
302302
Integer, Parameter :: ialtcomp_p2 = ialt_offset4 + 6 + comp_offset
303303

304+
Integer, Parameter :: idiff_r1 = ialt_offset4 + 1 + comp_offset + 6
305+
Integer, Parameter :: idiff_t1 = ialt_offset4 + 2 + comp_offset + 6
306+
Integer, Parameter :: idiff_p1 = ialt_offset4 + 3 + comp_offset + 6
307+
308+
Integer, Parameter :: idiff_r2 = ialt_offset4 + 4 + comp_offset + 6
309+
Integer, Parameter :: idiff_t2 = ialt_offset4 + 5 + comp_offset + 6
310+
Integer, Parameter :: idiff_p2 = ialt_offset4 + 6 + comp_offset + 6
311+
312+
Integer, Parameter :: idiff_r3 = ialt_offset4 + 7 + comp_offset + 6
313+
Integer, Parameter :: idiff_t3 = ialt_offset4 + 8 + comp_offset + 6
314+
Integer, Parameter :: idiff_p3 = ialt_offset4 + 9 + comp_offset + 6
315+
304316
! bit more breakup, start at 3300
305317
! comp
306318
! vgrad

src/Diagnostics/Diagnostics_Custom.F90

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,6 +1401,147 @@ Subroutine Custom_MHD_Diagnostics(buffer)
14011401
Call Add_Quantity(qty)
14021402
Endif
14031403

1404+
! VERTICAL and HORIZONTAL diffusions of magnetic field
1405+
1406+
If (compute_quantity(idiff_r1)) Then
1407+
1408+
DO_PSI
1409+
! Del^2 {B_r}
1410+
del2b = DDBUFF(PSI,dbrdrdr)+Two_Over_R(r)*buffer(PSI,dbrdr)
1411+
qty(PSI) = eta(r)*del2b
1412+
END_DO
1413+
1414+
Call Add_Quantity(qty)
1415+
1416+
Endif
1417+
1418+
If (compute_quantity(idiff_r2)) Then
1419+
1420+
DO_PSI
1421+
! Del^2 {B_r}
1422+
del2b = OneOverRSquared(r)*(DDBUFF(PSI,dbrdtdt)+cottheta(t)*buffer(PSI,dbrdt))
1423+
del2b = del2b+OneOverRSquared(r)*DDBUFF(PSI,dbrdpdp)*ovs2theta(t)
1424+
qty(PSI) = eta(r)*del2b
1425+
END_DO
1426+
1427+
Call Add_Quantity(qty)
1428+
1429+
Endif
1430+
1431+
If (compute_quantity(idiff_r3)) Then
1432+
1433+
DO_PSI
1434+
!Add geometric terms to make this { Del^2{B} }_r
1435+
del2b = -2.0d0*OneOverRsquared(r)*( &
1436+
buffer(PSI,br) + &
1437+
buffer(PSI,dbtdt)+buffer(PSI,btheta)*cottheta(t) + &
1438+
ovstheta(t)*buffer(PSI,dbpdp) )
1439+
qty(PSI) = eta(r)*del2b
1440+
END_DO
1441+
1442+
Call Add_Quantity(qty)
1443+
1444+
Endif
1445+
1446+
!Theta-direction; Full
1447+
If (compute_quantity(idiff_t1)) Then
1448+
1449+
DO_PSI
1450+
1451+
! Del^2 {B_theta}
1452+
del2b = DDBUFF(PSI,dbtdrdr)+Two_Over_R(r)*buffer(PSI,dbtdr)
1453+
qty(PSI) = eta(r)*del2b
1454+
1455+
END_DO
1456+
1457+
Call Add_Quantity(qty)
1458+
1459+
Endif
1460+
1461+
If (compute_quantity(idiff_t2)) Then
1462+
1463+
DO_PSI
1464+
1465+
! Del^2 {B_theta}
1466+
del2b = OneOverRSquared(r)*(DDBUFF(PSI,dbtdtdt)+cottheta(t)*buffer(PSI,dbtdt))
1467+
del2b = del2b+OneOverRSquared(r)*DDBUFF(PSI,dbtdpdp)*ovs2theta(t)
1468+
1469+
! Add the contribution from a gradient in eta
1470+
qty(PSI) = eta(r)*del2b
1471+
1472+
END_DO
1473+
1474+
Call Add_Quantity(qty)
1475+
1476+
Endif
1477+
1478+
If (compute_quantity(idiff_t3)) Then
1479+
1480+
DO_PSI
1481+
1482+
!Add geometric terms to make this { Del^2{B} }_theta
1483+
del2b = OneOverRSquared(r)*( 2.0d0*buffer(PSI,dbrdt) - &
1484+
ovs2theta(t)*( buffer(PSI,btheta) + &
1485+
2.0d0*costheta(t)*buffer(PSI,dbpdp) ) )
1486+
1487+
! Add the contribution from a gradient in eta
1488+
qty(PSI) = eta(r)*(del2b+buffer(PSI,curlbphi)*dlneta(r))
1489+
1490+
END_DO
1491+
1492+
Call Add_Quantity(qty)
1493+
1494+
Endif
1495+
1496+
!Phi-direction
1497+
If (compute_quantity(idiff_p1)) Then
1498+
1499+
DO_PSI
1500+
! build Del^2{B_phi}
1501+
del2b = DDBUFF(PSI,dbpdrdr)+Two_Over_R(r)*buffer(PSI,dbpdr)
1502+
1503+
qty(PSI) = eta(r)*del2b
1504+
1505+
END_DO
1506+
1507+
Call Add_Quantity(qty)
1508+
1509+
Endif
1510+
1511+
If (compute_quantity(idiff_p2)) Then
1512+
1513+
DO_PSI
1514+
! build Del^2{B_phi}
1515+
del2b = OneOverRSquared(r)*(DDBUFF(PSI,dbpdtdt)+cottheta(t)*buffer(PSI,dbpdt))
1516+
del2b = del2b+OneOverRSquared(r)*DDBUFF(PSI,dbpdpdp)*ovs2theta(t)
1517+
1518+
qty(PSI) = eta(r)*del2b
1519+
1520+
END_DO
1521+
1522+
Call Add_Quantity(qty)
1523+
1524+
Endif
1525+
1526+
If (compute_quantity(idiff_p3)) Then
1527+
1528+
DO_PSI
1529+
1530+
1531+
!Add geometric terms to make this { Del^2{u} }_phi
1532+
del2b = OneOverRSquared(r)*( 2.0d0*buffer(PSI,dbrdp)*ovstheta(t) - &
1533+
ovs2theta(t)*( buffer(PSI,bphi) - &
1534+
2.0d0*costheta(t)*buffer(PSI,dbtdp) ) )
1535+
1536+
qty(PSI) = eta(r)*(del2b-buffer(PSI,curlbtheta)*dlneta(r))
1537+
1538+
END_DO
1539+
1540+
Call Add_Quantity(qty)
1541+
1542+
Endif
1543+
1544+
14041545
DeAllocate(ind_work_r)
14051546
DeAllocate(ind_work_t)
14061547
DeAllocate(ind_work_p)

0 commit comments

Comments
 (0)