Skip to main content

Crate vanaspati

Crate vanaspati 

Source
Expand description

§Vanaspati

Vanaspati (वनस्पति — Sanskrit for “lord of the forest, plant/tree”) — botany and plant behavior engine for the AGNOS ecosystem.

Provides plant growth models, photosynthesis, seasonal cycles, root systems, pollination, seed dispersal, biomass allocation, mortality, and ecosystem dynamics.

§Modules

ModuleDescription
growthLogistic growth model with stage progression and species presets
photosynthesisLight response curves, C3/C4/CAM pathways, temperature factors
seasonDay-of-year mapping, latitude-aware daylight hours, growth modifiers
rootRoot system types, depth/spread, water uptake, soil stabilization
pollinationPollination methods and distance-based probability
dispersalSeed dispersal methods, distance kernels, seed profiles
biomassCarbon allocation across plant organs, allometric scaling
mortalityAge, drought, frost, competition mortality models
decompositionLitter decay, temperature/moisture factors, nutrient release
waterSoil water storage, infiltration, drainage, evaporation
stomataBall-Berry stomatal conductance, transpiration, VPD, boundary layer
phenologyGrowing degree days, chilling hours, lifecycle event triggers
nitrogenSoil N pools, mineralization, uptake, leaching, N stress
herbivoryGrazing/browsing biomass removal, compensatory growth
fireFire adaptation strategies, bark protection, post-fire regeneration
mycorrhizaPlant-fungal symbiosis, nutrient enhancement, hyphal networks
allelopathyChemical competition, allelochemical dose-response
successionPioneer/climax dynamics, shade tolerance, establishment
reproductionVegetative reproduction — runners, rhizomes, clonal spread
ecosystemLotka-Volterra competition, Shannon diversity, NPP
bridgeCross-crate conversions for badal, ushma, jantu
errorError types

§Quick Start

use vanaspati::{GrowthModel, Season, photosynthesis_rate, growth_stage, daylight_hours_at};

// Grow an oak for a year
let oak = GrowthModel::oak();
let height = oak.height_at_day(365.0);
let stage = growth_stage(height, oak.max_height);

// Photosynthesis under full sun
let rate = photosynthesis_rate(20.0, 0.05, 800.0);

// Latitude-aware daylight
let hours = daylight_hours_at(172, 45.0); // summer solstice, 45°N
assert!(hours > 15.0);

Re-exports§

pub use error::Result;
pub use error::VanaspatiError;
pub use growth::GrowthModel;
pub use growth::GrowthStage;
pub use growth::growth_stage;
pub use growth::water_stress_growth_factor;
pub use photosynthesis::PhotosynthesisPathway;
pub use photosynthesis::canopy_light_at_depth;
pub use photosynthesis::co2_factor;
pub use photosynthesis::light_compensation_point;
pub use photosynthesis::light_interception;
pub use photosynthesis::pathway_params;
pub use photosynthesis::photosynthesis_rate;
pub use photosynthesis::photosynthesis_rate_co2;
pub use photosynthesis::shaded_photosynthesis_rate;
pub use photosynthesis::temperature_factor;
pub use photosynthesis::temperature_factor_c4;
pub use photosynthesis::temperature_factor_cam;
pub use photosynthesis::understory_light_fraction;
pub use photosynthesis::water_stress_factor;
pub use photosynthesis::water_use_efficiency;
pub use season::Season;
pub use season::daylight_hours_at;
pub use season::growth_modifier_at;
pub use root::RootSystem;
pub use root::RootType;
pub use pollination::PollinationMethod;
pub use pollination::pollination_probability;
pub use dispersal::DispersalMethod;
pub use dispersal::SeedProfile;
pub use dispersal::dispersal_distance;
pub use dispersal::dispersal_probability;
pub use biomass::AllocationStrategy;
pub use biomass::BiomassPool;
pub use biomass::allocate;
pub use biomass::height_to_diameter;
pub use biomass::height_to_leaf_area;
pub use mortality::MortalityCause;
pub use mortality::age_mortality_rate;
pub use mortality::disease_mortality;
pub use mortality::drought_mortality;
pub use mortality::fire_mortality;
pub use mortality::frost_mortality;
pub use mortality::self_thinning_mortality;
pub use mortality::windthrow_mortality;
pub use fire::FireStrategy;
pub use fire::bark_protection;
pub use fire::fire_return_interval_years;
pub use fire::post_fire_establishment;
pub use fire::resprout_vigor;
pub use fire::serotinous_release;
pub use mycorrhiza::MycorrhizalType;
pub use mycorrhiza::carbon_cost_fraction;
pub use mycorrhiza::colonization_rate;
pub use mycorrhiza::enhanced_n_uptake;
pub use mycorrhiza::hyphal_reach_m;
pub use mycorrhiza::net_benefit_ratio;
pub use mycorrhiza::nutrient_enhancement;
pub use allelopathy::AllelopathicPotency;
pub use allelopathy::daily_input as allelopathic_input;
pub use allelopathy::germination_inhibition;
pub use allelopathy::growth_inhibition;
pub use allelopathy::production_rate as allelopathic_production_rate;
pub use allelopathy::soil_concentration;
pub use water::SoilType;
pub use water::SoilWater;
pub use water::WaterFluxes;
pub use water::daily_water_balance;
pub use water::infiltration_rate;
pub use water::saturated_conductivity;
pub use water::soil_evaporation;
pub use stomata::StomatalBehavior;
pub use stomata::ball_berry_conductance;
pub use stomata::boundary_layer_conductance;
pub use stomata::drought_stomatal_factor;
pub use stomata::instantaneous_wue;
pub use stomata::saturation_vapor_pressure;
pub use stomata::total_leaf_conductance;
pub use stomata::transpiration_rate;
pub use stomata::vapor_pressure_deficit;
pub use stomata::vpd_stomatal_factor;
pub use phenology::PhenologicalEvent;
pub use phenology::accumulated_chill;
pub use phenology::accumulated_gdd;
pub use phenology::chilling_contribution;
pub use phenology::dormancy_broken;
pub use phenology::dormancy_onset_triggered;
pub use phenology::event_reached;
pub use phenology::event_to_growth_stage;
pub use phenology::gdd_threshold;
pub use phenology::growing_degree_days;
pub use phenology::phenological_progress;
pub use phenology::senescence_triggered;
pub use decomposition::LitterType;
pub use decomposition::SoilCarbon;
pub use decomposition::SomFluxes;
pub use decomposition::SomPool;
pub use decomposition::base_decomposition_rate;
pub use decomposition::daily_decomposition_rate;
pub use decomposition::daily_som_turnover;
pub use decomposition::half_life_days;
pub use decomposition::mass_decomposed;
pub use decomposition::moisture_decomposition_factor;
pub use decomposition::nitrogen_release;
pub use decomposition::remaining_mass;
pub use decomposition::som_transfer_fractions;
pub use decomposition::som_turnover_rate;
pub use decomposition::temperature_decomposition_factor;
pub use respiration::RespirationComponent;
pub use respiration::growth_respiration;
pub use respiration::growth_respiration_fraction;
pub use respiration::maintenance_respiration;
pub use respiration::net_primary_productivity_carbon;
pub use respiration::organ_respiration_coefficient;
pub use respiration::partitioned_maintenance_respiration;
pub use respiration::total_autotrophic_respiration;
pub use lai::LeafHabit;
pub use lai::drought_leaf_retention;
pub use lai::effective_lai;
pub use lai::frost_leaf_loss;
pub use lai::lai_from_biomass;
pub use lai::max_lai;
pub use lai::seasonal_lai_multiplier;
pub use evapotranspiration::penman_monteith_et;
pub use evapotranspiration::psychrometric_constant;
pub use evapotranspiration::reference_et;
pub use evapotranspiration::surface_resistance;
pub use evapotranspiration::svp_slope;
pub use pft::PftParams;
pub use pft::PftType;
pub use nitrogen::NitrogenFluxes;
pub use nitrogen::SoilNitrogen;
pub use nitrogen::critical_n_concentration;
pub use nitrogen::daily_nitrogen_balance;
pub use nitrogen::mineralization_rate;
pub use nitrogen::nitrogen_leaching;
pub use nitrogen::nitrogen_stress_factor;
pub use nitrogen::nitrogen_uptake;
pub use nitrogen::plant_n_demand;
pub use herbivory::HerbivoryType;
pub use herbivory::biomass_removal;
pub use herbivory::compensatory_growth_factor;
pub use herbivory::herbivory_mortality;
pub use herbivory::organ_vulnerability;
pub use herbivory::total_biomass_removed;
pub use succession::SuccessionalStage;
pub use succession::competitive_displacement;
pub use succession::effective_growth_multiplier;
pub use succession::establishment_probability;
pub use succession::max_growth_rate_multiplier;
pub use succession::shade_tolerance;
pub use succession::typical_lifespan_years;
pub use reproduction::VegetativeMethod;
pub use reproduction::base_ramet_rate;
pub use reproduction::clonal_area_m2;
pub use reproduction::parent_cost_kg;
pub use reproduction::ramet_cost_fraction;
pub use reproduction::resource_limited_ramets;
pub use reproduction::spread_distance_m;
pub use ecosystem::competition_growth;
pub use ecosystem::net_primary_productivity;
pub use ecosystem::shannon_diversity;
pub use bridge::allelopathy_growth_factor;
pub use bridge::atmosphere_to_photosynthesis_inputs;
pub use bridge::canopy_to_habitat_score;
pub use bridge::evapotranspiration_cooling;
pub use bridge::fire_weather_risk;
pub use bridge::frost_risk_to_mortality;
pub use bridge::frost_to_dormancy;
pub use bridge::growing_conditions_to_growth_multiplier;
pub use bridge::herbivore_to_biomass_loss;
pub use bridge::humidity_to_vpd;
pub use bridge::light_to_successional_advantage;
pub use bridge::mycorrhiza_enhanced_uptake;
pub use bridge::nitrogen_to_growth_stress;
pub use bridge::rainfall_to_water_supply;
pub use bridge::seed_production_to_food;
pub use bridge::soil_temperature_to_growth_factor;
pub use bridge::soil_temperature_to_root_activity;
pub use bridge::soil_water_to_growth_stress;
pub use bridge::soil_water_to_photosynthesis_stress;
pub use bridge::solar_to_par;
pub use bridge::wet_bulb_to_heat_stress;
pub use bridge::wind_to_boundary_conductance;
pub use bridge::wind_to_dispersal_speed;

Modules§

allelopathy
Allelopathy — chemical competition between plants.
biomass
bridge
Cross-crate primitive-value conversions for AGNOS science crates.
decomposition
dispersal
ecosystem
error
evapotranspiration
Evapotranspiration — Penman-Monteith energy-balance model.
fire
Fire ecology — fire adaptation traits, bark protection, post-fire regeneration, and serotiny.
growth
herbivory
Herbivory pressure — grazing, browsing, and plant compensatory responses.
integration
Integration APIs for downstream consumers (soorat rendering). Integration APIs for downstream consumers.
lai
Dynamic leaf area index — seasonal LAI changes, stress-induced leaf loss, and the connection between leaf biomass and canopy light interception.
mortality
mycorrhiza
Mycorrhizal networks — plant-fungal symbiosis for nutrient exchange.
nitrogen
Soil nitrogen cycling — mineralization, plant uptake, leaching, and nitrogen limitation on plant growth. Nitrogen is the most commonly limiting nutrient in terrestrial ecosystems.
pft
Plant Functional Types (PFTs) — standardized species parameterization.
phenology
photosynthesis
pollination
reproduction
Vegetative reproduction — clonal spread via runners, rhizomes, root sprouting, and layering.
respiration
Plant respiration — maintenance and growth respiration for carbon budget.
root
season
stomata
Stomatal conductance — the valve controlling gas exchange between leaf interior and atmosphere. Stomata regulate the trade-off between CO₂ uptake (photosynthesis) and water loss (transpiration).
succession
Succession dynamics — pioneer vs. climax species, shade tolerance, and community replacement over time.
water
Soil water storage and hydrology — precipitation, infiltration, drainage, root uptake, and water balance for plant-soil systems.