Earth
Круговорот воды
Прогоните год погоды над водосбором из леса, города и озера: влага приносится ветром, выпадает дождём пропорционально доле каждой земли, полог ловит четверть и выдыхает её обратно, лесная почва пьёт пятьдесят миллиметров в день, а асфальт берёт пять, почвы испаряют и просачивают, грунтовые воды сочатся в реку за триста дней, а река стекает в море за два. Сбросьте ливень 50 мм на сотый день и сравните пик паводка лесного водосбора с застроенным; качайте водоносный горизонт — и базисный сток умрёт; отключите принесённую влагу — запасы сойдут вместе. Девять запасов плюс вынос минус принос держат начальную сумму до округления, а спад грунтовых вод — замкнутая экспонента.

Что происходит
Круговорот воды водосбора как девять сосредоточенных запасов в миллиметрах на всю площадь: воздух над ним, лесной полог, лесная поверхность и почва, городская поверхность и почва, грунтовые воды, река и озеро. Принесённая влага и ливень питают воздух, дождь выпадает пропорционально долям земель, полог перехватывает четверть и испаряет её, поверхности впитывают с лесной или городской скоростью и стекают каждая в своём темпе, почвы испаряют и просачивают, грунтовые воды питают реку и откачиваются, озеро берёт половину лесного стока и испаряет, река стекает в море, воздух выносит пар. Явный шаг в сотую дня, вытоки запаса масштабируются вместе, чтобы ни один не ушёл в минус; одна секунда опыта — один день.
Что попробовать
Смотрите, как устанавливаются уровни, а ливень на сотый день поднимает реку; застройте водосбор и сравните пик; качайте горизонт и смотрите, как умирает базисный сток; проверьте спад по экспоненте.
Модель и её ограничения
Сосредоточенные линейные и насыщающиеся запасы, один ливень, без снега, сезонного испарения и задержек добегания сверх постоянных времени запасов. Учебный водосбор, не гидрологическая модель.
Уравнения модуля
Уравнения dS_i/dt = Σ F_in − Σ F_out, R = S_atm/τ_rain I = K_inf·f·S_surf/(S_surf + S_½)·(1 − S_soil/S_max) Q_base = S_gw/τ_gw, S_gw(t) = S_gw(0)·e^(−t/τ_gw) (no recharge) Σ S_i + E_out − I_in = const


