@@ -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