82 Inform msg(
"RBend::addK()");
104 Inform msg(
"RBend::addK()");
113 double g = 1 /
sqrt(1 - b * b);
116 Vector_t temp(cf * tmpB(1), cf * tmpB(0), 0.0);
147 double &chordLength) {
161 double refBetaGamma =
sqrt(
pow(refGamma, 2.0) - 1.0);
164 double fieldAmplitude = refCharge *
std::abs(amplitude / refCharge);
165 double designRadius =
std::abs(refBetaGamma * refMass / (
Physics::c * fieldAmplitude));
virtual void setEntranceAngle(double entranceAngle) override
virtual bool findChordLength(Inform &msg, double &chordLength) override
virtual BMultipoleField & getField() override=0
Get multipole expansion of field.
double getNormalComponent(int) const
Get normal component.
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
virtual ElementBase::ElementType getType() const override
Get element type std::string.
void setNormalComponent(int n, double Bn)
Set component.
Tps< T > sin(const Tps< T > &x)
Sine.
PETE_TBTree< FnCopysign, PETE_Scalar< Vektor< T1, Dim > >, typename T2::PETE_Expr_t > copysign(const Vektor< T1, Dim > &l, const PETE_Expr< T2 > &r)
double getStartField() const
virtual void setBendAngle(double angle) override
virtual void accept(BeamlineVisitor &) const override
Apply visitor to RBend.
double getSkewComponent(int n) const
Get component.
virtual double getY(int i)
void setSkewComponent(int n, double Bn)
Set component.
void setSkewComponent(int, double)
Set skew component.
virtual void setEntranceAngle(double entranceAngle)
double getBendAngle() const
void setExitAngle(double exitAngle)
virtual void setBendAngle(double angle)
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const =0
virtual void addKR(int i, double t, Vector_t &K) override
virtual double getGamma(int i)
virtual void addKT(int i, double t, Vector_t &K) override
virtual double getBeta(int i)
double getNormalComponent(int n) const
Get component.
constexpr double c
The velocity of light in m/s.
PartBunchBase< double, 3 > * RefPartBunch_m
virtual void visitRBend(const RBend &)=0
Apply the algorithm to a rectangular bend.
double getFieldAmplitude() const
Tps< T > pow(const Tps< T > &x, int y)
Integer power.
Vektor< double, 3 > Vector_t
Tps< T > sqrt(const Tps< T > &x)
Square root.
double getSkewComponent(int) const
Get skew component.
constexpr double q_e
The elementary charge in As.
double getQ() const
Access to reference data.
virtual double getZ(int i)
PETE_TUTree< FnArcSin, typename T::PETE_Expr_t > asin(const PETE_Expr< T > &l)
void setNormalComponent(int, double)
Set normal component.
double getEntranceAngle() const
virtual double getX(int i)
virtual bool getFieldDerivative(const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const =0
void setMessageHeader(const std::string &header)