OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
ConstantEFieldCavity.h
Go to the documentation of this file.
1#ifndef OPALX_ConstantEFieldCavity_HH
2#define OPALX_ConstantEFieldCavity_HH
3
5
14public:
15 explicit ConstantEFieldCavity(const std::string& name);
18 virtual ~ConstantEFieldCavity();
19
20 virtual void accept(BeamlineVisitor& visitor) const override;
21
22 virtual void initialise(PartBunch_t* bunch, double& startField, double& endField) override;
23 virtual void finalise() override;
24 virtual bool bends() const override;
25 virtual ElementType getType() const override;
26 virtual void getFieldExtend(double& zBegin, double& zEnd) const override;
27
28 virtual bool apply(const std::shared_ptr<ParticleContainer_t>& pc) override;
29 virtual bool apply(
30 const size_t& i, const double& t, Vector_t<double, 3>& E,
31 Vector_t<double, 3>& B) override;
32 virtual bool apply(
33 const Vector_t<double, 3>& R, const Vector_t<double, 3>& P, const double& t,
35 virtual bool applyToReferenceParticle(
36 const Vector_t<double, 3>& R, const Vector_t<double, 3>& P, const double& t,
38
39 double getEx() const;
40 double getEy() const;
41 double getEz() const;
42
43 virtual void setEx(double ex);
44 virtual void setEy(double ey);
45 virtual void setEz(double ez);
46
47protected:
48 double Ex_m;
49 double Ey_m;
50 double Ez_m;
52
53private:
55};
56
57#endif // OPALX_ConstantEFieldCavity_HH
Defines the abstract interface for a single beamline component in the accelerator model.
ippl::Vector< T, Dim > Vector_t
ElementType
Definition ElementBase.h:94
Component applying a constant accelerating electric field (Ex,Ey,Ez).
virtual void setEx(double ex)
virtual bool bends() const override
virtual bool apply(const std::shared_ptr< ParticleContainer_t > &pc) override
Apply to all particles. Kernel launch moved inside the function.
void operator=(const ConstantEFieldCavity &)
virtual void accept(BeamlineVisitor &visitor) const override
Apply visitor.
virtual void finalise() override
virtual void setEy(double ey)
virtual void setEz(double ez)
virtual bool applyToReferenceParticle(const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) override
Apply to reference particle with position R and momemtum P.
virtual void getFieldExtend(double &zBegin, double &zEnd) const override
Return the field-support extent of the component.
virtual ElementType getType() const override
Get element type std::string.
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField) override