Solver
Tools for solving the NV center hamiltonian.
Zeeman Hamiltonian
from nvtools import unit
from nvtools.solver import Solver
solver = Solver()
# calculate absolute field value and angle to NV axis from two resonances
b_abs, theta = self.solver.field_from_resonances(2865 * unit.MHz, 2875 * unit.MHz)
# calculate B-Field vector from eight resonance frequencies
b_field = self.solver.field_vector_from_resonances([<list of eight resonance frequencies>])
Solver for Zeeman Hamiltonian.
- class nvtools.solver.zeeman.SolverZeeman[source]
B-field Solver.
- static field_from_resonances(fl, fu)[source]
Calculate absolute field value and angle to NV-axis.
- Parameters:
fl – lower resonance frequency
fu – upper resonance frequency
- field_from_spectrum(mw_frequency, odmr, p0_frequency=None)[source]
Calculate field from odmr spectrum.
- Parameters:
mw_frequency – MW frequency
odmr – ODMR
p0_frequency (list | None) – estimates for resonance frequencies
- field_vector_from_resonances(resonances: list[float]) BField [source]
Field vector from list of eight resonances.
Hyperfine Hamiltonian
from nvtools import unit
from nvtools.solver import Solver
# create a solver for a given nitrogen isotope
solver = Solver("14N") # or Solver("15N")
# get absolute field value and angle to NV axis from two resonances
b_abs, theta = self.solver.field_from_resonances(2865 * unit.MHz, 2875 * unit.MHz)
Solver for Hyperfine Hamiltonian.