Copyright | (c) Scott N. Walck 2016-2018 |
---|---|
License | BSD3 (see LICENSE) |
Maintainer | Scott N. Walck <walck@lvc.edu> |
Stability | experimental |
Safe Haskell | Trustworthy |
Language | Haskell98 |
Splitters, recombiners, and detectors for Stern-Gerlach experiments.
Synopsis
- data BeamStack
- randomBeam :: BeamStack
- split :: Double -> Double -> BeamStack -> BeamStack
- recombine :: Double -> Double -> BeamStack -> BeamStack
- applyBField :: Double -> Double -> Double -> BeamStack -> BeamStack
- dropBeam :: BeamStack -> BeamStack
- flipBeams :: BeamStack -> BeamStack
- numBeams :: BeamStack -> Int
- detect :: BeamStack -> [Double]
- splitX :: BeamStack -> BeamStack
- splitY :: BeamStack -> BeamStack
- splitZ :: BeamStack -> BeamStack
- applyBFieldX :: Double -> BeamStack -> BeamStack
- applyBFieldY :: Double -> BeamStack -> BeamStack
- applyBFieldZ :: Double -> BeamStack -> BeamStack
- recombineX :: BeamStack -> BeamStack
- recombineY :: BeamStack -> BeamStack
- recombineZ :: BeamStack -> BeamStack
- xpFilter :: BeamStack -> BeamStack
- xmFilter :: BeamStack -> BeamStack
- zpFilter :: BeamStack -> BeamStack
- zmFilter :: BeamStack -> BeamStack
Core laboratory components
randomBeam :: BeamStack Source #
A beam of randomly oriented spin-1/2 particles.
split :: Double -> Double -> BeamStack -> BeamStack Source #
Given angles describing the orientation of the splitter, removes an incoming beam from the stack and replaces it with two beams, a spin-up and a spin-down beam. The spin-down beam is the most recent beam on the stack.
recombine :: Double -> Double -> BeamStack -> BeamStack Source #
Given angles describing the orientation of the recombiner, returns a single beam from an incoming pair of beams.
applyBField :: Double -> Double -> Double -> BeamStack -> BeamStack Source #
Given angles describing the direction of a uniform magnetic field, and given an angle describing the product of the Larmor frequency and the time, return an output beam from an input beam.
Standard splitters
Standard magnetic fields
applyBFieldX :: Double -> BeamStack -> BeamStack Source #
Given an angle in radians describing the product of the Larmor frequency and the time, apply a magnetic in the x direction to the most recent beam on the stack.
applyBFieldY :: Double -> BeamStack -> BeamStack Source #
Given an angle in radians describing the product of the Larmor frequency and the time, apply a magnetic in the y direction to the most recent beam on the stack.
applyBFieldZ :: Double -> BeamStack -> BeamStack Source #
Given an angle in radians describing the product of the Larmor frequency and the time, apply a magnetic in the z direction to the most recent beam on the stack.
Standard combiners
recombineX :: BeamStack -> BeamStack Source #
A Stern-Gerlach recombiner in the x direction.
recombineY :: BeamStack -> BeamStack Source #
A Stern-Gerlach recombiner in the y direction.
recombineZ :: BeamStack -> BeamStack Source #
A Stern-Gerlach recombiner in the z direction.