Program Listing for File ArchimedeanSpiralField.h

Return to documentation for file (include/crpropa/magneticField/ArchimedeanSpiralField.h)

#ifndef CRPROPA_ARCHIMEDEANSPIRALFIELD_H
#define CRPROPA_ARCHIMEDEANSPIRALFIELD_H

#include "crpropa/magneticField/MagneticField.h"


#include <string>
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <sstream>

#include "crpropa/Vector3.h"
#include "crpropa/Referenced.h"
#include "crpropa/Units.h"

namespace crpropa {

class ArchimedeanSpiralField: public MagneticField {
private:
        double B_0; // Magnetic field strength in radial direction at R_0
        double R_0; // Reference level
        double Omega; // Angular velocity of the rotation
        double V_w; // Asymptotic wind speed

public:
        ArchimedeanSpiralField(double B_0, double R_0, double Omega, double V_w);

        Vector3d getField(const Vector3d &pos) const;

        void setB0(double B);
        void setR0(double R);
        void setOmega(double Om);
        void setVw(double v);

        double getB0() const;
        double getR0() const;
        double getOmega() const;
        double getVw() const;
};
} // end namespace crpropa

#endif // CRPROPA_ACHIMEDEANSPIRALFIELD_H