Create manure only simulation type - #3217
Open
matthew7838 wants to merge 4 commits into
Open
Conversation
github-actions
Bot
force-pushed
the
manure-only
branch
from
August 19, 2026 14:30
54218a5 to
277da38
Compare
github-actions
Bot
force-pushed
the
manure-only
branch
from
August 19, 2026 14:31
277da38 to
de7a99b
Compare
Contributor
|
Current Coverage: 99% Mypy errors on manure-only branch: 1134 |
1 similar comment
Contributor
|
Current Coverage: 99% Mypy errors on manure-only branch: 1134 |
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.
Adds a
manure_onlysimulation type so the Manure Module can be run on its own.Context
Issue(s) closed by this pull request: closes #2896
What
SimulationType.MANURE_ONLYand its daily routine.DailyManureSupplier, which builds the daily manure streams from user input instead of from pens.manure_onlyexample scenario, registered as the sixth task inavailable_simulation_tasks.json.Why
The Manure Module could not be run by itself. Without the Animal Module nothing puts manure into the system, so every processor would sit empty for the whole simulation. Issue #2896 notes that a way of adding manure to the module throughout the year has to be defined before a manure-only scenario is possible.
How
The manure module already sets itself up from the existing
manure_managementandmanure_processor_connectioninputs, so the only missing piece was the manure supply. That supply is now stated directly as an input, following the same approach as the existingFieldManureSupplierstand-in on the manure to field boundary.Each entry in
daily_manure_streamsdescribes one stream: its first processor, the animals producing it, and the masses it carries per day.DailyManureSuppliervalidates the entries once at start-up and then rebuilds freshManureStreamobjects every simulated day, because processors consume and mutate the streams they receive. Water is the difference between total manure mass and total solids, and volume is derived from the slurry manure density, matching howPenbuilds a stream.Start-up validation rejects a parlor stream that is not from lactating cows and a stream whose total solids exceed its total manure mass, and warns on duplicate stream names.
Note for reviewers: the values in the example supply file are placeholders written by hand, not taken from measurements or from an Animal Module run. Checked against the freestall e2e manure results, the bulk quantities are close (total solids 0.98x, nitrogen 1.08x) but the volatile solids split is off (degradable 0.49x, non-degradable 2.74x), which matters for storage methane. These should be replaced with SME-reviewed values, or values lifted from an
animals_onlyrun, before merging.Test plan
DailyManureSupplierand three for the simulation engine. Existing simulation type tests updated for the new type.manure_onlyexample scenario runs seven simulated years with 0 errors.devbaseline (1139).Input Changes
Added:
daily_manure_supply_properties: a new optional input describing the manure streams entering the manure system each day. Only read when manure is simulated without animals.manure_onlyadded to thesimulation_typepattern inconfig_properties.example_manure_only_config.json,example_manure_only_daily_manure_supply.json,example_manure_only_metadata.json, andexample_manure_only_task.json.available_simulation_tasks.jsonregisters the newmanure_onlytask.No existing input files or schemas were changed.
Output Changes
Existing scenarios are unaffected. The new scenario reports the usual Manure Module variables.
Filter
N/A
🤖 Generated with Claude Code