32void Dipole::initialize(
const double moment,
const double center_x,
const double center_y,
const double center_z,
const double tilt_angle=0){
34 q[0]=-sin(tilt_angle)*moment;
36 q[2]=-cos(tilt_angle)*moment;
55 double r2 = r[0]*r[0]+r[1]*r[1]+r[2]*r[2];
57 if(r2<minimumR*minimumR) {
62 const double r5 = (r2*r2*
sqrt(r2));
63 const double rdotq=
q[0]*r[0] +
q[1]*r[1] +
q[2]*r[2];
65 const double B=( 3*r[component]*rdotq-
q[component]*r2)/r5;
70 }
else if(derivative == 1) {
72 unsigned int sameComponent;
73 if(dcomponent==component) {
79 return -5*B*r[dcomponent]/r2+
80 (3*
q[dcomponent]*r[component] -
81 2*
q[component]*r[dcomponent] +
82 3*rdotq*sameComponent)/r5;
sqrt(1.0+vA *vA/(c *c))) % Ion-acoustic wave cS
double operator()(double x, double y, double z, coordinate component, unsigned int derivative=0, coordinate dcomponent=X) const
void initialize(const double moment, const double center_x, const double center_y, const double center_z, const double tilt_angle)