Monday, July 20, 2009

Moving on to more complex charge geometries

Now that PhysViz is successfully visualizing electric fields and particle traces for the simplest of charge geometries, the sphere, it is time to get a bit more complicated. In preparation for upcoming charge geo's; I decided that instead of going through the mathematical gymnastics and writing of countless mathematical helper functions for specific geometries, it would be best build in a cordinate superposition function set into the program in order to allow each charge geometry to effect the space around it as if it were square on the x-axis of its own coord-system.

The effort seems to be straight forward, the only differences that must be accounted for in translating between two superimposed coordinate systems should be displacement (cartesian) and delta_theta / delta_phi (spherical). I have made a first crack at writing these functions, displacement is easy, the sphereical change in angles is giving me a little trouble however. I am attempting to accomplish the angle calculations in the following manner:

delta_theta = arccos(dot_product(xy_normal_1, xy_normal_2))
delta_phi = arccos(dot_product(xz_normal_1, xz_normal_2))

where the postfixes 1 and 2 represent the two different coord systems.
Also keep in mind that this is the computer graphics coord system, where if sketched on a piece of paper y points straigt up, x points to the right and z points off the paper.

The system is producing some funny results right now, any ideas on some mathematical errors that I may be making?

Friday, July 3, 2009

Particle Traces!

Well the next step is here, PhysViz is now modeling +/- particle traces as they should behave in the electromagnetic environment created by the user. PhysViz allows for the user to define the start point for the particle, electric charge (positive or negative) and the trace length for the visual particle trace created. Check out the screen shots.


Monday, June 22, 2009

First Milestone

Well, I have been working on PhysViz in my off time from lead farming here in Afghanistan for about 4 months now and I am glad to say that the first milestone has been reached. The most basic functionality of the program is up and running!

The program takes input from the user through the windows forms GUI to create spherical em-sources (the most basic types of electromagnetic sources beyond a simple point charge) in the 3D environment and visualizes the representative electric vector field created by these charges. The field is also adapting seamlessly to changes in the environment made by the user in real time.

Here are some screen shots! (Click on them to see their full awesomeness)






Moving forward, I think I going to save new charge geometries for later (I am looking forward to the parabolic disc for focused em-fields), and the next step is going the be building the ability for the user to define charged particles in the view port that will move in an animated fashion according to the forces of the electromagnetic field that are acting on it. This is going to be a fun one!

A quick introduction to PhysViz

PhysViz is a scientific visualization program that uses high-performance computer graphics to visualize electric and magnetic fields produced by a user defined electromagnetic environment. The function of the program is best described by the following (work in progress) loose design specification.

PhysViz will:
  • Provide an interactive 3D environment in which users can manipulate the camera viewing the environment to move and look in any direction, using a basic (x,y,z) axis at the center for bearing.
  • Allow users to define Gaussian objects that have electromagnetic and geometric properties (em-sources).
  • Allow users to define a vector field (em-field) that will represent the electromagnetic objects within the 3D environment. User definition of field attributes such as field resolution (vector samples per give unit of space), field size and location.
  • The user may make changes to any em-source's electromagnetic or geometric properties, causing instantaneous adaption of the visual em-field to represent the changes.

The program is being developed in C# as a Windows Forms application with an embedded Microsoft XNA powered view port for the visualization.