pub struct AntennaArray {
pub elements: Vec<HertzianDipole>,
pub phase_shifts: Vec<f32>,
}Expand description
An array of Hertzian dipole antennas with programmable phase shifts for beam forming.
Fields§
§elements: Vec<HertzianDipole>§phase_shifts: Vec<f32>Implementations§
Source§impl AntennaArray
impl AntennaArray
pub fn new(elements: Vec<HertzianDipole>, phase_shifts: Vec<f32>) -> Self
Sourcepub fn uniform_linear(
n: usize,
spacing: f32,
axis: Vec3,
orientation: Vec3,
frequency: f32,
current_moment: f32,
) -> Self
pub fn uniform_linear( n: usize, spacing: f32, axis: Vec3, orientation: Vec3, frequency: f32, current_moment: f32, ) -> Self
Create a uniform linear array along a given axis.
Sourcepub fn array_factor(&self, direction: Vec3) -> f32
pub fn array_factor(&self, direction: Vec3) -> f32
Array factor: AF(direction) = sum_i exp(j*(k*d_i·direction + phase_i)) Returns the magnitude |AF|^2.
Sourcepub fn total_pattern(&self, theta: f32, phi: f32) -> f32
pub fn total_pattern(&self, theta: f32, phi: f32) -> f32
Total radiation pattern: element pattern × array factor.
Sourcepub fn beam_steering(&mut self, target_direction: Vec3)
pub fn beam_steering(&mut self, target_direction: Vec3)
Compute phase shifts to steer the beam toward a target direction.
Trait Implementations§
Source§impl Clone for AntennaArray
impl Clone for AntennaArray
Source§fn clone(&self) -> AntennaArray
fn clone(&self) -> AntennaArray
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AntennaArray
impl RefUnwindSafe for AntennaArray
impl Send for AntennaArray
impl Sync for AntennaArray
impl Unpin for AntennaArray
impl UnsafeUnpin for AntennaArray
impl UnwindSafe for AntennaArray
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.