{"id":33183068,"url":"https://github.com/qucontrol/krotov","last_synced_at":"2026-01-16T11:46:21.114Z","repository":{"id":46197036,"uuid":"156435579","full_name":"qucontrol/krotov","owner":"qucontrol","description":"Python implementation of Krotov's method for quantum optimal control","archived":false,"fork":false,"pushed_at":"2025-02-25T10:17:48.000Z","size":68824,"stargazers_count":81,"open_issues_count":10,"forks_count":31,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-11-20T22:03:33.271Z","etag":null,"topics":["optimal-control","quantum-computing","quantum-mechanics","qutip"],"latest_commit_sha":null,"homepage":"https://qucontrol.github.io/krotov","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qucontrol.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-06T19:21:21.000Z","updated_at":"2025-11-16T18:05:00.000Z","dependencies_parsed_at":"2024-06-21T16:43:30.556Z","dependency_job_id":"f72851fa-a9f3-44af-8e41-a60611e55356","html_url":"https://github.com/qucontrol/krotov","commit_stats":{"total_commits":510,"total_committers":8,"mean_commits":63.75,"dds":"0.11372549019607847","last_synced_commit":"e9bad009f737c8ce1b27416cc75a51faebada117"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/qucontrol/krotov","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qucontrol%2Fkrotov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qucontrol%2Fkrotov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qucontrol%2Fkrotov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qucontrol%2Fkrotov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qucontrol","download_url":"https://codeload.github.com/qucontrol/krotov/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qucontrol%2Fkrotov/sbom","scorecard":{"id":755521,"data":{"date":"2025-08-11","repo":{"name":"github.com/qucontrol/krotov","commit":"341cb5cbacdebd34f8d91bcb04b6019e1aeaf85f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":1,"reason":"Found 2/19 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/docs.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/qucontrol/krotov/test.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/docs.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/docs.yml:31","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.2.1 not signed: https://api.github.com/repos/qucontrol/krotov/releases/36357788","Warn: release artifact v1.2.0 not signed: https://api.github.com/repos/qucontrol/krotov/releases/29780732","Warn: release artifact v1.1.0 not signed: https://api.github.com/repos/qucontrol/krotov/releases/24831110","Warn: release artifact v1.0.0 not signed: https://api.github.com/repos/qucontrol/krotov/releases/22545615","Warn: release artifact v1.2.1 does not have provenance: https://api.github.com/repos/qucontrol/krotov/releases/36357788","Warn: release artifact v1.2.0 does not have provenance: https://api.github.com/repos/qucontrol/krotov/releases/29780732","Warn: release artifact v1.1.0 does not have provenance: https://api.github.com/repos/qucontrol/krotov/releases/24831110","Warn: release artifact v1.0.0 does not have provenance: https://api.github.com/repos/qucontrol/krotov/releases/22545615"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T21:35:03.558Z","repository_id":46197036,"created_at":"2025-08-22T21:35:03.558Z","updated_at":"2025-08-22T21:35:03.558Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["optimal-control","quantum-computing","quantum-mechanics","qutip"],"created_at":"2025-11-16T04:00:33.245Z","updated_at":"2026-01-16T11:46:21.106Z","avatar_url":"https://github.com/qucontrol.png","language":"Python","funding_links":[],"categories":["Quantum control"],"sub_categories":[],"readme":"# Krotov Python Package\n\n[![Source code on Github](https://img.shields.io/badge/github-qucontrol/krotov-blue.svg)](https://github.com/qucontrol/krotov)\n[![Documentation](https://img.shields.io/badge/docs-gh--pages-blue.svg)](https://qucontrol.github.io/krotov)\n[![Krotov on the Python Package Index](https://img.shields.io/pypi/v/krotov.svg)](https://pypi.python.org/pypi/krotov)\n[![Docs](https://github.com/qucontrol/krotov/actions/workflows/docs.yml/badge.svg?branch=master)](https://github.com/qucontrol/krotov/actions?query=workflow%3ADocs)\n[![Tests](https://github.com/qucontrol/krotov/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/qucontrol/krotov/actions?query=workflow%3ATests)\n[![Codecov](https://codecov.io/gh/qucontrol/krotov/branch/master/graph/badge.svg)](https://codecov.io/gh/qucontrol/krotov)\n[![BSD License](https://img.shields.io/badge/License-BSD-green.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Launch Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/qucontrol/krotov/v1.3.0?filepath=docs%2Fnotebooks)\n[![DOI](https://img.shields.io/badge/DOI-10.21468/SciPostPhys.7.6.080-blue.svg)](https://doi.org/10.21468/SciPostPhys.7.6.080)\n\nPython implementation of Krotov's method for quantum optimal control.\n\nThis implementation follows the original implementation in the [QDYN\nFortran library](https://www.qdyn-library.net).\n\nThe `krotov` package is built on top of [QuTiP](http://qutip.org).\n\nDevelopment happens on [Github](https://github.com/qucontrol/krotov).\nYou can read the full documentation\n[online](https://qucontrol.github.io/krotov).\n\nIf you use the `krotov` package in your research, please [cite\nit](https://qucontrol.github.io/krotov/v1.3.0/01_overview.html#citing-the-krotov-package).\n\n## Purpose\n\nOptimal control is a cornerstone of quantum technology: relying not just\non a passive understanding of quantum mechanics, but on the *active*\nutilization of the quantum properties of matter. Quantum optimal control\nasks how to manipulate the dynamics of a quantum system in some desired\nway. This is essential for the realization of quantum computers and\nrelated technologies such as quantum sensing.\n\nKrotov's method and GRAPE are the two leading gradient-based\noptimization algorithms used in numerical quantum optimal control.\nKrotov's method distinguishes itself by guaranteeing monotonic\nconvergence for near-continuous control fields. This makes is\nparticularly useful for exploring the limits of controllability in a\nphysical system. While GRAPE is found in various software packages,\nthere has not been an open source implementation of Krotov's method to\ndate. Our package provides that missing implementation.\n\nThe Krotov package targets both students wishing to enter the field of\nquantum control and researchers in the field. It was designed towards\nthe following goals:\n\n- Leverage the [QuTiP](http://qutip.org) library as a platform for\n  numerically describing quantum systems.\n- Provide a collection of examples inspired by recent publications in\n  the [Jupyter notebook](https://jupyter.org) format, allowing for\n  interactive exploration of the method.\n- Define a general interface for formulating *any* quantum control\n  problem, which may extend to other optimization methods in the future.\n- Serve as a reference implementation of Krotov's method, and as a\n  foundation against which to test other implementations.\n- Enable the more widespread use of Krotov's method, for example in the\n  design of experiments.\n\n## Further Information\n\nFor further information, including installation and usage instructions, see the\ndocumentation at https://qucontrol.github.io/krotov.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqucontrol%2Fkrotov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqucontrol%2Fkrotov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqucontrol%2Fkrotov/lists"}