default_multi_nv_model
- default_multi_nv_model(orientations, positions, nitrogen_isotopes=None, carbon_atom_indices=None, static_field_strengths=0.05, static_field_directions=None, add_default_driving_fields=True, include_hyperfine=True, include_dipolar=True, secular_approximation=False, quantization_axis='global_z', qubit_subspace_electron=(0, -1), qubit_subspace_nitrogen=None, qubit_subspace_carbon=(-0.5, 0.5), warn_on_ambiguous_labels=True, rotating_frame=None)
Create a model containing multiple NV centers with arbitrary orientations and positions.
Parameters shared with
default_nv_model()are documented there; this docstring focuses on the multi-NV-specific extensions.- Parameters:
orientations (
List[Tuple[float,float,float]]) – List of anisotropy axes for each NV center. Each orientation should be one of(1, 1, 1),(1, -1, -1),(-1, 1, -1), or(-1, -1, 1), representing the possible crystallographic axes of NV centers in diamond.positions (
List[Tuple[float,float,float]]) – List of positions (x, y, z) in nanometers for each NV center.nitrogen_isotopes (
List[int|None] |None) – Optional list of nitrogen isotopes (14 or 15) for each NV.carbon_atom_indices (
Sequence[Sequence[Tuple[int,int,int,int]] |None] |None) – Optional per-NV list of carbon-index lists. Each outer element corresponds to one NV center and contains the carbon tuples accepted bydefault_nv_model(). For a single NV, a flat list of tuples is also accepted for convenience.static_field_strengths (
int|float|Sequence[int|float]) – Scalar or iterable of static field magnitudes (T). A single value creates one globalStaticFieldshared by every spin; an iterable must matchorientationsand yields one field per NV centre (automatically targeting the corresponding electron and nitrogen spins).static_field_directions (
Sequence[int|float] |Sequence[Sequence[int|float]] |None) –None(uses the lab-frame \(\hat{z}\) axis), a single 3-component direction applied to the broadcast field, orlen(orientations)direction vectors aligned with the per-NV strengths.add_default_driving_fields (
bool) – IfTrue(default), add the default linear driving fieldsMW_xandRF_x. IfFalse, leave the model without driving fields.include_hyperfine (
bool) – Whether to include the e–N hyperfine coupling.include_dipolar (
bool) – Whether to include e–e dipolar coupling.secular_approximation (
bool) – IfTrue, keep only the builder-added interactionzzterms.quantization_axis (
Any) – Quantization axis applied to every spin, or a list with one axis per created spin. Each axis accepts'global_z','anisotropy_axis','local_static_field'or an explicit vector.qubit_subspace_electron (
Tuple[int|float,int|float]) – Qubit subspace for all NV electron spins. Default is(0, -1).qubit_subspace_nitrogen (
Tuple[int|float,int|float] |None) – Qubit subspace for nitrogen spins. IfNone(default), keeps the current isotope-specific defaults:(0, -1)for \(^{14}N\) and(-1/2, 1/2)for \(^{15}N\).qubit_subspace_carbon (
Tuple[int|float,int|float]) – Qubit subspace for all carbon-13 spins.warn_on_ambiguous_labels (
bool) – IfTrue(default), warn when eigenstate labels have low overlap with their assigned local-\(S_z\) product-basis states.rotating_frame (
RotatingFrameSetter|None) – Optional rotating-frame setter installed on the returned model. If omitted, the builder installs the defaultRotatingFrameSetter().
- Return type:
- Returns:
Multi-NV spin model with orientation and spatially resolved dipolar interactions.