How ruminantfarmsystems/rufas works
RuFaS is a whole-farm dairy production and environmental-impact simulator. A user runs a simulation; its engine loads inputs, advances time, and coordinates animal, field/crop, feed, and manure models, with emissions and energy accounting and collected outputs. The graph preserves those major domain stages plus weather and the shared input/output layer. Some subsystems are represented by their exact directory because their implementations were not excerpted; their internal wiring is therefore not asserted.
Main entry points: simulation_engine.py Simulation engine · field_manager.py Field management · herd_manager.py Herd management · feed_storage Feed storage
Components 19
Simulation runtime
- Simulation engine
RUFAS/simulation_engine.py - Simulation time
RUFAS/rufas_time.py - Weather inputs
RUFAS/weather.py
Farm production
- Herd management
RUFAS/biophysical/animal/herd_manager.py - Ration and nutrition
RUFAS/biophysical/animal/ration - Feed storage
RUFAS/biophysical/feed_storage - Field management
RUFAS/biophysical/field/manager/field_manager.py - Crop growth
RUFAS/biophysical/field/crop
Environment and impacts
- Soil processes
RUFAS/biophysical/field/soil - Manure management
RUFAS/biophysical/manure/manure_manager.py - Emissions and energy
RUFAS/EEE/EEE_manager.py
Shared data and I/O
- Input manager
RUFAS/input_manager.py - Output manager
RUFAS/output_manager.py - Animal manure stream
RUFAS/data_structures/animal_to_manure_connection.py - Harvest feed stream
RUFAS/data_structures/crop_soil_to_feed_storage_connection.py - Feed supply stream
RUFAS/data_structures/feed_storage_to_animal_connection.py - Manure nutrient stream
RUFAS/data_structures/manure_to_crop_soil_connection.py - Output post-processing
RUFAS/post_processing/output_manager.py
Other components
- Researcher or user
Connections 22
- Researcher or user → Simulation engine: runs
README.md - Simulation engine → Input manager: loads inputs
RUFAS/simulation_engine.py - Simulation engine → Simulation time: initializes time
RUFAS/simulation_engine.py - Simulation engine → Herd management: runs daily routines
RUFAS/simulation_engine.py - Simulation engine → Weather inputs: uses weather
RUFAS/simulation_engine.py - Simulation engine → Field management: coordinates fields
RUFAS/simulation_engine.py - Simulation engine → Feed storage: coordinates feed
RUFAS/simulation_engine.py - Simulation engine → Manure management: coordinates manure
RUFAS/simulation_engine.py - Simulation engine → Emissions and energy: coordinates impacts
RUFAS/simulation_engine.py - Simulation engine → Output manager: records results
RUFAS/simulation_engine.py - Herd management → Ration and nutrition: uses rations
RUFAS/biophysical/animal/herd_manager.py - Field management → Crop growth: manages crops
RUFAS/biophysical/field/manager/field_manager.py - Field management → Soil processes: uses soil model
RUFAS/biophysical/field/manager/field_manager.py - Herd management → Animal manure stream: produces stream
RUFAS/biophysical/animal/herd_manager.py - Animal manure stream → Manure management: supplies manure
RUFAS/biophysical/manure/manure_manager.py - Field management → Harvest feed stream: transfers harvest
RUFAS/biophysical/field/manager/field_manager.py - Harvest feed stream → Feed storage: supplies storage
RUFAS/biophysical/feed_storage/storage.py - Feed storage → Feed supply stream: supplies feeds
RUFAS/biophysical/feed_storage/purchased_feed_storage.py - Feed supply stream → Herd management: provides ration inputs
RUFAS/biophysical/animal/herd_manager.py - Manure management → Manure nutrient stream: provides nutrients
RUFAS/biophysical/manure/manure_manager.py - Manure nutrient stream → Field management: supplies nutrients
RUFAS/biophysical/field/manager/field_manager.py - Output manager → Output post-processing: passes results