A lightweight user friendly electromagnetic simulation environment. Simulate magnetic and electric fields, magnetically permeable and electrically charged meshes, charged particle beams and more.
Electromagnetic fields are stored in user defined volume domains and the fields can be viewed as vectors or traces in 2D or 3D.
Static EM Domain
A field domain containing magnetic vector potential, magnetic flux density, electric scalar potential and electric vector fields.
How it works: The contained fields are used to store electric and magnetic field data in a discrete 3D grid. Simulation accuracy will depend on grid cell size. Fields are generated by field effector objects, and field values can be given at any point within the domain using cubic spline interpolation. Asymmetric interpolation is used near the edges to reduce boundary artifacts, though they are not completely eliminated. When the "generate fields" button is clicked, all selected field effector objects, or all field effectors if none are selected are used to generate electric and magnetic fields. Single step objects are simulated first, then mesh objects are simulated simultaneously until all values converge. The graph in the object data tab will show electric field, electric surface, magnetic field and magnetic surface values. These values are the rate of change normalized for the underrelaxation factor and are used to track convergence.
Field Viewer
Generates traces to visualize electric and magnetic fields within a specified domain. If scaled to zero on one axis, the traces will be projected on to the plane.
Probe
Displays magnetic and electric field information at one specific point.
Solenoid
A coil of current carrying wire.
How it works: A wire is generated from the user defined parameters, and is used to generate a magnetic vector potential field. The wire is assumed to have no thickness and uniform current. Self interaction is not simulated.
Multi Pole
Functions in the same way as the solenoid, but with several coils of wire arranged in a circle. The coils also have some additional geometry options such as axial vs radial winding direction and corner radius.
Static Plane
A finite plane with uniform charge density.
How it works: The plane is discretized into segments with a defined size, then each segments total charge is used to generate an electric potential field. It is simulated in one step without self interaction and with a uniform charge distribution. If a more accurate model is needed, use a Boundary Mesh object with a voltage applied.
Static Tube
Functions in the same way as the Static Plane but in a hollow cylindrical shape.
Boundary Mesh
A mesh consisting of triangular boundary elements used to simulate the electrostatic and magnetostatic effects of a conductor. A mesh must first be created in the mesh editor screen, then selected in the Boundary Mesh's properties menu. Simulation accuracy will depend on the mesh density. Higher density will result in better accuracy, but will take longer to simulate.
How it works: Both electric and magnetic effects are simulated using a boundary element method in the same iterative loop. Adaptive underrelaxation is used to speed up convergence and improve stability. Magnetostatic interactions are simulated using surface currents computed to enforce boundary conditions across each element, then the effects from these currents are added to the field each iteration.
Electrostatic effects are simulated by first getting initial conditions from an existing electric potential field, then iteratively updating the effects of all mesh boundary elements on all other boundary elements, while enforcing either fixed total charge, or fixed potential. Essentially a discretized Green's function solution to Laplace's equation.
Particle Emitter
A Particle source that emits charged particle rays that are effected by EMFieldDomain objects.
Emission pattern settings: Emitter diameter - The diameter of the disc that particles are emitted from.
Initial energy - The median initial kinetic energy of the rays in electron volts.
Position distribution mode - The distribution method used to assign ray initial positions. If set to Gaussian, a reduction in particle density of one standard deviation will be half way between the center and the edge of the emission disc.
Angular distribution - How much the rays initial momentum vectors will differ from the emitters orientation. If angular distribution mode is uniform, this defines the maximum angle rays will be emitted at. If Gaussian, this defines one standard deviation in angle, and if Lambertian, this defines a cutoff angle.
Energy distribution mode - The distribution method used to assign rays initial kinetic energy.
Energy distribution - The amount of variation in initial kinetic energy in either the positive or negative direction (total spread is this x 2). If the distribution mode is set to Gaussian, this defines one standard deviation. If uniform, this defines the maximum deviation.
Other settings: Step time override - Disables the adaptive time step system if set to anything other than zero, forcing a constant step time. This is usually both slower and less accurate than using adaptive step time.
Max step dist - Defines the maximum distance a ray can travel in one step when using adaptive step time.
Steps per turn - Defines the minimum number of time steps per 360 degrees of curvature in the rays trajectory when using adaptive step time.
How it works:
Each ray contains position and momentum vectors as well as a 6x6 position/momentum Jacobian matrix. The reference trajectory is advanced using a relativistic Vay pusher, while the phase-space Jacobian is evolved from the linearized Hamiltonian equations using local field derivatives in a similar symplectic half E, B then half E method. The determinant of the position-position block of the Jacobian is used to estimate geometric spreading in order to calculate the amplitude and to detect caustics, adjusting the phase and Maslov index accordingly. When a ray passes through a detector plane, a projected 2D spatial matrix, phase, amplitude and momentum are interpolated to the point of contact with the plane and recorded. Later, these values can be used to generate either a point or a gaussian like envelope used to bin detection data to pixels. if the beam is coherent, complex amplitude phase can be summed to generate interference patterns.
Note: particle ray tracing is in early development and has not been thoroughly tested.