#NEWLINE# def _AhVec( self , m , vec ) : #NEWLINE# #INDENT# '\n            :param numpy.array m: Conductivity model\n            :param simpegEM.TDEM.FieldsTDEM vec: Fields object\n            :rtype: simpegEM.TDEM.FieldsTDEM\n            :return: f\n\n            Multiply the matrix \\\\(\\\\hat{A}\\\\) by a fields vector where\n\n            .. math::\n                \\mathbf{\\hat{A}} = \\left[\n                    \\begin{array}{cccc}\n                        A & 0 & & \\\\\n                        B & A & & \\\\\n                        & \\ddots & \\ddots & \\\\\n                        & & B & A\n                    \\end{array}\n                \\right] \\\\\n                \\mathbf{A} =\n                \\left[\n                    \\begin{array}{cc}\n                        \\frac{1}{\\delta t} \\MfMui & \\MfMui\\dcurl \\\\\n                        \\dcurl^\\top \\MfMui & -\\MeSig\n                    \\end{array}\n                \\right] \\\\\n                \\mathbf{B} =\n                \\left[\n                    \\begin{array}{cc}\n                        -\\frac{1}{\\delta t} \\MfMui & 0 \\\\\n                        0 & 0\n                    \\end{array}\n                \\right] \\\\\n        ' #NEWLINE# self . curModel = m #NEWLINE# f = FieldsTDEM ( self . mesh , self . survey ) #NEWLINE# for i in range ( 1 , ( self . nT + 1 ) ) : #NEWLINE# #INDENT# dt = self . timeSteps [ ( i - 1 ) ] #NEWLINE# b = ( ( ( ( 1.0 / dt ) * self . MfMui ) * vec [ : , 'b' , i ] ) + ( self . MfMui * ( self . mesh . edgeCurl * vec [ : , 'e' , i ] ) ) ) #NEWLINE# if ( i > 1 ) : #NEWLINE# #INDENT# b = ( b - ( ( ( 1.0 / dt ) * self . MfMui ) * vec [ : , 'b' , ( i - 1 ) ] ) ) #NEWLINE# #UNINDENT# f [ : , 'b' , i ] = b #NEWLINE# f [ : , 'e' , i ] = ( ( self . mesh . edgeCurl . T * ( self . MfMui * vec [ : , 'b' , i ] ) ) - ( self . MeSigma * vec [ : , 'e' , i ] ) ) #NEWLINE# #UNINDENT# return f