feat(simulation): planet_class temperature envelope, drop orbit/star inputs (T-1033, D-240)
Replace the sun-driven Stefan-Boltzmann temperature with the D-240 class-envelope model. Temperature derives only from authored fields — no orbit/star physics. - [planet_class_temperature] envelope table in climate_constants.toml (approved bands: frozen [-90,-25] .. hot_arid [20,58] .. volcanic [30,90]); cold_/hot_/ warm_ prefix parsing; temperate fallback for unknowns. - derive_temperature_c(params, constants, body_seed): band = envelope(planet_class); latitude lerps across it (equator=warm, pole=cold); atmosphere greenhouse + elevation lapse modulate within; small seed nudge for per-body variety; CLAMP to band — a body can never escape its class. Airless -> None. - Delete the dead astrophysics: derive_distance_au, ClimateConstants::luminosity(), the [star_luminosity] table. Strip orbital_period_days/spectral_class/star_type/ axial_tilt_deg from BodyParams + BodyParamsReader (read 3 cols from bodies, no star_systems join). DB columns left in place (no regen). - New every_planet_class_derives_within_its_band test (13 classes x 5 atmo x 19 lat x 4 seeds, all in band) — the D-240 consistency guard. Verified on 25 diverse real bodies: the worlds that derived to +356C now sit inside their class bands (temperate capped at 28C). cargo test passes, clippy -D warnings clean, fmt clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -215,10 +215,10 @@ fn main() {
|
||||
),
|
||||
}
|
||||
|
||||
// Body physical params reader for RegionProfile carrier layer (T-1032, D-239 §1):
|
||||
// reads hydrosphere / atmosphere / planet_class / orbital_period_days /
|
||||
// axial_tilt_deg / spectral_class / star_type on a cache miss so the Rayon
|
||||
// Body physical params reader for RegionProfile carrier layer (T-1032, D-239 §1, D-240):
|
||||
// reads hydrosphere / atmosphere / planet_class on a cache miss so the Rayon
|
||||
// cascade work item stays DB-free (D-225 pattern).
|
||||
// D-240: orbit/star fields are non-canonical and are no longer read.
|
||||
match settled_reach_server::atlas::body_params_reader::BodyParamsReader::open(&systems_db_path)
|
||||
{
|
||||
Ok(reader) => {
|
||||
|
||||
Reference in New Issue
Block a user