ts-quantum
Version:
TypeScript library for quantum mechanics calculations and utilities
63 lines (62 loc) • 2.46 kB
TypeScript
/**
* Angular momentum composition implementation
* Includes Clebsch-Gordan coefficients and angular momentum addition
*/
import { Complex } from '../core/types';
import { StateVector } from '../states/stateVector';
/**
* Validates angular momentum quantum numbers for Clebsch-Gordan coefficient
*
* @param j1 First angular momentum
* @param m1 Magnetic quantum number for j1
* @param j2 Second angular momentum
* @param m2 Magnetic quantum number for j2
* @param j Total angular momentum
* @param m Total magnetic quantum number
* @throws Error if constraints are violated
*/
declare function validateAngularMomentum(j1: number, m1: number, j2: number, m2: number, j: number, m: number): void;
/**
* Checks if a Clebsch-Gordan coefficient is zero based on selection rules
*
* @param j1 First angular momentum
* @param m1 Magnetic quantum number for j1
* @param j2 Second angular momentum
* @param m2 Magnetic quantum number for j2
* @param j Total angular momentum
* @param m Total magnetic quantum number
* @returns true if coefficient is zero
*/
declare function isZeroCG(j1: number, m1: number, j2: number, m2: number, j: number, m: number): boolean;
/**
* Calculates a single Clebsch-Gordan coefficient
*
* @param j1 First angular momentum
* @param m1 Magnetic quantum number for j1
* @param j2 Second angular momentum
* @param m2 Magnetic quantum number for j2
* @param j Total angular momentum
* @param m Total magnetic quantum number
* @returns Complex number representing the coefficient
*/
declare function clebschGordan(j1: number, m1: number, j2: number, m2: number, j: number, m: number): Complex;
/**
* Combines two quantum states using Clebsch-Gordan coefficients
*
* @param state1 First quantum state
* @param j1 Angular momentum of first state
* @param state2 Second quantum state
* @param j2 Angular momentum of second state
* @returns Combined quantum state
*/
declare function addAngularMomenta(state1: StateVector, j1: number, state2: StateVector, j2: number): StateVector;
/**
* Decomposes a coupled state into uncoupled basis states
*
* @param state Coupled quantum state
* @param j1 First angular momentum
* @param j2 Second angular momentum
* @returns Map of uncoupled states
*/
declare function decomposeAngularState(state: StateVector, j1: number, j2: number): Map<string, StateVector>;
export { clebschGordan, addAngularMomenta, decomposeAngularState, validateAngularMomentum, isZeroCG };