I've submitted the next update to Schrödinger Lab on the Apple App Store. It fixes a nasty problem in which the code fails to run at all for people using OSX 10.7. I traced the problem to a single field in Xcode (the Apple development environment), in which I had unfortunately set the deployment target of a code-library to 10.8, thus meaning it wouldn't compile on 10.7.
I of course apologize to all those affected, but mistakes do happen and it's not easy to check that the code I'm writing runs on OS versions other than the one I'm using.
After the next update, Schrödinger Lab should also run on OS 10.6.
Finally- the code now uses much less memory for the 2D palette calculations.
I'm now busy working on Schrödinger Lab 2.2 and I've got some cool stuff in the works. The planned 2.2 update will allow the user to easily switch between displaying eigenfunctions or basis-functions. Thus, at long last, users will be able to actually view the basis functions the code uses internally.
One of the main reasons I'm implementing this is because I've now implemented a set of 2D basis functions which are separable in the polar coordinates r=sqrt(x*x+y*y) and theta=atan2(x,y), which are given by (for mass=hbar=omega0=1)
Phi_mn(r,theta) = A exp[i m theta] L^n_m(r^2) exp(-r^2) r^m
where L^n_m are generalized Laguerre polynomials.
Some readers will recognize that this separable basis is essentially the 2D equivalent of the well known spherical harmonics solutions used in 3D problems with spherical symmetry.
Anyway- they're very pretty and by allowing users to view the basis functions directly, the code can be used to visualize these functions and to form different linear combinations.
Pictures soon!
Saturday, 22 December 2012
Saturday, 15 December 2012
Schrödinger Lab 2.1
Here are some screenshots from the next update, which I expect to arrive about the 10th of January.
And here are the update notes:
And here are the update notes:
Added solution of Schrödinger's eqn. for 2D time-dependent potentials.
Improvements to documentation and further formatting improvements to help-text.
The 1D palettes now color the magnitude squared eigenfunctions by their phase.
The color scheme is now more consistent between the 1D and 2D palettes.
2D palettes now show angular momentum values for wave-function and eigenfunctions.
The 'commit' button in the 2D palettes now commits all changes across all boxes in the scroll bar.
The palette titles are now set to the title of the file or the name of the example menu item.
r (=sqrtf(x*x+y*y) is now a valid symbol in the 2D palette potential text-box.
Various interface improvements, including improvements to the new palette menu.
Improvements to documentation and further formatting improvements to help-text.
The 1D palettes now color the magnitude squared eigenfunctions by their phase.
The color scheme is now more consistent between the 1D and 2D palettes.
2D palettes now show angular momentum values for wave-function and eigenfunctions.
The 'commit' button in the 2D palettes now commits all changes across all boxes in the scroll bar.
The palette titles are now set to the title of the file or the name of the example menu item.
r (=sqrtf(x*x+y*y) is now a valid symbol in the 2D palette potential text-box.
Various interface improvements, including improvements to the new palette menu.
Fixed a bug in the 2D palette affecting some calculations in the infinite square well basis, especially the 2D double slit example.
Tuesday, 27 November 2012
App submitted to App Store.
A quick blog post today.
The update to Schrödinger Lab has now been submitted to the App Store. If all goes well, I expect it to take ~3 weeks until it goes live.
Of course, there's a chance it could be rejected for a technical reason, in which case it will need to be resubmitted with corrections.
(The application process is time-consuming and sometimes annoying, but ultimately it does help Apple maintain the standard of Apps for sale- which is something that benefits consumers. )
Well, I'm off to relax for a bit.
Edit: (Dec 2nd) I found a small error in the code, so I just now resubmitted to the App Store. Unfortunately, this means I have to go back to the end of the queue, but at least I got to squeeze in a few extra improvements before resubmitting.
Edit II: (Dec 12th) The new version of the App has just been approved! I've been working hard in the interim and I'm actually going to submit the next version of Schrödinger Lab in the next few hours. I'll blog about the even newer update over the next day or two. It contains a few nice improvements and I'm quite proud of it.
Looking further ahead- I've even started working on the update after that! My new mission is to allow users of Schrödinger Lab to explore angular momentum states. Let's see how it works out.
The update to Schrödinger Lab has now been submitted to the App Store. If all goes well, I expect it to take ~3 weeks until it goes live.
Of course, there's a chance it could be rejected for a technical reason, in which case it will need to be resubmitted with corrections.
(The application process is time-consuming and sometimes annoying, but ultimately it does help Apple maintain the standard of Apps for sale- which is something that benefits consumers. )
Well, I'm off to relax for a bit.
Edit: (Dec 2nd) I found a small error in the code, so I just now resubmitted to the App Store. Unfortunately, this means I have to go back to the end of the queue, but at least I got to squeeze in a few extra improvements before resubmitting.
Edit II: (Dec 12th) The new version of the App has just been approved! I've been working hard in the interim and I'm actually going to submit the next version of Schrödinger Lab in the next few hours. I'll blog about the even newer update over the next day or two. It contains a few nice improvements and I'm quite proud of it.
Looking further ahead- I've even started working on the update after that! My new mission is to allow users of Schrödinger Lab to explore angular momentum states. Let's see how it works out.
Monday, 26 November 2012
Code is completed! Now to submit to App Store.
The good news is that the 2D update to Schrödinger Lab is completed. All that's left to do is to submit to the Apple App Store and await approval. This could take a few weeks, so please be patient, but I will try my best to get it out in time for Christmas!
As a taster, below is a screenshot from the finalized code showing a wave impacting a double-slit.
Wednesday, 7 November 2012
On the downhill stretch!
I successfully merged the 1D and 2D codes into what will be the next release of Schrödinger Lab. Since I last wrote, I've also taken the opportunity to rewrite the graphing in the 1D code to take advantage of my improved knowledge of OpenGL, the graphics programming language I've been using. The changes to the end-user are minimal, but I've managed to make the code a lot cleaner, which should help accelerate future updates.
I also tidied up the interface a little bit and got rid of some tiny but occasionally annoying misalignments in the paneling.
Finally, I rewrote my text-parsing code to make it easier for me to use subscripts/superscripts/italics and other font effects in my help boxes.
OK, so here's what the latest version looks like:
I now have a palette system in place where the user can make multiple palettes for solving either or both of the 1D and 2D Schrödinger eqn. This will make it easier for the users to compare results with different parameters and also to compare between the 1D and 2D results.
The Future
The two big tasks I have remaining are i) to finish writing the help documentation for the 2D calculations and ii) to implement saving and loading of palettes for the new combined code. I hope to have this finished in a month or so and then it will take a further month to get the code submitted and accepted by the Apple Store. So, altogether I estimate it's going to take about two months before the update is shipped.
Pricing will remain the same- i.e. the cheapest I can physically sell it without giving it away. I briefly considered setting the price equal to
number of dimensions the code can solve SE in x $1,
but ultimately I decided that I prefer to maximize the number of copies sold as opposed to the amount of money made.
The More Distant Future
I plan to continue adding functionality to Schrödinger Lab. Some of the features will be obvious, but I ultimately will need to look for ideas about where I can take this code next. So, if any of you want a particular feature implemented then let me know! I'm also interested in constructive criticism of what I've already done. In general, any feedback will be appreciated.
Monday, 22 October 2012
Further improvements to the interface.
Here's how the user-interface for the 2D update to Schrödinger Lab is looking.
I decided to go for a white background, principally because it fits better with the existing app color scheme.
I still haven't merged the 2D and 1D codes. It's going to take substantial rewiring and I'm not looking forward to the task. Still, it looks like this is going to be the next step, so I can't put it off too much longer.
Finally, Schrödinger Lab will be receiving a minor update coming out in the next few days. Here's the description:
Corrected minor error in which the labels and tables for the 'expectation values' and 'eigenfunctions' tables in the wave-function panel were mismatched.
Corrected error in which the momentum space thermal distribution was incorrectly calculated for non unit values of the mass.
Also added contact information in the help text accompanying the 'Schrodinger Labrador' logo in the top left corner.
Corrected error in which the momentum space thermal distribution was incorrectly calculated for non unit values of the mass.
Also added contact information in the help text accompanying the 'Schrodinger Labrador' logo in the top left corner.
Saturday, 6 October 2012
Update on next update.
I've been continuing work on the next update which is planned to include 3D graphics for solutions of the 2D Schrödinger eqn. Here's a screenshot:
In the above the purplish thing is the wavefunction psi(x,y) and the yellow blobs constitute one of the eigenfunctions of the potential well, which is drawn in transparent light blue.
I've also got the mouse controls set up so the user can zoom, translate and rotate the 3D graphics in real time.
The next big step will be merging the new code into the Schrödinger lab code. I think what I'll do is have a separate window for the 2D and 3D graphics, rather than cram everything into one window.
Sunday, 23 September 2012
Future improvements to Schrödinger Lab
Thought I'd let you know about some possible improvements to Schrödinger Lab for a future update.
You have to start somewhere and so far SL has been solely focussed on the solution of the 1D Schrödinger Eqn. In the next update I'm considering including some functionality to solve the 2D Schrödinger Eqn. :
H psi(x,y)=i hbar d/dt psi(x,y)
The first thing I'll try is for simple 2D potentials V(x,y), but it would be interesting to look at solving the 2 particle Schrödinger eqn. for V(x) and allowing the user to select the fermionic case for antisymmetric wavefunctions.
There are a lot of interesting things to learn about the many-body S.E. which simply can't be demonstrated from only looking at 1 dimensional examples. Even going to just the 2D case will greatly improve the educational value of the app, but of course- my real reason for doing this will be because I think it's cool and it's a chance to make some pretty graphics.
I've spent a few weeks messing around with some code and here's an example of the graphics I've come up with so far. (The final version will probably look completely different. This is a test!)
The pic shows the magnitude squared wavefunction |psi(x,y)|^2 for some arbitrary potential. The coloring is done according to the phase. I've also got a cut-off in which I'm not plotting any values |psi|^2<0.001.
In the app you'll be able to rotate and zoom into the wave function to view it from all different angles.
In case anyone is interested, some tech-details- The plotting is done with OpenGL which is quite a nice graphics programming language and it's simple enough that even I can learn it (or at least the rudiments). This is an orthographic display in which the viewing angle is represented internally by quaternions.
OK well, feel free to give me your opinions.
You have to start somewhere and so far SL has been solely focussed on the solution of the 1D Schrödinger Eqn. In the next update I'm considering including some functionality to solve the 2D Schrödinger Eqn. :
H psi(x,y)=i hbar d/dt psi(x,y)
The first thing I'll try is for simple 2D potentials V(x,y), but it would be interesting to look at solving the 2 particle Schrödinger eqn. for V(x) and allowing the user to select the fermionic case for antisymmetric wavefunctions.
There are a lot of interesting things to learn about the many-body S.E. which simply can't be demonstrated from only looking at 1 dimensional examples. Even going to just the 2D case will greatly improve the educational value of the app, but of course- my real reason for doing this will be because I think it's cool and it's a chance to make some pretty graphics.
I've spent a few weeks messing around with some code and here's an example of the graphics I've come up with so far. (The final version will probably look completely different. This is a test!)
The pic shows the magnitude squared wavefunction |psi(x,y)|^2 for some arbitrary potential. The coloring is done according to the phase. I've also got a cut-off in which I'm not plotting any values |psi|^2<0.001.
In the app you'll be able to rotate and zoom into the wave function to view it from all different angles.
In case anyone is interested, some tech-details- The plotting is done with OpenGL which is quite a nice graphics programming language and it's simple enough that even I can learn it (or at least the rudiments). This is an orthographic display in which the viewing angle is represented internally by quaternions.
OK well, feel free to give me your opinions.
Monday, 20 August 2012
Contact Details
Questions related to my products can be directed to Christian J Burnham at christianjbdev@gmail.com.
Subscribe to:
Posts (Atom)