## simulations.objects Class ElectricDipole

```java.lang.Object simulations.objects.BaseObject simulations.objects.ElectricDipole
```
Direct Known Subclasses:
ElectricOscillatingDipole

public class ElectricDipole
extends BaseObject

This is a quasi-static electric dipole moving at constant velocity that can be extended to a time varying radiating electric dipole (see for example ElectricOscillatingDipole). In this routine we set the time derivative and the second time derivative of the dipole moment vector to zero, even though we have in the expressions for the electric and magnetic field the full radiation correct terms for a point electric dipole. To do radiaton terms we have to put in correct expressions for the time derivatives of the dipole moment, as in ElectricOscillatingDipole. Important note: for color coding purposes, where we want to color code the DLIC according to the magnitude of the electric field, we multiply the overall electric field of this dipole by one factor of the radius and scale it by 1/100. If you want this dipole to interact with other electromagnetic objects you must compensate for this!!!!

Version:
1.0
Author:
Andreas Sunquist

 Field Summary ` Vec3` `p`           The dipole moment of the dipole. ` double` `t`           The time. ` Vec3` `v`           The constant velocity of the dipole. ` Vec3` `x`           The position of the dipole.

 Constructor Summary ```ElectricDipole(Vec3 x, Vec3 p)```           Create an electric dipole with zero velocity at t = 0. ```ElectricDipole(Vec3 x, Vec3 v, Vec3 p)```           Create an electric dipole with non-zero velocity at t = 0.

 Method Summary ` Vec3` ```Bfield(Vec3 x, Vec3 B)```           Compute the magnetic field at position x and time t ` Vec3` ```Efield(Vec3 x, Vec3 E)```           Compute the electric field at position x and time t ` void` `Evolve(double dt)`           Evolve the dipole time and position. ` Vec3` `getDDP(double dtretarded)`           Get the second time derivative of dipole moment vector of the dipole. ` Vec3` `getDP(double dtretarded)`           Get the time derivative of dipole moment vector of the dipole. ` Vec3` `getP(double dtretarded)`           Get the dipole moment vector. ` double` `getT()`           Get the time.

 Methods inherited from class simulations.objects.BaseObject `Bfield, Efield, Pfield, Pfield`

 Methods inherited from class java.lang.Object `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

 Field Detail

### x

`public Vec3 x`
The position of the dipole.

### v

`public Vec3 v`
The constant velocity of the dipole.

### p

`public Vec3 p`
The dipole moment of the dipole.

### t

`public double t`
The time.

 Constructor Detail

### ElectricDipole

```public ElectricDipole(Vec3 x,
Vec3 p)```
Create an electric dipole with zero velocity at t = 0.

### ElectricDipole

```public ElectricDipole(Vec3 x,
Vec3 v,
Vec3 p)```
Create an electric dipole with non-zero velocity at t = 0.

 Method Detail

### getT

`public double getT()`
Get the time. This allows us the find the current time for this dipole.

### getP

`public Vec3 getP(double dtretarded)`
Get the dipole moment vector. Here we always return the constant dipole moment vector p, which does not evolve in time. To extend this to non-quasi-static dipoles or radiating dipoles, this method must be overridden. See for example ElectricOscillatingDipole

### getDP

`public Vec3 getDP(double dtretarded)`
Get the time derivative of dipole moment vector of the dipole. Here we set this to zero, so that we have a quasi-static electric dipole. To extend this to non-quasi-static dipoles, this method must be overridden, see for example ElectricOscillatingDipole

### getDDP

`public Vec3 getDDP(double dtretarded)`
Get the second time derivative of dipole moment vector of the dipole. Here we set this to zero, so that we have a quasi-static electric dipole. To extend this to non-quasi-static dipoles, this method must be overridden, see for example ElectricOscillatingDipole

### Evolve

`public void Evolve(double dt)`
Evolve the dipole time and position. This needs to be improved if the dipole is not moving with constant speed.

Overrides:
`Evolve` in class `BaseObject`
Parameters:
`dt` - the time step

### Efield

```public Vec3 Efield(Vec3 x,
Vec3 E)```
Compute the electric field at position x and time t

Specified by:
`Efield` in class `BaseObject`
Parameters:
`x` - the position of the observer
`E` - the electric field at the observer's position
Returns:
E the electric field at the observer's position

### Bfield

```public Vec3 Bfield(Vec3 x,
Vec3 B)```
Compute the magnetic field at position x and time t

Specified by:
`Bfield` in class `BaseObject`
Parameters:
`B` - the magnetic field at the observer's position
Returns:
B the magnetic field at the observer's position