mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 12:23:31 +01:00
48 lines
693 B
OCaml
48 lines
693 B
OCaml
(** Electron spin *)
|
|
|
|
type t = (* m_s *)
|
|
| Alfa (* {% $m_s = +1/2$ %} *)
|
|
| Beta (* {% $m_s = -1/2$ %} *)
|
|
|
|
let other = function
|
|
| Alfa -> Beta
|
|
| Beta -> Alfa
|
|
|
|
(*
|
|
let half = 1. /. 2.
|
|
|
|
|
|
(** {% $\alpha(m_s)$ %} *)
|
|
let alfa = function
|
|
| n, Alfa -> n
|
|
| _, Beta -> 0.
|
|
|
|
|
|
(** {% $\beta(m_s)$ %} *)
|
|
let beta = function
|
|
| _, Alfa -> 0.
|
|
| n, Beta -> n
|
|
|
|
|
|
(** {% $S_z(m_s)$ %} *)
|
|
let s_z = function
|
|
| n, Alfa -> half *. n, Alfa
|
|
| n, Beta -> -. half *. n, Beta
|
|
|
|
let s_plus = function
|
|
| n, Beta -> n , Alfa
|
|
| _, Alfa -> 0., Alfa
|
|
|
|
let s_minus = function
|
|
| n, Alfa -> n , Beta
|
|
| _, Beta -> 0., Beta
|
|
|
|
let ( ++ ) (n, t) (m,t) =
|
|
(m. +n.)
|
|
|
|
let s2 s =
|
|
s_minus @@ s_plus s +.
|
|
s_z s +.
|
|
s_z @@ s_z s
|
|
*)
|