123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
-
-
-
-
-
-
- #ifndef __WIREANTENNA_H
- #define __WIREANTENNA_H
-
- #include "DipoleSource.h"
-
- #ifdef LEMMAUSEVTK
- #include "vtkActor.h"
- #endif
-
- namespace Lemma {
-
-
-
-
-
-
- class WireAntenna : public LemmaObject {
-
- friend std::ostream &operator<<(std::ostream &stream, const WireAntenna &ob);
-
- public:
-
-
-
-
- explicit WireAntenna ( const ctor_key& );
-
-
- WireAntenna ( const YAML::Node& node, const ctor_key& );
-
-
- virtual ~WireAntenna();
-
-
-
- static std::shared_ptr<WireAntenna> NewSP();
-
-
-
- virtual std::shared_ptr<WireAntenna> Clone() const ;
-
-
-
- YAML::Node Serialize() const;
-
-
-
- static std::shared_ptr<WireAntenna> DeSerialize( const YAML::Node& node );
-
-
-
-
-
-
-
- virtual void ApproximateWithElectricDipoles(const Real &delta);
-
-
-
-
-
- void SetNumberOfTurns(const int &nturns);
-
-
-
- void SetNumberOfPoints(const int &np);
-
-
-
- void SetPoint(const int &p, const Vector3r &pos);
-
-
-
- void SetPoint(const int &p, const Real&x, const Real& y, const Real& z);
-
-
-
- void SetFrequency(const int& ifreq, const Real &freq);
-
-
- void SetNumberOfFrequencies(const int& nfreq);
-
-
-
- void SetCurrent(const Real &);
-
-
-
-
-
- int GetNumberOfTurns( );
-
-
-
- Vector3Xr GetPoints();
-
-
-
- MatrixXr GetPointsMat();
-
-
-
- Real GetFrequency(const int& ifreq);
-
-
-
-
- Real GetCurrent( );
-
-
-
-
- std::shared_ptr<DipoleSource> GetDipoleSource(const int &dip);
-
-
-
- size_t GetNumberOfDipoles();
-
-
-
- int GetNumberOfFrequencies();
-
- #ifdef LEMMAUSEVTK
-
-
- vtkActor* GetVtkActor(const int &idip);
- #endif
-
-
-
- bool IsHorizontallyPlanar();
-
-
- virtual std::string GetName() const;
-
- protected:
-
-
-
-
-
- int NumberOfPoints;
-
-
-
- Real Current;
-
-
-
- int NumberOfTurns;
-
-
-
- std::vector< std::shared_ptr<DipoleSource> > Dipoles;
-
-
-
- Vector3Xr Points;
-
-
-
- VectorXr Freqs;
-
- private:
-
- static constexpr auto CName = "WireAntenna";
-
- };
-
- }
- #endif
|