Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matthewfilipovich/moving-point-charges

Electromagnetic numerical simulator for moving point charges published in the American Journal of Physics (AJP).
https://github.com/matthewfilipovich/moving-point-charges

electromagnetic-simulation physics-simulation

Last synced: 17 days ago
JSON representation

Electromagnetic numerical simulator for moving point charges published in the American Journal of Physics (AJP).

Awesome Lists containing this project

README

        

# Space-Time Computation and Visualization of Electromagnetic Fields from Moving Point Charges

**moving-point-charges** is an open-source Python library designed to simulate the full 3D electromagnetic fields and potentials generated by moving point charges. This tool supports the analysis of charges in arbitrary motion at varying speeds. For an in-depth understanding, refer to the related [American Journal of Physics paper](https://doi.org/10.1119/10.0003207).



### Update Notice
For the latest version of this library, please visit the [PyCharge repository](https://github.com/MatthewFilipovich/pycharge).

## Getting Started

### Key Components
- **MovingChargesField Class**: Calculates electromagnetic fields and potentials at each grid point by determining the delayed time of each point charge.
- **Charge Class**: An abstract class that allows the definition of a charge's trajectory in three dimensions.

### Usage
Instantiate the `MovingChargesField` with a list of `Charge` objects to begin simulations. The class computes the electromagnetic components (`x`, `y`, `z`) and the individual Coulomb and radiation terms of the electric and magnetic fields.

### Included Charge Models
The library includes several models for moving charges:
- `OscillatingCharge`
- `OrbittingCharge`
- `LinearAcceleratingCharge`
- `LinearDeceleratingCharge`
- `LinearVelocityCharge`

### Visualizations
Examples of visualizations and animations are available in the `Paper_Figures` folder, showcasing the capabilities of the library using matplotlib for graphical outputs.