
AtomicDensityMatrix
mathematica package
about : installation : release notes : feedback
AtomicDensityMatrix is a package for Mathematica version 6 that facilitates analytic and numerical density-matrix calculations in atomic and related systems. It is intended to be both general and user-friendly, and to be useful to the working physicist as well as to students.
The package has been updated for Mathematica 9. Please send bug reports to simon@rochesterscientific.com.
The package documentation is growing, but far from complete. It is available in the Mathematica Documentation Center when the package is installed. Future package updates will include expanded documentation.
The images and animations below are from the ADM documentation, and were generated with the package.
Features:- Supports systems with an arbitrary number of states, automatically generating Zeeman and hyperfine substructure. Also supports calculations for model systems that neglect angular momentum
- Automatic generation of Hamiltonians including the effects of arbitrary static or dynamic electric, magnetic, and optical fields
- Routines for automatic application of the rotating-wave approximation
- Automatic generation of terms describing relaxation effects, including spontaneous decay
- Formulates and solves density matrix evolution equations, either analytically or numerically, as a function of time or in the steady state
- Routines implementing the matrix-continued fraction method for efficient numerical computation of periodic solutions for the case of modulated fields
- Supports generation and simultaneous solution of coupled density matrices describing different velocity classes and physical regions in the system
- Finds the effect of atomic polarization on light polarization, using various light polarization parameterization schemes
- Performs irreducible tensor decomposition of the density matrix
- General implementation of irreducible tensor algebra
- Performs arbitrary rotations of operators and irreducible tensors
- Automatic generation of level diagrams showing level structure, electromagnetic-field induced coupling, and atomic sublevel populations from the density matrix
- Plots angular-momentum probability surfaces: a 3D geometrical representation of atomic polarization
- An associated graphics package aids the generation of plots and animations for visualization of the physical processes
- A growing collection of basic and advanced examples, showing the application of the package to real atomic physics problems
- User extensible
- Download ADM_yy.mm.dd.zip
- Select the menu item
File->Install
in the Mathematica Front End - In the dialog box, for "Type of Item to Install" choose "Application", and for "Source" choose "From File".
- When the file selector appears, choose the zip file that you have downloaded. Select Open, and then Ok.
- This should install the package in the correct directory. You may then have to restart Mathematica to see the AtomicDensityMatrix package appear in the Documentation center under "Installed AddOns".
- The package can be loaded into Mathematica by evaluating
<<AtomicDensityMatrix`
- Alternatively, the package can be installed manually by unzipping into the "Applications" subdirectory of the Mathematica
base directory. You can find this directory by evaluating
ToFileName[{$BaseDirectory, "Applications"}]
orToFileName[{$UserBaseDirectory, "Applications"}]
in Mathematica. (This installation method may not work properly on macs.)
- v13.07.19
- Updated for compatibility with Mathematica 9:
- In Mathematica 9, the functionality of "PhysicalConstants`" and "Units`" has been completely redesigned, and merged with the kernel. However, I don't think loading these packages causes any conflict with built-in functionality, so for the time being, I'm just going to continue loading these packages (and suppress the obsolete package warning). Please let me know if you encounter any conflicts.
- The functionality of the "VectorAnalysis`" package has been redesigned and incorporated into the kernel. There was very little use of it in the ADM package, so I was able to remove the dependency on the "VectorAnalysis`" package altogether.
- There is a new TensorProduct function in Mathematica 9, so the ADM TensorProduct function has been renamed SphericalTensorProduct
- Renamed Label as StateLabel; the option Label for DensityMatrix has been renamed DMLabel. User notebooks that use the Label command will need to be changed correspondingly.
- Fixed problems stemming from new (fixed) ComplexExpand behavior.
- Native documentation was restyled in version 9, producing some ugly layout problems in the ADM documentation. Cross-version documentation has now been implemented using the method described here.
- Updated documentation.
- Fixed a bug blocking the package from showing up in the "Add-ons" section of the Documentation Center.
- Fixed web links in the ADM documentation, making them point to the online version of the documentation.
- Made functions for obtaining atomic parameters automatically thread over atomic systems.
- Speed optimizations.
- Changed optical field parameterization specifications to strings.
- Updated for compatibility with Mathematica 9:
- v13.07.07
- Added "Nonlinear Magneto-optical Rotation with Frequency-modulated Light" example.
- Updated "EIT and Atomic Polarization", "Breit-Rabi", "Rotating-wave Approximation", and other assorted tutorials.
- Added symbol pages for RotatingWaveApproximation and F.
- Modified DropFastTerms (and RotatingWaveApproximation) so that sums of two different optical frequencies are not dropped. Also extended to allow some more complicated expressions as frequency arguments.
- Extended StatePosition, SelectStates, and related functions to allow specification of the selection criteria Label == lab as just lab.
- Extended RotatingWaveApproximation, RotatingWaveTransform and RotatingWaveTransformMatrix to automatically generate the RWA transform matrix given a list of optical frequencies and the associated levels that they couple. Also allow the posibility to specify the optical detuning parameters along with the optical frequencies.
- Defined new function ReplaceMatrixElement that applies replacement rules to particular matrix elements in an operator selected according to their cooresponding AtomicState parameters.
- Defined new function StateMatchQ
- v13.06.09
- Corrected the units for quantities in AtomicData by changing Hertz to 1/Second (all quantities are in omega units, rad/sec, but were incorrectly labelled as being Hertz). If your application depends on the AtomicData package, it may require modification.
- Extended RotatingWaveTransformMatrix to allow manual specification of level shifts
- Changed ToContravariant and ToCovariant to use Dual rather than GeneralizedConjugateTranspose when converting between co- and contravariant quantities in order to correctly handle complex vectors
- Included SphericalPhase parameterization in OpticalField
- Modified BranchingRatio so that it returns zero if it can tell that the reverse branching ratio is nonzero.
- Fixed links in documentation.
- Updated documentation.
- Updated installation instructions
- v12.08.15
- Added parities for alkali states to AtomicData
- Added ParityOffset option to LevelDiagram
- Updated and added usage messages.
- v12.06.21
- Documented the Voigt profile in the Linear Absorption Fitting example
- Modified SublevelMultiplicity so that it returns (2F+1) when F is defined (suggested by Guobin Liu)
- Modified DopplerWidth to work if lower and upper states are given in either order (suggested by Guobin Liu)
- WignerD is defined as a system function in Mathematica 8. Therefore the ADM version of WignerD has been renamed ADMWignerD, and the built-in WignerD has been overloaded so that it calls ADMWignerD when given arguments that match the ADMWignerD format.
- Fixed linear absorption for Toy systems
- SelectStates now allows boolean operators in the selection criteria
- Speed enhancements
- Split more functions into subpackages
- Removed outer matrix in return value of PolarizationMatrices with numerical argument
- LevelDiagram improvements
- Assorted documentation improvements
- v10.07.17
- Package now loads with
<<AtomicDensityMatrix`
rather than<<AtomicPhysics`
. A dummyAtomicPhysics
package that calls theAtomicDensityMatrix
package is provided for backwards compatibility. - Updated documentation
- Package now loads with
- v10.07.09
- Standardized WignerRotate function
- Standardized AMPSPlot for polarization-moment expansions
- Added "Quantum-mechanical rotations" tutorial
- Updated documentation
- v10.06.28
- Added options to Ket function
- Updated some tutorials
- Split LevelDiagram and perturbative solve functions into subpackages
- Fixed bug in LevelDiagram for Mathematica 6.0 and made speed improvements
- v10.04.28
- Speed improvements in SteadyStatePerturbativeSolve, OpticalRepopulation
- v10.04.20
- Modified package context structure
- Speed optimizations
- Migrated development to Wolfram Workbench
- Added DopplerWidth and MostProbableSpeed functions
- Added "Linear Absorption Fitting" example
- Fixed Component function for tensor decomposition matrix input
- Combined DMElementPattern and DMElementPartPattern functions
- v09.12.08
- Corrected sign error in optical-field azimuthal angle
- Flipped rotating wave transform from active to passive
- Changed UnitaryTransformation to EffectiveHamiltonian
- Changed DMRotating to DMFromRotatingDM
- Included PlotAndFit package in distribution
- v09.09.07
- Added potassium to AtomicData
- Added AtomicTransition function to AtomicData package
- v09.08.07
- Added ExcitedStates function
- Added LinearAbsorption function
- Improved LevelDiagram function
- Improved SphericalTensorQ function
- Extended SublevelMultiplicity function
- Change in internals of WignerEckart function
- Fixed bug in RotatingWaveTransform
- v09.06.09
- Internal change in ExprToReIm
- Fixed bug in DMElementPattern
- Fixed bug in FluorescenceOperator for angle-integrated case
- v08.12.09
- Improved LevelDiagram function
- Renamed FluorescenceOperator as OpticalRepopulationOperator, added new FluorescenceOperator function that calculates fluorescence into a solid angle
- Wrote usage messages for some symbols.
- Updated values in AtomicData and added Na
- v08.10.30
- Improved TensorForm, Component, PolarizationMoments, LevelDiagram functions
- Added PolarizationMoments representation to OpticalRepopulation function
- Set up LiouvilleEquation function to produce Bloch equations in terms of polarization moments
- Extended ToCartesian function to apply to operators and arbitrary rank spherical tensors
- Added "EIT and Atomic Polarization" example
- v08.10.23
- Worked on LevelDiagram function
- Separated out AtomicDensityMatrix`Common` package
- Changed behavior of F parameter: it now returns J if F is not defined
- Changed labeling of density matrix elements in Toy systems: labels are no longer enclosed in lists
- Generalized tensor operations to include imaginary/nonhermitian tensors
- Improved TensorForm function
- Updated "MatrixNotation", "Matrix Multiplication" tutorials
- v08.10.07
- Fixed bug in Recomposition function
- Improved LevelDiagram function
- Updated "Angular-momentum Probability surfaces" example
- Improved "Collapse and Revival Quantum Beats" example
- v08.09.22
- Expanded "Two-level system", and "NMOR" examples
- Updated "Breit-Rabi Diagram", "Collapse and Revival", "Three-level System", "Angular-momentum Probability Surfaces" examples
- Improved LevelDiagram, TransitRepopulation, DensityMatrix, DMVariables, Recomposition functions
- Changed polarization moment expansion coefficients to contravariant to match Varshalovich
- Fixed bug in Component function
- Added CovariantDecompositionQ, ContravariantDecompositionQ, CovariantDecompositionMatrixQ, ContravariantDecompositionMatrixQ, TensorForm functions
- Added link to source code in documentation
- v08.07.07
- Added "The AC Stark Effect" example
- Added "The Wigner-Eckart Theorem", "Constructing the Hamiltonian", "The Rotating-wave Approximation" tutorials
- Improved LevelDiagram function
- v08.06.29
- Got documentation working in 6.0.3
- Revamped Guide page
- Added "Displaying the Density Matrix" tutorial
- Added "Collapse and Revival Quantum Beats" example
- Added symbol reference pages for DensityMatrix, DMVariables, Ket, AtomicState, L, S
- Added $ADMVersion symbol.
- v08.05.26
- Streamlined internals of OpticalField
- Improved Region input to Hamiltonian
- Eliminated FractionalDensity Region parameter
- Included case of multiple ground states in TransitRepopulation
- Added "Isolating the Hexadecapole Moment" example
- Added GFactor parameter to AtomicState
- Added LevelDiagram function (prototype)
- Added "The Stark Effect" example
- Added "Hyperfine Structure: Breit-Rabi Diagram" example