UNPKG

ts-quantum

Version:

TypeScript library for quantum mechanics calculations and utilities

63 lines (62 loc) 2.46 kB
/** * 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 };