VPython Modelling of Electric and Magnetic Forces

From Physics Book
Jump to navigation Jump to search

VPython Modeling of Electric and Magnetic Forces Claimed By: Griffin Bonnett Spring 2017 claimed by Fall 2016: Sam Webster Spring 2016: Neil Acharya (nacharya)

The Main Idea

Vpython is a programming language designed to model physics properties in a 3D simulation. It consists of the Python programming languange with an additional module called Visual that creates the environment to generate models in 3D. This section we will be focused on modeling the electric and magnetic forces in Vpython.

A Mathematical Model

When you start a new Vpython program you should first write out all the equations and constants you might need.You should also define any variables you use in their appropriate forms such as vectors, arrows, or spheres. Then, you should get a rough outline of what values need to be calculated and how the constants and equations can be best applied for the calculations.


A Computational Model

This is when we begin to program using Vpython. A finished and working program will give us the ability to visualize the physics of magnetic and electric forces. Vpython can be used to model any number of other physical interactions as well such as springs and gravity. Running a simulation allows us to view concepts that would not be observable any other way especially on the same time scale. We are able to visibly observe magnetic and electric fields in a dynamic situation which is difficult to visualize without a model. This also allows for many more calculations to be preformed and the ability to interpolate and extrapolate data.

Examples

Magnetic Force Model

For Magnetic forces: We are going to simulate the motion of a charged particle immersed in a magnetic field.

Step 1: Frame the problem in fundamental ideas or equations

This is where you write down anything the problem gives you.

Equations:           Constants:
F = q·v x B          Charge of the particle(q)
dp/dt = Fnet         Velocity vector of the particle(v)
p = ma               Magnetic field vector(B)          
v= p/m               Mass of particle (m) 
                     


Due to our understanding of how magnetic fields cause a force on a moving charged particle, we can craft a general outline for the calculations. We can also find expected values and predict the behavior of the model. We will need to calculate the magnetic force and use it to update its position and velocity.




Step2: Conceptualize the problem

We want to show the particle moving through space relative to time. Since computer programs only comprehend discreet values, we will want to move through time in discreet increments. We do this by using a while loop because while t is less than a certain value the loop will continue to be updated. We can put the limit of t to anytime so long as the rate is high enough to run the program reasonably fast and t is large enough to run the full length simulation. We will set the initial time to t = 0 and add a constant delta t to each iteration in the while loop. Each new iteration of time will allow us to update the position and velocity vector. To update these values, conservation of momentum is used to relate the magnetic and the position and velocity.

   Initialize the variables
    B0 = vector(0,1,0)
    particle = sphere(pos=(0, 0,.3), radius = .01, color = color.red)
    velocity = vector(2e6,1e6,0)
    q = 1.6e-19
    m = 1.7e-27
    trail = curve(color=particle.color)
    deltat = 1e-11
    t = 0 
   The Loop
   
   while t < 1.3e-3:
   rate(10000)
   ## Insert the necessary steps inside the loop below to update the particle's position and velocity
   ## a)calculate the needed quantities to update the particle's velocity
   p = m * velocity
   Fnet= q * cross(velocity, B0)
   p = p + Fnet*deltat
   
   ## b)update the particle's velocity
   velocity = p/m
  
   ## c) Update the position of the proton (movies in a straight line initially).
   particle.pos = particle.pos + velocity*deltat
   trail.append(pos=particle.pos)
   t=t+deltat

The method used to simulate magnetic force would work equally well to simulate the electric force.

Connectedness

  1. How is this topic connected to something that you are interested in?

I am fascinated by 3D modeling. I have begun to teach my self Blender recently. Even though there is less programming involved, Blender incorporates much of the fundamentals that Vpython uses such as vector math and using iterations of functions to achieve the desired output.

  1. How is it connected to your major?

Vyptyhon, electric and magnetic forces, and simulations are fundamental to my major as an electrical engineer. I can use Vpython to simulate how certain electrical components that would interact in an magnetic field. I could also use it to simulate the electromagnetic interactions at the quantum level.

  1. Is there an interesting industrial application?

Industry routinely uses Vpython to simulate optimal efficiency. One of the most interesting is the possibility of using it to model ideal outputs of generators in hydroelectric. This can give a baseline to test the efficiency of industrial machines or processes.

History

The cT programming language was created in 1985 by researchers at Carnegie Mellon University. Even though it had other applications, it was mainly a 2d graphics learning tool.

As David Scherer began college in 1998, he was being taught physics using cT. Scherer saw some flaws in cT and set out to improve it. By 2000,Scherer, with help from David Andersen, Ruth Chabay, Ari Heitner, Ian Peters, and Bruce Sherwood, created Visual, a module for Python that was easier than cT and could render in 3D. The name VPython comes from merging Visual and Python together. The development of VPython made cT obsolete and Vpython took its place.

The most recent change in the VPython is the developers announced in 2016 that they will no longer be producing the classic software. Instead, the will focus on implementing the programming language in Glowscript and Jupyter.

See also

Are there related topics or categories in this wiki resource for the curious reader to explore? How does this topic fit into that context?

Further reading

Books, Articles or other print media on this topic

External links

Internet resources on this topic

http://www.glowscript.org/#/user/GlowScriptDemos/folder/matterandinteractions/program/MatterAndInteractions


https://trinket.io/welcome


https://www.revolvy.com/main/index.php?s=VPython&item_type=topic

References

This section contains the the references you used while writing this page

https://www.revolvy.com/main/index.php?s=VPython&item_type=topic