Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #38 +/- ##
=======================================
Coverage ? 79.68%
=======================================
Files ? 10
Lines ? 448
Branches ? 0
=======================================
Hits ? 357
Misses ? 91
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Bring the source-propagation work up to date with main, which has since migrated to SymbolicUtils 4 / Symbolics 7 and gained the Bareiss-based symbolic linear solve. Resolved Project.toml: main released 0.4.1 and 0.4.2 in the meantime, so the version becomes 0.4.3 rather than the 0.4.0 the branch was cut against.
Follow-up polish on the source-propagation change: - Document `source` and `source_type` and list them in the API reference. - Rewrite the `HarmonicEquation` docstring to describe the type parameter instead of claiming the equations always come from a `DifferentialEquation`, and drop a stray trailing backtick that broke the QuantumCumulants link. - Rename the four-argument constructor's `natural_equation` argument to `source_equations`, and correct the `jacobian` field description. - Add a CHANGELOG entry for 0.4.3. - Cover `source_type` and a non-DifferentialEquation source system in the tests. The construction testset looped over `[heq1, heq2]` but reassigned `heq = heq1` in the body, so `heq2` was never actually exercised. - Fix the two HarmonicBalance.jl doc links: both pointed at the Krylov-Bogoliubov anchor, so the harmonic balance link went to the wrong section, and both were missing the trailing slash. HarmonicBalance's docs site currently 404s below its root, so linkcheck is now warn-only.
Removing `natural_equation`, reordering the fields and adding a type parameter to `HarmonicEquation` are all visible to anything that touches the struct, and HarmonicBalance.jl is such a consumer. A patch release would have been auto-resolved by the already-released HarmonicSteadyState 0.5.3 and HarmonicBalance 0.17.1, both of which carry `QuestBase = "0.4.1"`, and would have broken them at precompile time. A minor bump excludes them by caret bound instead. Reframe the CHANGELOG entry as breaking to match.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
HarmonicEquationhardcoded the assumption that it was derived from a second orderDifferentialEquationin the lab frame, keeping it in anatural_equation::DifferentialEquationfield. That assumption does not hold for harmonic equations derived fromQuantumCumulants.MeanfieldEquations, which HarmonicSteadyState.jl'sQuantumCumulantsExtconstructs, and which previously had to fall back on an empty placeholderDifferentialEquation().This PR lifts the source system into a type parameter:
HarmonicEquationbecomesHarmonicEquation{T}, withnatural_equation::DifferentialEquationreplaced bysource_equations::T.QuestBase.source(eom)returns the source system,QuestBase.source_type(eom)returns its type so downstream code can dispatch on the origin of aHarmonicEquationwithout materialising it.jacobiannow precedessource_equations, and the five-argument constructor takes the source system explicitly instead of defaulting toDifferentialEquation().The struct stays concretely typed (
all_concretestill passes), becauseTis now a parameter rather than an abstract field.Migration
Related issues or PRs
Requires companion changes downstream:
HomotopyContinuationProblemandResult.eom.natural_equationinfourier_transform!replaced byQuestBase.source(eom).Additional context
Breaking, so this releases as 0.5.0. A patch release would have been auto-resolved by the already-released HarmonicSteadyState 0.5.3 and HarmonicBalance 0.17.1, both of which carry
QuestBase = "0.4.1", and would have broken them at precompile time.