Here is a listing of my mathematica notebooks. The most recent of any of these notebooks can all be obtained from my github Mathematica repository.
The Wolfram CDF player can also be used to view a number of these notebooks after download.
This was an attempt to decode the notation used in Desai for the Legendre functions used for Hydrogenic atoms. He defines the orbital functions in terms of Legendre functions, but does not precisely define his Legendre functions.
Hybrid orbital plots
Madelung constant calculations for NaCl
Visualize the Bravais lattice given
Plots of melting points in Kelvin vs Z
Reciprocal vector calculation from measurements
Plot of infinite sum of exponentials showing periodic sinc form. Also diagonalization of the interaction matrix for three harmonically coupled particles in a loop
Labeled plots of 1D two spring constant lattice frequency distributions. This is a generated notebook.
Verify equation 4.15 of the text, for the frequencies of the diatomic linear chain
Plots of 1D two spring constant lattice frequency distributions
Dynamic animation of two atom harmonic oscillation
Plot of sine with omitted points at integer multiples of pi.
Plot calculated density of states function
Debye temperature plot for a number of elements, and atomic radius plot. Using hash like function mappings, and ElementData. Also used colors in these plots to visually distinguish each of the s, p, d, f orbital regions. For a less selective atomic radii plotting function, I used Cases and pattern matching to filter out the ElementData values that were missing or unavailable. In a final version of the plotting function, overlapped atomic radii and Debye plots were made. A static image of that plot is saved into the notes for discussion, but the live notebook version has cool ToolTip's on all the points showing the atomic symbols and the values in question.
Plot of anharmonic oscillator solution for problem 5.5 of the text
Plots of the Fermi-Dirac distribution and its derivatives. Includes one Manipulate for exploring the effect of temperature dynamically
Numeric calculation of Fermi temperature and related values. Various wolfram queries were done here to look up the values and units. Also used Column and Row to make tables of the physical constants and the associated calculations.
Minor normalization check for particle in a box calculations.
Plots of periodic extension of inverse radial potential, with and without omission of one such potential
Attempt at a 2D lattice fitting.
A radial cap for an inverse radial function. This may have been for a stackexchange post, since I was seeing a discontinuity in the plot that should not have existed. Looks like I found a post that explained things.
1D inverse radial lattice Fourier fitting, with cubic rounding part way down the infinite hole.
Attempt at 2D Fourier fitting of capped radial.
The reason for some of these inverse radial Fourier fitting attempts was because I wanted to compute the Fourier coefficients for some sample periodic potentials for some numerical experimentation. Naturally, the first one that I tried was an inverse radial potential, however, it turns out that this isn't re presentable by Fourier series since it is not square integrable.
It is possible to artificially alter the Coulomb potential so that some neighborhood of the origin is omitted, setting the potential to some constant value after that, but that doesn't seem like a physically reasonable model. Asking Prof Julian about this he said:
"There are two effects, one is that the potential doesn't go to -infty at the origin, due to Pauli exclusion. As you suggest, putting a flat bottom on the potential probably works okay. But also, due to screening (in a metal at least) the potential isn't 1/r, but rather it cuts off more quickly.
A commonly used compromise is the "muffin tin potential, which has a flat bottom in a sphere around the atomic position, then a step up to another flat region between the atoms. In solving this one puts a linear combination of spherical harmonics inside the muffin tin, and plane waves in the interstitial region, and match them at the boundary.
But putting a flat bottom on a screened Coulomb potential is probably a reasonable first thing to try."
I appear to have hit convergence issues attempting the Fourier fittings for such a cap in a more interesting 2D lattice.
Parabolic Brillouin zone plots
Generated notebook with saved label definitions
Summation that lead to the cotangent result and intersection plot
Cos squared normalization
Sine and Cos plots. Ended up sketching instead
A manipulate to explore the variation with k at point a in the problem. Also some representative plots for the submission
Report a bug for Mathematica HCP LatticeData function
FourierSeries Mathematica colorizing front end UI bug report
Second attempt to get the computation of 2D FourierSeries computed for cubic capped inverse radial function. Mathematica gives up the computation after a long delay
Minor plots of Gaussians for L18 and L19
Plot generator for ps8 b
Ps8 i Plot with labels, generated
Ps8 ii Plot with labels, generated
Ps8 iii Plot with labels, generated
Contour plot of tight binding energy level curves. Used the really handy getTheGraphics function from stackexchange for combining the plot with the legend in one graphics object
Manually labeled the level curves instead, with the energies. This generated notebook has the labeling data.
Scratch notes and plots for ps8.e
Ps9 figures for q2
Look for BCC basis vectors. First try was wrong, but found suitable vectors with small correction. This verifies that the new ones work, and also finds the reciprocal basis. Also used this notebook to experiment with the Report stylesheet, mixing text, inline math, and math cells in one doc. End result looks much nicer than a plain styled notebook.
Simple plot of the cubic lattice BZ overlaid with Fermi wave-vector radial surface.
Aborted attempt to write up a nicely formatted Report for the verification of an Ashcroft and Mermin suggested exercise.
This notebook generalizes the notebook for problem set 6, problem 1, which had a Fermi energy/temperature calculation. This splits out the generic physical constants, and splits out the ElementData and ChemicalData lookup. The subsequent calculation and formatting of the data was split somewhat. It would be worthwhile to experiment with reworking this to use Rule lists, like perl hashes, to tag the various fields with names, which would make the parameter passing more flexible.
Sqrt exponential integral ... probably a gamma function.
Rework fermiInfoForElementOrig.nb passing parameters by hashes, ie. Rule Lists. As expected, this was a much cleaner result, as the huge lists of Module local variables are not required passing along the previous phases of the computations. In the end, the descriptive Rule List can be used directly as a ReplaceAll on the values List, with all the grunt work of the display done by a single Rule to List, and TableFormat operation.
Log concentration vs. inverse temperature and some physical constant lookup and order of magnitude calculations.
A Dynamic visualization of the Bragg plane behavior of a weak periodic potential. Sliders provided for K, and U as a fraction of K, are provided
Experimentation with rasterizing only the 3D plot part of a 3D plot, and not the axes. This was to attempt to produce a small Mathematica plot of stuff that ends up huge when plotted as eps
Like rasterizeAntialiasInset.nb, but with a plotopts function. Should have noted the stackexchange post I was attempting to use.
Verified a hand calculated solution for a non-homogeneous form of the single variable harmonic oscillator. Realized after this that a more sensible approach would have been to just make a change of variables.
An animation of a two particle harmonic oscillator, considered as the most simple lattice problem. This highlighted a problem, where the masses passed through each other, since I did not include a rest length of the spring in the Lagrangian.
A check if the determinant and trace expansion for the characteristic equation of A - lambda I holds in 3D. It does not. This shows the structure, but not the underlying mechanism for a general expansion.
Here's a bit of a laborious symbolic calculation that I messed up by hand with, phy487/oneAtomBasisPhonon.tex
N atom basis diamond lattice calculations. Allows up to 5 mass locators in the grid and a vector parameterized parallelepiped lattice cell. This uses TabView and Nasser's tricks to avoid evaluation where undesirable. This also includes the distribution relation. This is my most sophisticated sample of Mathematica programming so far.