Changes to handle imaginary Bfield