pub struct ChargedParticleSystem {
pub particles: Vec<ChargedParticle>,
pub uniform_e: Vec3,
pub uniform_b: Vec3,
}Expand description
Manages a collection of charged particles with field evaluation.
Fields§
§particles: Vec<ChargedParticle>§uniform_e: Vec3§uniform_b: Vec3Implementations§
Source§impl ChargedParticleSystem
impl ChargedParticleSystem
pub fn new() -> Self
pub fn add_particle(&mut self, particle: ChargedParticle)
Sourcepub fn total_kinetic_energy(&self) -> f32
pub fn total_kinetic_energy(&self) -> f32
Total kinetic energy of all particles.
Sourcepub fn total_momentum(&self) -> Vec3
pub fn total_momentum(&self) -> Vec3
Total momentum.
Sourcepub fn e_field_at(&self, pos: Vec3) -> Vec3
pub fn e_field_at(&self, pos: Vec3) -> Vec3
Evaluate the E field at a point including contributions from all particles (Coulomb fields from each particle, treated as point charges).
Sourcepub fn step_self_consistent(&mut self, dt: f32)
pub fn step_self_consistent(&mut self, dt: f32)
Step with self-consistent fields (N-body Coulomb + uniform B). O(N^2) — fine for small N.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ChargedParticleSystem
impl RefUnwindSafe for ChargedParticleSystem
impl Send for ChargedParticleSystem
impl Sync for ChargedParticleSystem
impl Unpin for ChargedParticleSystem
impl UnsafeUnpin for ChargedParticleSystem
impl UnwindSafe for ChargedParticleSystem
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> 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.