The NumPy package in Python serves us with a huge selection of useful functions for working with all kinds of numerical problems. One such function is gradient(V), that takes in a mgrid based matrix V and returns three mgrid matrices for each component of the gradient.
For instance, if you have the electric potential as a function of x, y and z, you can use NumPy’s gradient function to find the electric field through the relation . An example of this is shown below:
from numpy import * from enthought.mayavi.mlab import * x,y,z = mgrid[-100:101:25., -100:101:25., -100:101:25.] V = 2*x**2 + 3*y**2 - 4*z # just a random function for the potential Ex,Ey,Ez = gradient(V) Ex = - Ex Ey = - Ey Ez = - Ez quiver3d(x,y,z,Ex,Ey,Ez) # plot the electric field just for fun
Note that this potential is random and not necessarily something you would find in a real electromagnetic problem. The resulting electric field is shown below: