
AtomicDensityMatrix
mathematica package
about : download : installation : laser guide stars : images : movies : 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.
Note: The ADM package has been checked for correctness in a large variety of circumstances, but there are certainly many cases that have not been checked. Please send bug reports to simonr@berkeley.edu.
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
- Current version:
- Previous versions:
- ADM_12.06.21.zip
- ADM_10.07.17.zip
- ADM_10.07.09.zip
- ADM_10.06.28.zip
- ADM_10.04.28.zip
- ADM_10.04.20.zip
- ADM_09.12.08.zip
- ADM_09.09.07.zip
- ADM_09.08.07.zip
- ADM_09.06.09.zip
- ADM_08.12.09.zip
- ADM_08.10.30.zip
- ADM_08.10.23.zip
- ADM_08.10.07.zip
- ADM_08.09.22.zip
- ADM_08.07.07.zip
- ADM_08.06.29.zip
- ADM_08.05.26.zip
- ADM_08.05.15.zip
- Download ADM_yy.mm.dd.zip
- Unzip into the "Applications" subdirectory of the Mathematica
base directory. You can find this directory by evaluating
ToFileName[{$BaseDirectory, "Applications"}]
orToFileName[{$UserBaseDirectory, "Applications"}]
in Mathematica - After restarting Mathematica, the beginnings of a help file and demos should be available in the Mathematica Documentation Center under "Installed Add-Ons" (lower right-hand corner)
- The package can be loaded into Mathematica by evaluating
<<AtomicDensityMatrix`
The LGSBloch package is an extension to the Atomic Density Matrix package that contains routines for calculating the return flux from optically excited alkali atoms, specifically designed for Na atoms in the mesosphere.
This software has been developed and tested under Mathematica 7.1, and we believe it should run under version 6.x as well.
LGSBloch installation instructions
- Current version:
- LGSBloch_12.06.25.zip (Added SimpleLGSBlochTest.nb file, and updated installation instructions.)
- Previous versions:
- LGSBloch_12.06.21.zip (Update to work with latest version of ADM package. Also, a bug with the handling of atomic recoil was fixed, which may cause small changes to return flux results. Other assorted improvements.)
- LGSBloch_10.07.17.zip (Update to work with latest version of ADM package)
- LGSBloch_09.10.12.zip
- LGSBloch_09.10.06.zip
- 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
- 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 AtomicPhysics`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