spinecho_sim.solver package#
Module for simulating and plotting solenoid magnetic fields and particle trajectories.
- class spinecho_sim.solver.ExperimentalTrajectory(*, trajectory: Trajectory, positions: ndarray[Any, dtype[floating]])#
Bases:
objectRepresents the trajectory of a diatomic particle in a solenoid.
- property displacement: ParticleDisplacement#
The displacement of the particle at the end of the trajectory.
- positions: ndarray[Any, dtype[floating]]#
- property rotational_angular_momentum: Spin[tuple[int, int]]#
The rotational angular momentum of the particle.
- trajectory: Trajectory#
- class spinecho_sim.solver.FieldSolver(*, region: FieldRegion, z_start: float | None = None, z_end: float | None = None)#
Bases:
objectDataclass representing a solenoid with its parameters.
- property length: float#
- region: FieldRegion#
- simulate_diatomic_trajectories(initial_states: Sequence[StateVectorParticleState], n_steps: int = 100) StateVectorSimulationResult#
Run a solenoid simulation for multiple initial states.
- simulate_diatomic_trajectory(initial_state: StateVectorParticleState, n_steps: int = 100) StateVectorExperimentalTrajectory#
- simulate_monatomic_trajectories(initial_states: Sequence[ParticleState], n_steps: int = 100) MonatomicSimulationResult#
Run a solenoid simulation for multiple initial states.
- simulate_monatomic_trajectory(initial_state: ParticleState, n_steps: int = 100) MonatomicExperimentalTrajectory#
Run the spin echo simulation using configured parameters.
- z_end: float | None = None#
- property z_span: tuple[float, float]#
- z_start: float | None = None#
- class spinecho_sim.solver.MonatomicExperimentalTrajectory(*, trajectory: MonatomicTrajectory, positions: ndarray[Any, dtype[floating]])#
Bases:
ExperimentalTrajectoryRepresents the trajectory of a monatomic particle in a solenoid.
- property rotational_angular_momentum: Spin[tuple[int, int]]#
The rotational angular momentum of the particle.
- trajectory: MonatomicTrajectory#
- class spinecho_sim.solver.MonatomicSimulationResult(*, trajectories: 'MonatomicTrajectoryList', positions: 'np.ndarray[Any, np.dtype[np.floating]]')#
Bases:
SimulationResult- trajectories: MonatomicTrajectoryList#
- class spinecho_sim.solver.SimulationResult(*, trajectories: TrajectoryList, positions: ndarray[Any, dtype[floating]])#
Bases:
objectRepresents the result of a solenoid simulation.
- property displacements: ParticleDisplacementList#
Extract the displacements from the simulation states.
- positions: ndarray[Any, dtype[floating]]#
- trajectories: TrajectoryList#
- spinecho_sim.solver.animate_diatomic_mean_expectation_vectors(result: StateVectorSimulationResult) FuncAnimation#
- spinecho_sim.solver.animate_monatomic_mean_expectation_vectors(result: SimulationResult) FuncAnimation#
- spinecho_sim.solver.plot_diatomic_alignment_diagnostics(result: StateVectorSimulationResult, spin: Literal['I', 'J']) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_diatomic_alignment_tensor(result: StateVectorSimulationResult, spin: Literal['I', 'J']) tuple[Figure, Axes]#
Plot the traceless, symmetric rank-2 tensor Q_ij for all components.
- spinecho_sim.solver.plot_diatomic_expectation_differences(result: StateVectorSimulationResult) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_diatomic_expectation_values(result: StateVectorSimulationResult) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_diatomic_normalisation(result: StateVectorSimulationResult) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_monatomic_expectation_angles(result: SimulationResult) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_monatomic_expectation_trajectories(result: SimulationResult) tuple[Figure, Axes3D]#
- spinecho_sim.solver.plot_monatomic_expectation_values(result: SimulationResult) tuple[Figure, Axes]#
- spinecho_sim.solver.plot_monatomic_spin_states(result: SimulationResult) tuple[Figure, Axes]#