[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QFRF62XAVVVZ790GVZACDN":3,"skill-same:01M6QFRF62XAVVVZ790GVZACDN":125},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":14,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6QFRF62XAVVVZ790GVZACDN","qutip",null,"Simulate and audit closed and open quantum-system models with QuTiP 5, including deterministic, trajectory, steady-state, spectral, and phase-space workflows. Use for local quantum-dynamics work where physical assumptions, dimensions, and numerical convergence must be explicit.","Tashima-Tarsh\u002FDisha6.6","Tashima-Tarsh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F269906498?v=4","01M6PBH98X03XERH0HFT4PFB1P","NITISH KUMAR","01M6PBH9DA0M6KM3Z12P848F0K",0,"MIT","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"extra","phase","for","convergence","dynamics","physics","local","dimensions","deterministic","uv","workflows","work","open","simulation","credentials","network","audit","library","run","2026-11-10 10:12:30",false,"---\nname: qutip\ndescription: Simulate and audit closed and open quantum-system models with QuTiP 5, including deterministic, trajectory, steady-state, spectral, and phase-space workflows. Use for local quantum-dynamics work where physical assumptions, dimensions, and numerical convergence must be explicit.\nlicense: MIT\ncompatibility: Requires Python 3.11+, uv, and qutip==5.3.0 for executable simulations. Bundled planners and all script help run with the Python standard library; plotting requires the pinned graphics extra. No network service or credentials are used.\nmetadata:\n  version: '1.2'\n  category: physical-sciences\n  maintainer: Kalaris Labs\n  last-reviewed: '2026-07-23'\n  tags: quantum dynamics, open quantum systems, quantum simulation, physics\n---\n\n# QuTiP 5\n\n## Scope\n\nUse QuTiP for finite-dimensional quantum mechanics, quantum optics, Lindblad\ndynamics, trajectories, weak-coupling Bloch-Redfield models, and specialized\nFloquet, HEOM, and permutational-invariance methods. It is not a hardware\nexecution SDK. Circuit and control functionality moved to separate QuTiP family\npackages.\n\nThis skill targets **QuTiP 5.3.0**, released 2026-05-22. QuTiP 5.3 requires\nPython 3.11 or newer. Its required distributions are NumPy (`>=1.23.2`), SciPy\n(`>=1.9.2`, excluding `1.16.0` and `1.17.0`), and `packaging`.\n\n## Reproducible uv snapshot\n\nCreate a dedicated environment and pin every direct distribution:\n\n```bash\nuv venv --python 3.11\nuv pip install \"qutip==5.3.0\"\n```\n\nFor plots:\n\n```bash\nuv pip install \"qutip[graphics]==5.3.0\"\n```\n\nOptional QuTiP family packages are independently versioned:\n\n```bash\nuv pip install \"qutip-qip==0.4.2\"\nuv pip install \"qutip-qtrl==0.2.0\"\nuv pip install \"qutip-jax==0.1.1\"\n```\n\n- `qutip-qip` 0.4.2 (2026-06-23) is the production\u002Fstable circuit, gate, and\n  noisy-device simulation package. Import from `qutip_qip`, not `qutip.qip`.\n- `qutip-qtrl` 0.2.0 (2026-06-23) provides GRAPE and CRAB **quantum optimal\n  control**. It is not a trajectory viewer. Import from `qutip_qtrl`, not\n  `qutip.control`; PyPI still classifies it pre-alpha.\n- `qutip-jax` 0.1.1 (2025-05-29) is the official JAX data backend for GPU and\n  automatic-differentiation experiments. It is explicitly pre-alpha.\n- `qutip-cupy` is an official QuTiP-organization repository, but it has no PyPI\n  release and its own README says it is not officially released. Do not put an\n  unreleased Git install into a reproducible workflow.\n\nUse a project lockfile or a hash-generating `uv pip compile` workflow when\ntransitive dependency identity must also be frozen.\n\n## Non-negotiable model contract\n\nBefore solving, record:\n\n1. **Units and convention.** QuTiP equations normally set \\(\\hbar=1\\).\n   Hamiltonian entries are angular frequencies and rates have reciprocal-time\n   units. Convert cyclic frequency with \\(2\\pi f\\); never mix Hz and rad\u002Fs.\n2. **Subsystem order.** `tensor(A, B, C)` fixes subsystem indices `0, 1, 2`.\n   Preserve that order in every state, operator, collapse channel, and partial\n   trace. `obj.ptrace([0, 2])` keeps those subsystems; it does not trace them.\n3. **State validity.** Check ket norm or density-matrix Hermiticity, unit trace,\n   and eigenvalues above a stated negative tolerance. Tiny negative values may\n   be numerical; material negativity invalidates a claimed state.\n4. **Generator meaning.** A Lindblad channel with rate `gamma` is represented\n   by `sqrt(gamma) * A`, not `gamma * A`. Define what each rate measures. For\n   example, `sqrt(gamma_phi \u002F 2) * sigmaz()` gives coherence decay\n   `exp(-gamma_phi * t)`.\n5. **Approximations.** State rotating-wave, Born-Markov, secular, weak-coupling,\n   bath-equilibrium, truncation, symmetry, and initial-factorization assumptions\n   wherever used.\n6. **Numerics.** Justify Hilbert truncation, output grid, integration method,\n   tolerances, trajectory count, and random seeds. Report `result.stats`.\n7. **Convergence.** Sweep every artificial cutoff: Fock dimension, time\u002Ffrequency\n   window and spacing, ODE tolerances, trajectories, Floquet harmonics, HEOM\n   depth and bath exponents, or PIQS representation as applicable.\n\n## Qobj, dimensions, and tensor order\n\nPrefer explicit imports and inspect both shape and structured dimensions:\n\n```python\nfrom qutip import basis, qeye, sigmaz, tensor\n\npsi = tensor(basis(2, 0), basis(3, 1))\nz_on_first = tensor(sigmaz(), qeye(3))\n\nassert psi.shape == (6, 1)\nassert psi.dims == [[2, 3], [1]]\nassert z_on_first.dims == [[2, 3], [2, 3]]\nrho_first = psi.proj().ptrace(0)  # keep subsystem 0\n```\n\nMatrix shape alone is insufficient: two objects can both be 6-by-6 but encode\ndifferent tensor factorizations. Read `references\u002Fcore_concepts.md` before\nbuilding composite, superoperator, or channel models.\n\n## Choose the solver by physics\n\n| Model | Current API | Required justification |\n|---|---|---|\n| Closed, pure, unitary | `sesolve` | Hermitian Hamiltonian; no dissipation |\n| Lindblad\u002Fopen or mixed | `mesolve` | Markovian completely positive model and channel rates |\n| Quantum jumps | `mcsolve` | Unravelling, trajectory convergence, seeds |\n| Microscopic weak bath | `brmesolve` | Born-Markov\u002Fweak coupling, spectra, secular choice |\n| Diffusive measurement | `ssesolve`, `smesolve` | monitored versus unmonitored channels |\n| Periodic drive | `FloquetBasis`, `fsesolve`, `fmmesolve` | verified period and Floquet convergence |\n| Structured non-Markovian bath | `qutip.solver.heom` | bath expansion and hierarchy convergence |\n| Symmetric spin ensemble | `qutip.piqs` | permutation symmetry and basis choice |\n\nDo not select a more specialized solver merely because it exists.\n\n## Deterministic open-system example\n\nQuTiP 5.3 uses ordinary option dictionaries. Solver controls, `e_ops`, and\n`args` are keyword-only; the old mutable options object is gone.\n\n```python\nimport numpy as np\nfrom qutip import basis, mesolve, sigmam, sigmaz\n\nomega = 2.0\ngamma = 0.15\ntlist = np.linspace(0.0, 20.0, 401)\nexcited = basis(2, 0)\n\nresult = mesolve(\n    0.5 * omega * sigmaz(),\n    excited,\n    tlist,\n    c_ops=[np.sqrt(gamma) * sigmam()],\n    e_ops={\"sigma_z\": sigmaz(), \"excited\": excited.proj()},\n    options={\n        \"method\": \"adams\",\n        \"atol\": 1e-10,\n        \"rtol\": 1e-8,\n        \"store_final_state\": True,\n        \"progress_bar\": \"\",\n    },\n)\n\npopulation = np.asarray(result.e_data[\"excited\"])\nassert np.max(np.abs(population - np.exp(-gamma * tlist))) \u003C 2e-6\nassert isinstance(result.stats, dict)\n```\n\nIf the problem is stiff, compare `bdf` or `lsoda`; do not change an integrator\nwithout rerunning tolerance and invariant checks. QuTiP 5.3 also supports\n`options={\"matrix_form\": True}` in `mesolve`; benchmark and validate it before\nusing it as a default.\n\n## Time-dependent systems\n\nPrefer trusted Pythonic callables or numeric coefficient arrays. Do not create\ncoefficient source strings from user input.\n\n```python\nimport numpy as np\nfrom qutip import QobjEvo, sigmax, sigmaz\n\ndef envelope(t, amplitude, center, width):\n    return amplitude * np.exp(-0.5 * ((t - center) \u002F width) ** 2)\n\nH = QobjEvo(\n    [0.5 * sigmaz(), [sigmax(), envelope]],\n    args={\"amplitude\": 0.2, \"center\": 5.0, \"width\": 1.0},\n)\ninstantaneous_H = H(5.0)\nH.arguments(amplitude=0.1)\n```\n\nThe older `f(t, args)` coefficient signature is deprecated in 5.3 and is\nscheduled for removal in 5.5. See `references\u002Ftime_evolution.md`.\n\n## Trajectories and stochastic solvers\n\n```python\nimport numpy as np\nfrom qutip import basis, mcsolve, sigmam, sigmaz\n\ntlist = np.linspace(0.0, 10.0, 201)\nresult = mcsolve(\n    0.5 * sigmaz(),\n    basis(2, 0),\n    tlist,\n    [np.sqrt(0.2) * sigmam()],\n    e_ops=[basis(2, 0).proj()],\n    ntraj=400,\n    seeds=20260723,\n    options={\"keep_runs_results\": False, \"progress_bar\": \"\"},\n)\n```\n\nReport `ntraj`, `result.seeds`, uncertainty or repeated-seed sensitivity, and\nwhether individual runs were retained. Reuse `seeds=previous_result.seeds` only\nwhen paired trajectories are intentional. `ssesolve` and `smesolve` use the\nboolean `heterodyne` argument, not legacy integer noise codes.\n\n## Steady states, spectra, and phase space\n\n```python\nimport numpy as np\nfrom qutip import QFunc, liouvillian, operator_to_vector, qfunc, steadystate\n\nrho_ss = steadystate(H, c_ops, method=\"direct\")\nresidual = (liouvillian(H, c_ops) * operator_to_vector(rho_ss)).norm()\nassert residual \u003C 1e-9\n\nxvec = np.linspace(-5.0, 5.0, 151)\nQ_once = qfunc(rho_ss, xvec, xvec)\nq_many = QFunc(xvec, xvec)\nQ_again = q_many(rho_ss)\nassert Q_once.shape == (len(xvec), len(xvec))\n```\n\nFor `wigner`, `qfunc`, and `QFunc`, array element `[j, k]` corresponds to\n`yvec[j]`, `xvec[k]`. In QuTiP 5.3, `QFunc` is initialized with fixed\ncoordinates and called with a state; it has no `.eval` method. This skill never\nuses Python dynamic-code execution. Prefer `plot_wigner`, `Result.plot_expect`,\nor explicit Matplotlib axes as documented in `references\u002Fvisualization.md`.\n\nDirect `spectrum` is a stationary steady-state spectrum. An FFT of a finite\ncorrelation requires explicit checks for tail decay, timestep aliasing,\nfrequency resolution, window sensitivity, and transform convention. See\n`references\u002Fanalysis.md`.\n\n## Advanced boundaries\n\n- Import HEOM from `qutip.solver.heom`; the legacy QuTiP 4 nonmarkov HEOM\n  namespace is stale.\n- Use `FloquetBasis` for modes and quasi-energies. Verify\n  `H(t + T) == H(t)` numerically and sweep basis\u002Ftruncation choices.\n- Access PIQS with `from qutip import piqs`. `Dicke.pisolve` is only the\n  optimized diagonal-state\u002Fdiagonal-Hamiltonian route; general Dicke-basis\n  dynamics use the Liouvillian with `mesolve`.\n- `brmesolve` can violate positivity, especially without secularization. Check\n  density-matrix eigenvalues over time.\n- QIP and optimal control are extension-package concerns. Never present local\n  simulation as quantum-hardware execution.\n\nSee `references\u002Fadvanced.md` for HEOM, Floquet, PIQS, stochastic, and extension\nboundaries.\n\n## Safe local CLIs\n\nAll bundled tools are local-only, emit strict JSON, reject non-finite JSON and\nunknown keys, and never load pickle files or executable model code. Simulation\nimports are lazy, so every `--help` works without QuTiP installed.\n\n| Script | Purpose |\n|---|---|\n| `scripts\u002Fqobj_model_validator.py` | Validate bounded Qobj model JSON, dimensions, states, rates, and role compatibility |\n| `scripts\u002Ftwo_level_simulation.py` | Run a bounded two-level Lindblad or jump simulation |\n| `scripts\u002Fsolver_config_planner.py` | Select a current solver and option\u002Fchecklist plan |\n| `scripts\u002Fconvergence_sweep.py` | Sweep tolerances\u002Fgrid size or trajectory count on a synthetic model |\n| `scripts\u002Fresult_audit.py` | Audit JSON output without deserializing Python objects |\n| `scripts\u002Fsteady_state_spectrum_planner.py` | Plan bounded steady-state and direct\u002FFFT spectral checks |\n\nExample:\n\n```bash\npython skills\u002Fqutip\u002Fscripts\u002Ftwo_level_simulation.py --help\npython skills\u002Fqutip\u002Fscripts\u002Ftwo_level_simulation.py \\\n  --decay-rate 0.2 --t-final 10 --time-points 201 \\\n  --output two-level.json\npython skills\u002Fqutip\u002Fscripts\u002Fresult_audit.py two-level.json\n```\n\n## Completion checklist\n\n- Record units, \\(\\hbar\\), tensor order, initial state, channels, and model\n  assumptions.\n- Validate Hermiticity, norm\u002Ftrace, positivity, dimensions, and generator units.\n- Pin QuTiP and direct extensions; record platform, Python, NumPy, and SciPy.\n- Inspect result options and stats; do not assume states were stored.\n- Perform cutoff, grid, tolerance\u002Fintegrator, and stochastic convergence sweeps.\n- Save portable numeric\u002Fconfiguration summaries as JSON or text. Do not load\n  untrusted QuTiP object\u002Fresult files because object serialization can execute\n  code.\n\n## References\n\n- `references\u002Fcore_concepts.md` — Qobj, dimensions, tensor products, states,\n  channels, and unit conventions\n- `references\u002Ftime_evolution.md` — current solver signatures, options, results,\n  QobjEvo, trajectories, and numerical controls\n- `references\u002Fanalysis.md` — physical-state audits, steady states,\n  correlations, spectra, and convergence\n- `references\u002Fvisualization.md` — Wigner, Q functions, `QFunc`, Bloch, result,\n  and matrix plots\n- `references\u002Fadvanced.md` — Bloch-Redfield, stochastic, Floquet, HEOM, PIQS,\n  and QuTiP family package boundaries\n\n## Dated official sources\n\nVerified **2026-07-23**:\n\n- [QuTiP 5.3.0 PyPI metadata](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip\u002F)\n- [QuTiP 5.3.0 release](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip\u002Freleases\u002Ftag\u002Fv5.3.0)\n- [QuTiP 5.3 changelog](https:\u002F\u002Fqutip.readthedocs.io\u002Fen\u002Fstable\u002Fchangelog.html)\n- [QuTiP 5.3 API](https:\u002F\u002Fqutip.readthedocs.io\u002Fen\u002Fstable\u002Fapidoc\u002Fapidoc.html)\n- [QuTiP version-5 tutorials](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip-tutorials\u002Ftree\u002Fmain\u002Ftutorials-v5)\n- [qutip-qip PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-qip\u002F)\n- [qutip-qtrl PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-qtrl\u002F)\n- [qutip-jax PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-jax\u002F)\n- [official unreleased qutip-cupy repository](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip-cupy)\n","# QuTiP 5\n\n## Scope\n\nUse QuTiP for finite-dimensional quantum mechanics, quantum optics, Lindblad\ndynamics, trajectories, weak-coupling Bloch-Redfield models, and specialized\nFloquet, HEOM, and permutational-invariance methods. It is not a hardware\nexecution SDK. Circuit and control functionality moved to separate QuTiP family\npackages.\n\nThis skill targets **QuTiP 5.3.0**, released 2026-05-22. QuTiP 5.3 requires\nPython 3.11 or newer. Its required distributions are NumPy (`>=1.23.2`), SciPy\n(`>=1.9.2`, excluding `1.16.0` and `1.17.0`), and `packaging`.\n\n## Reproducible uv snapshot\n\nCreate a dedicated environment and pin every direct distribution:\n\n```bash\nuv venv --python 3.11\nuv pip install \"qutip==5.3.0\"\n```\n\nFor plots:\n\n```bash\nuv pip install \"qutip[graphics]==5.3.0\"\n```\n\nOptional QuTiP family packages are independently versioned:\n\n```bash\nuv pip install \"qutip-qip==0.4.2\"\nuv pip install \"qutip-qtrl==0.2.0\"\nuv pip install \"qutip-jax==0.1.1\"\n```\n\n- `qutip-qip` 0.4.2 (2026-06-23) is the production\u002Fstable circuit, gate, and\n  noisy-device simulation package. Import from `qutip_qip`, not `qutip.qip`.\n- `qutip-qtrl` 0.2.0 (2026-06-23) provides GRAPE and CRAB **quantum optimal\n  control**. It is not a trajectory viewer. Import from `qutip_qtrl`, not\n  `qutip.control`; PyPI still classifies it pre-alpha.\n- `qutip-jax` 0.1.1 (2025-05-29) is the official JAX data backend for GPU and\n  automatic-differentiation experiments. It is explicitly pre-alpha.\n- `qutip-cupy` is an official QuTiP-organization repository, but it has no PyPI\n  release and its own README says it is not officially released. Do not put an\n  unreleased Git install into a reproducible workflow.\n\nUse a project lockfile or a hash-generating `uv pip compile` workflow when\ntransitive dependency identity must also be frozen.\n\n## Non-negotiable model contract\n\nBefore solving, record:\n\n1. **Units and convention.** QuTiP equations normally set \\(\\hbar=1\\).\n   Hamiltonian entries are angular frequencies and rates have reciprocal-time\n   units. Convert cyclic frequency with \\(2\\pi f\\); never mix Hz and rad\u002Fs.\n2. **Subsystem order.** `tensor(A, B, C)` fixes subsystem indices `0, 1, 2`.\n   Preserve that order in every state, operator, collapse channel, and partial\n   trace. `obj.ptrace([0, 2])` keeps those subsystems; it does not trace them.\n3. **State validity.** Check ket norm or density-matrix Hermiticity, unit trace,\n   and eigenvalues above a stated negative tolerance. Tiny negative values may\n   be numerical; material negativity invalidates a claimed state.\n4. **Generator meaning.** A Lindblad channel with rate `gamma` is represented\n   by `sqrt(gamma) * A`, not `gamma * A`. Define what each rate measures. For\n   example, `sqrt(gamma_phi \u002F 2) * sigmaz()` gives coherence decay\n   `exp(-gamma_phi * t)`.\n5. **Approximations.** State rotating-wave, Born-Markov, secular, weak-coupling,\n   bath-equilibrium, truncation, symmetry, and initial-factorization assumptions\n   wherever used.\n6. **Numerics.** Justify Hilbert truncation, output grid, integration method,\n   tolerances, trajectory count, and random seeds. Report `result.stats`.\n7. **Convergence.** Sweep every artificial cutoff: Fock dimension, time\u002Ffrequency\n   window and spacing, ODE tolerances, trajectories, Floquet harmonics, HEOM\n   depth and bath exponents, or PIQS representation as applicable.\n\n## Qobj, dimensions, and tensor order\n\nPrefer explicit imports and inspect both shape and structured dimensions:\n\n```python\nfrom qutip import basis, qeye, sigmaz, tensor\n\npsi = tensor(basis(2, 0), basis(3, 1))\nz_on_first = tensor(sigmaz(), qeye(3))\n\nassert psi.shape == (6, 1)\nassert psi.dims == [[2, 3], [1]]\nassert z_on_first.dims == [[2, 3], [2, 3]]\nrho_first = psi.proj().ptrace(0)  # keep subsystem 0\n```\n\nMatrix shape alone is insufficient: two objects can both be 6-by-6 but encode\ndifferent tensor factorizations. Read `references\u002Fcore_concepts.md` before\nbuilding composite, superoperator, or channel models.\n\n## Choose the solver by physics\n\n| Model | Current API | Required justification |\n|---|---|---|\n| Closed, pure, unitary | `sesolve` | Hermitian Hamiltonian; no dissipation |\n| Lindblad\u002Fopen or mixed | `mesolve` | Markovian completely positive model and channel rates |\n| Quantum jumps | `mcsolve` | Unravelling, trajectory convergence, seeds |\n| Microscopic weak bath | `brmesolve` | Born-Markov\u002Fweak coupling, spectra, secular choice |\n| Diffusive measurement | `ssesolve`, `smesolve` | monitored versus unmonitored channels |\n| Periodic drive | `FloquetBasis`, `fsesolve`, `fmmesolve` | verified period and Floquet convergence |\n| Structured non-Markovian bath | `qutip.solver.heom` | bath expansion and hierarchy convergence |\n| Symmetric spin ensemble | `qutip.piqs` | permutation symmetry and basis choice |\n\nDo not select a more specialized solver merely because it exists.\n\n## Deterministic open-system example\n\nQuTiP 5.3 uses ordinary option dictionaries. Solver controls, `e_ops`, and\n`args` are keyword-only; the old mutable options object is gone.\n\n```python\nimport numpy as np\nfrom qutip import basis, mesolve, sigmam, sigmaz\n\nomega = 2.0\ngamma = 0.15\ntlist = np.linspace(0.0, 20.0, 401)\nexcited = basis(2, 0)\n\nresult = mesolve(\n    0.5 * omega * sigmaz(),\n    excited,\n    tlist,\n    c_ops=[np.sqrt(gamma) * sigmam()],\n    e_ops={\"sigma_z\": sigmaz(), \"excited\": excited.proj()},\n    options={\n        \"method\": \"adams\",\n        \"atol\": 1e-10,\n        \"rtol\": 1e-8,\n        \"store_final_state\": True,\n        \"progress_bar\": \"\",\n    },\n)\n\npopulation = np.asarray(result.e_data[\"excited\"])\nassert np.max(np.abs(population - np.exp(-gamma * tlist))) \u003C 2e-6\nassert isinstance(result.stats, dict)\n```\n\nIf the problem is stiff, compare `bdf` or `lsoda`; do not change an integrator\nwithout rerunning tolerance and invariant checks. QuTiP 5.3 also supports\n`options={\"matrix_form\": True}` in `mesolve`; benchmark and validate it before\nusing it as a default.\n\n## Time-dependent systems\n\nPrefer trusted Pythonic callables or numeric coefficient arrays. Do not create\ncoefficient source strings from user input.\n\n```python\nimport numpy as np\nfrom qutip import QobjEvo, sigmax, sigmaz\n\ndef envelope(t, amplitude, center, width):\n    return amplitude * np.exp(-0.5 * ((t - center) \u002F width) ** 2)\n\nH = QobjEvo(\n    [0.5 * sigmaz(), [sigmax(), envelope]],\n    args={\"amplitude\": 0.2, \"center\": 5.0, \"width\": 1.0},\n)\ninstantaneous_H = H(5.0)\nH.arguments(amplitude=0.1)\n```\n\nThe older `f(t, args)` coefficient signature is deprecated in 5.3 and is\nscheduled for removal in 5.5. See `references\u002Ftime_evolution.md`.\n\n## Trajectories and stochastic solvers\n\n```python\nimport numpy as np\nfrom qutip import basis, mcsolve, sigmam, sigmaz\n\ntlist = np.linspace(0.0, 10.0, 201)\nresult = mcsolve(\n    0.5 * sigmaz(),\n    basis(2, 0),\n    tlist,\n    [np.sqrt(0.2) * sigmam()],\n    e_ops=[basis(2, 0).proj()],\n    ntraj=400,\n    seeds=20260723,\n    options={\"keep_runs_results\": False, \"progress_bar\": \"\"},\n)\n```\n\nReport `ntraj`, `result.seeds`, uncertainty or repeated-seed sensitivity, and\nwhether individual runs were retained. Reuse `seeds=previous_result.seeds` only\nwhen paired trajectories are intentional. `ssesolve` and `smesolve` use the\nboolean `heterodyne` argument, not legacy integer noise codes.\n\n## Steady states, spectra, and phase space\n\n```python\nimport numpy as np\nfrom qutip import QFunc, liouvillian, operator_to_vector, qfunc, steadystate\n\nrho_ss = steadystate(H, c_ops, method=\"direct\")\nresidual = (liouvillian(H, c_ops) * operator_to_vector(rho_ss)).norm()\nassert residual \u003C 1e-9\n\nxvec = np.linspace(-5.0, 5.0, 151)\nQ_once = qfunc(rho_ss, xvec, xvec)\nq_many = QFunc(xvec, xvec)\nQ_again = q_many(rho_ss)\nassert Q_once.shape == (len(xvec), len(xvec))\n```\n\nFor `wigner`, `qfunc`, and `QFunc`, array element `[j, k]` corresponds to\n`yvec[j]`, `xvec[k]`. In QuTiP 5.3, `QFunc` is initialized with fixed\ncoordinates and called with a state; it has no `.eval` method. This skill never\nuses Python dynamic-code execution. Prefer `plot_wigner`, `Result.plot_expect`,\nor explicit Matplotlib axes as documented in `references\u002Fvisualization.md`.\n\nDirect `spectrum` is a stationary steady-state spectrum. An FFT of a finite\ncorrelation requires explicit checks for tail decay, timestep aliasing,\nfrequency resolution, window sensitivity, and transform convention. See\n`references\u002Fanalysis.md`.\n\n## Advanced boundaries\n\n- Import HEOM from `qutip.solver.heom`; the legacy QuTiP 4 nonmarkov HEOM\n  namespace is stale.\n- Use `FloquetBasis` for modes and quasi-energies. Verify\n  `H(t + T) == H(t)` numerically and sweep basis\u002Ftruncation choices.\n- Access PIQS with `from qutip import piqs`. `Dicke.pisolve` is only the\n  optimized diagonal-state\u002Fdiagonal-Hamiltonian route; general Dicke-basis\n  dynamics use the Liouvillian with `mesolve`.\n- `brmesolve` can violate positivity, especially without secularization. Check\n  density-matrix eigenvalues over time.\n- QIP and optimal control are extension-package concerns. Never present local\n  simulation as quantum-hardware execution.\n\nSee `references\u002Fadvanced.md` for HEOM, Floquet, PIQS, stochastic, and extension\nboundaries.\n\n## Safe local CLIs\n\nAll bundled tools are local-only, emit strict JSON, reject non-finite JSON and\nunknown keys, and never load pickle files or executable model code. Simulation\nimports are lazy, so every `--help` works without QuTiP installed.\n\n| Script | Purpose |\n|---|---|\n| `scripts\u002Fqobj_model_validator.py` | Validate bounded Qobj model JSON, dimensions, states, rates, and role compatibility |\n| `scripts\u002Ftwo_level_simulation.py` | Run a bounded two-level Lindblad or jump simulation |\n| `scripts\u002Fsolver_config_planner.py` | Select a current solver and option\u002Fchecklist plan |\n| `scripts\u002Fconvergence_sweep.py` | Sweep tolerances\u002Fgrid size or trajectory count on a synthetic model |\n| `scripts\u002Fresult_audit.py` | Audit JSON output without deserializing Python objects |\n| `scripts\u002Fsteady_state_spectrum_planner.py` | Plan bounded steady-state and direct\u002FFFT spectral checks |\n\nExample:\n\n```bash\npython skills\u002Fqutip\u002Fscripts\u002Ftwo_level_simulation.py --help\npython skills\u002Fqutip\u002Fscripts\u002Ftwo_level_simulation.py \\\n  --decay-rate 0.2 --t-final 10 --time-points 201 \\\n  --output two-level.json\npython skills\u002Fqutip\u002Fscripts\u002Fresult_audit.py two-level.json\n```\n\n## Completion checklist\n\n- Record units, \\(\\hbar\\), tensor order, initial state, channels, and model\n  assumptions.\n- Validate Hermiticity, norm\u002Ftrace, positivity, dimensions, and generator units.\n- Pin QuTiP and direct extensions; record platform, Python, NumPy, and SciPy.\n- Inspect result options and stats; do not assume states were stored.\n- Perform cutoff, grid, tolerance\u002Fintegrator, and stochastic convergence sweeps.\n- Save portable numeric\u002Fconfiguration summaries as JSON or text. Do not load\n  untrusted QuTiP object\u002Fresult files because object serialization can execute\n  code.\n\n## References\n\n- `references\u002Fcore_concepts.md` — Qobj, dimensions, tensor products, states,\n  channels, and unit conventions\n- `references\u002Ftime_evolution.md` — current solver signatures, options, results,\n  QobjEvo, trajectories, and numerical controls\n- `references\u002Fanalysis.md` — physical-state audits, steady states,\n  correlations, spectra, and convergence\n- `references\u002Fvisualization.md` — Wigner, Q functions, `QFunc`, Bloch, result,\n  and matrix plots\n- `references\u002Fadvanced.md` — Bloch-Redfield, stochastic, Floquet, HEOM, PIQS,\n  and QuTiP family package boundaries\n\n## Dated official sources\n\nVerified **2026-07-23**:\n\n- [QuTiP 5.3.0 PyPI metadata](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip\u002F)\n- [QuTiP 5.3.0 release](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip\u002Freleases\u002Ftag\u002Fv5.3.0)\n- [QuTiP 5.3 changelog](https:\u002F\u002Fqutip.readthedocs.io\u002Fen\u002Fstable\u002Fchangelog.html)\n- [QuTiP 5.3 API](https:\u002F\u002Fqutip.readthedocs.io\u002Fen\u002Fstable\u002Fapidoc\u002Fapidoc.html)\n- [QuTiP version-5 tutorials](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip-tutorials\u002Ftree\u002Fmain\u002Ftutorials-v5)\n- [qutip-qip PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-qip\u002F)\n- [qutip-qtrl PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-qtrl\u002F)\n- [qutip-jax PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fqutip-jax\u002F)\n- [official unreleased qutip-cupy repository](https:\u002F\u002Fgithub.com\u002Fqutip\u002Fqutip-cupy)\n",{"name":5,"license":15,"metadata":43,"description":7,"compatibility":49},{"tags":44,"version":45,"category":46,"maintainer":47,"last-reviewed":48},"quantum dynamics, open quantum systems, quantum simulation, physics","1.2","physical-sciences","Kalaris Labs","2026-07-23","Requires Python 3.11+, uv, and qutip==5.3.0 for executable simulations. Bundled planners and all script help run with the Python standard library; plotting requires the pinned graphics extra. No network service or credentials are used.","main","0da4485785ee599388900be50db1635489d53056",".agents\u002Fskills\u002Fkal-qutip","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6","https:\u002F\u002Fdisha6.6.thenitishkr.in\u002F","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh","www.thenitishkr","thenitishkr | AI • Cyber-security • Research\r\n","2026-11-08 03:33:25",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add Tashima-Tarsh\u002FDisha6.6 --skill qutip",{"tool":65,"command":66},"bunx","bunx skills add Tashima-Tarsh\u002FDisha6.6 --skill qutip",{"tool":68,"command":69},"pnpm","pnpm dlx skills add Tashima-Tarsh\u002FDisha6.6 --skill qutip","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002FSKILL.md",true,[73,79,83,87,91,95,101,105,109,113,117,121],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fadvanced.md","REFERENCE","参考文档",12974,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Freferences\u002Fadvanced.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fanalysis.md",10333,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Freferences\u002Fanalysis.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fcore_concepts.md",8519,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Freferences\u002Fcore_concepts.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Ftime_evolution.md",12542,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Freferences\u002Ftime_evolution.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fvisualization.md",8771,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Freferences\u002Fvisualization.md",{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"scripts\u002F_common.py","SCRIPT","脚本",12072,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002F_common.py",{"path":102,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":103,"sourceHtmlUrl":104},"scripts\u002Fconvergence_sweep.py",12418,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Fconvergence_sweep.py",{"path":106,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fqobj_model_validator.py",10932,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Fqobj_model_validator.py",{"path":110,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fresult_audit.py",12043,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Fresult_audit.py",{"path":114,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Fsolver_config_planner.py",10090,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Fsolver_config_planner.py",{"path":118,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Fsteady_state_spectrum_planner.py",7981,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Fsteady_state_spectrum_planner.py",{"path":122,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Ftwo_level_simulation.py",12724,"https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fkal-qutip\u002Fscripts\u002Ftwo_level_simulation.py",[126,157,182,209,232,255],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":137,"publishedAt":38},"01M6QRD07D4TGNDK6VJ4EHF8BV","youtube-full","Use when the user needs YouTube transcripts, video search, channel browsing, playlist extraction, or content monitoring. Trigger phrases: 'get the transcript for', 'search YouTube for', 'what are the latest videos on', 'list this playlist', 'monitor this channel', or any request involving a YouTube URL, video ID, or @handle. Do NOT use for downloading video or audio files, YouTube engagement data (likes, comments), or private\u002Fage-restricted videos.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fyoutube-full\u002FSKILL.md",[132],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,21,154,155,156],"youtube full","youtube","full","transcript","search","monitoring","data","Video","Audio","list","files","do","get","age","trigger","URL","browsing","request","youtube transcripts",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":38},"01M6QRCJ3112VYPA97YG7KGMC2","x-twitter-growth","X\u002FTwitter growth engine for building audience, crafting viral content, and analyzing engagement. Use when the user wants to grow on X\u002FTwitter, write tweets or threads, analyze their X profile, research competitors on X, plan a posting strategy, or optimize engagement. Complements social-content (generic multi-platform) with X-specific depth: algorithm mechanics, thread engineering, reply strategy, profile optimization, and competitive intelligence via web search.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fx-twitter-growth\u002FSKILL.md",[],[164,165,166,167,142,168,169,170,171,172,173,174,175,176,177,178,179,180,181,21],"twitter","x twitter growth","growth","research","content","engineering","plan","web search","competitors","analyze","engine","write","strategy","use","platform","grow","posting","competitive",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":191,"publishedAt":38},"01M6QRBN3EHQNJY42RERP7A149","write-a-skill","Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, build, or author a new skill.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwrite-a-skill\u002FSKILL.md",[188],{"categoryNo":189,"categoryName":190,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000023","Skill与智能体开发",[192,175,193,194,195,196,197,198,177,199,200,50,201,202,203,204,205,206,207,208],"write a skill","github","create","https","productivity","matt pocock","direct","example","build","new skill","structure","new agent","resources","with","tree","progressive disclosure","author",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":38},"01M6QRB6G8P33PNGAF9Y69EJ9T","wrap-up","Close out a launched Claude Managed Agent — recap every primitive the founder now owns, regenerate the single-file overview page, and suggest the next 1-2 upgrades. Use when the user says \"wrap up\", \"close this out\", \"what do I own now\", \"give me the summary\", \"recap the agent\", or when the orchestrator routes phase=wrap-up. primitives_inventory.py tables everything owned (agent, environment, session, memory, outcome, deployment); overview_page.py regenerates a self-contained .\u002Fmy-agent\u002Fagent-overview.html; upgrade_suggester.py ranks the next moves from recorded deferrals plus standing hardening steps. Companion to run-without-you; the last stop before phase=done.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwrap-up\u002FSKILL.md",[],[216,217,218,219,220,37,221,222,223,177,224,149,225,226,227,228,229,230,231,20],"wrap up","up","wrap","gemini","deployment","file","hardening","closeout","stop","upgrade","founder","close","companion","you","tables","directions",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":239,"publishedAt":38},"01M6QRA5AYC1RBFZ39GTWGS3N8","workflow-builder","Design and write deterministic multi-agent workflow scripts (.js files in .claude\u002Fworkflows\u002F) for Claude Code's Workflow tool. Use when a user wants to build, create, author, scaffold, or run a custom Claude Code workflow, orchestrate sub-agents (fan-out, pipeline, loop, judge-panel), or automate a repeatable multi-step task across fresh-context agents.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow-builder\u002FSKILL.md",[238],{"categoryNo":189,"categoryName":190,"taxonomyType":135,"taxonomyTypeDesc":136},[240,241,242,243,29,194,37,244,245,246,247,248,175,249,148,250,251,252,253,254],"workflow","workflow builder","builder","design","code","orchestrate","pipeline","loop","multi-agent","context","across","fresh","scripts","judge","claude code workflow",{"skillNo":256,"name":257,"nameZh":6,"description":258,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":259,"categories":260,"keywords":261,"publishedAt":38},"01M6QR7QMCZESKQA0ERW1E657M","weekly-review","Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says \"\u002Fcs:weekly-review\". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[262,263,264,265,266,267,268,31,269,247,270,271,272,273,274,275,150,276,277,20],"review","weekly review","weekly","deterministic scripts","reflect","feeds","inventory","team","projects","project-management","scanner","conversation","back","project","sprint","cadence"]