  We developed a fast numerical algorithm for solving the three dimensional
vectorial Helmholtz equation that arises in electromagnetic scattering
problems. The algorithm is based on electric field integral equations and is
essentially a boundary element method. Nystrom's quadrature rule with a
triangular grid is employed to linearize the integral equations, which are then
solved by using a right-preconditioned iterative method. We apply the fast
multipole technique to accelerate the matrix-vector multiplications in the
iterations. We demonstrate the broad applications and accuracy of this method
with practical examples including dielectric, plasmonic and metallic objects.
We then apply the method to investigate the plasmonic properties of a silver
torus and a silver split-ring resonator under the incidence of an
electromagnetic plane wave. We show the silver torus can be used as a trapping
tool to bind small dielectric or metallic particles.
