Target field for Part B: an exact axisymmetric "quadrupole" toroidal background plus a broadband toroidal field built from applied to an equator-centered Gaussian bump generating function (see module docstring for the closed-form derivatives and why , not , is needed to force / to vanish exactly at both poles) -- purely toroidal by construction in both pieces.
Returns: The target vector field , complex 3-vector.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | THETA |
Colatitude in radians, . |
||
| real(kind=dp), | intent(in) | :: | PHI |
Longitude in radians, . |
FUNCTION FIELD_QUAD_BUMP(THETA, PHI) RESULT(F) IMPLICIT NONE REAL(KIND=dp), INTENT(IN) :: THETA REAL(KIND=dp), INTENT(IN) :: PHI COMPLEX(KIND=dp), DIMENSION(3) :: F REAL(KIND=dp) :: ENV, SIN2TH, B_THETA, B_PHI COMPLEX(KIND=dp), DIMENSION(3) :: QUAD QUAD = A_QUAD * PVSH_TOR(2, 0, THETA, PHI) ENV = DEXP(-(THETA-0.5d0*pi)**2/(2.d0*SIGMA_B**2)) SIN2TH = DSIN(THETA)**2 B_THETA = 0.5d0 * ENV * DSIN(THETA) * DSIN(PHI) B_PHI = ENV * ( -((THETA-0.5d0*pi)/SIGMA_B**2)*SIN2TH + & DSIN(2.d0*THETA) ) * (1.d0 + 0.5d0*DCOS(PHI)) F(1) = QUAD(1) F(2) = QUAD(2) + DCMPLX(B_THETA, 0.d0) F(3) = QUAD(3) + DCMPLX(B_PHI, 0.d0) END FUNCTION FIELD_QUAD_BUMP