Для поддержки новой классификации планет, SpaceEngine нужен код, который генерирует внутренний состав планеты, а также её атмосферу и возможные жидкости на поверхности. Поэтому я обновил код генерации химсостава атмосферы, который был впервые реализован в SE 0.980. Теперь его следует называть “кодом химического состава планеты”, потому что он рассчитывает не только атмосферу, но и моря/океаны и отложения льдов на поверхности. В основе лежит итеративный расчёт глобальных климатических условий на планете, связанный с вычислением равновесного количества газообразных, жидких и замороженных веществ на поверхности:

1) Берётся исходное альбедо, расстояние до солнца и первоначальный состав атмосферы.
2) Рассчитывается диссипация газов под действием солнечной радиации, давление оставшихся газов и температура поверхности.
3) Вычисляются фазовые состояния: какие вещества замерзают, какие сжижаются и какие остаются в газообразном состоянии.
4) Оценивается процент покрытия поверхности облаками и морями, и исходя из этого – новое альбедо планеты.
5) Рассчитывается парниковый эффект, новая температура поверхности и новое атмосферное давление.
6) Цикл повторяется с шага 3 до тех пор, пока температура и давление не перестанут меняться.

Код работает с теми же веществами, что и прежде (H2, He, Ne, Ar, Kr, Xe, O2, N2, CO, CO2, SO2, Cl2, H2S, H2O, NH3, CH4, C2H2, C2H4, C2H6 and C3H8). Позже я добавлю некоторые тяжёлые углеводороды, такие как содержащиеся в бензине, которые, как ожидается, могут образовывать моря на углеродных планетах. В зависимости от начального состояния (размер планеты, расстояние до звезды, начальное количество веществ) некоторые из них улетучиваются в космос из-за слабой гравитации планеты или близости к звезде, некоторые замерзают, некоторые остаются в газовой фазе, и некоторые образуют моря. Так что теперь можно найти такие экзотические планеты, как терра с морями из двуокиси углерода или аммиака, или криогенные акварии морями из неона. Это как раз тот случай, для которого была разработана новая классификация: таким планетам просто нет места в старой классификации.

В Wiki теперь есть новая вкладка – «Гидросфера» (не знаю, как назвать её в общем случае – «ликвосфера»?), где можно увидеть химический состав сгенерированных морей. Она также показывает другие параметры, такие как максимальная глубина, температура и давление на поверхности, а также давление на дне.

Аквария с сероводородными озёрами

Количество жидкости также зависит от начальных условий: возможны как планеты с парой озёр, так и с глобальным океаном, полностью покрывающим всю поверхность. Возможный химический состав морей не ограничивается одним веществом, SE рассчитывает равновесие между газом и жидкостью для каждого вещества независимо. Таким образом, возможны смеси различных веществ, которые имеют перекрывающиеся температурные диапазоны жидкой фазы: метан + этан (как на Титане), SO2 + H2O (это может считаться сернистой кислотой), NH3 + H2O (нашатырный спирт) и даже SO2 + CO2. Я не химик, поэтому не знаю, какие из подобных смесей возможны в реальности. Чтобы решить эту проблему, требуется реализовать код расчёта химического равновесия/градиента, но это гораздо более сложная задача, чем термодинамика. Учёные используют специальные программные пакеты для такого рода расчётов, но это явно избыточно для SE. Все, что я могу сделать сейчас, это убрать очевидно абсурдные результаты, такие как горючие углеводородные моря в кислородной атмосфере. Это делается путём добавления простого флага «воспламеняемости» к каждому веществу, и уничтожения его с пропорциональным количеством свободного кислорода, пока не исчезнет все горючее вещество или кислород (для простоты я пока игнорирую воду, углекислоту и другие газы, образующиеся в этом процессе).

Теперь генерируется гораздо меньше титаноподобных планет и лун, чем в предыдущей версии SE, из-за более точного моделирования физических условий. Они должны быть тщательно подобраны, чтобы сделать возможным существование жидкого метана или этана (эти вещества имеют очень узкий диапазон температур жидкой фазы). Интересно, что на очень холодных планетах гораздо чаще встречаются моря из жидкого азота. Кстати, согласно новому исследованию, в метано-этановых морях Титана может быть растворено значительное количество азота (до 68% по массе!). Растворение газов и твёрдых веществ в жидкостях пока не моделируется, как и химические реакции. Это также довольно сложная задача, поэтому SE пока не сможет генерировать солёные водные моря (на Земле в водах океана растворено 3% солей NaCl и KCl). Другой возможной проблемой являются моря, состоящее из несмешивающихся жидкостей, таких как вода и тяжёлые углеводороды: SE также не моделирует это.

Неоновые моря на удивление редки, несмотря на то, что неон является одним из наиболее распространённых химических элементов во Вселенной. Это связано с тем, что температура жидкого неона чрезвычайно низка – от 24 до 44 К, что намного ниже температуры жидкого азота. Такие температуры возможны только на редких планетах, вращающихся очень далеко от холодных звёзд вроде красных карликов. Даже Плутон слишком тёплый для жидкого неона.

Терра с глобальным океаном жидкой углекислоты

Накопление кислорода в атмосфере возможно двумя путями: фотодиссоциация воды и фотосинтез, происходящий в живых организмах. Первый производит небольшое количество кислорода, которое может накапливаться в заметных количествах только на почти безвоздушных мирах, таких как Европа. Второй – более агрессивный. Я добавил простой профиль выработки кислорода со временем, основанный на исследованиях истории земной атмосферы (от 0 до 2.5 млрд лет – без кислорода, от 2.5 до 2.8 млрд лет – Кислородная катастрофа). Интересно, что после учёта такой эволюции атмосферы, многие процедурные планеты с жизнью замерзают из-за значительного уменьшения парникового эффекта – это похоже на Гуронское оледенение на Земле. Планета должна изменить свой класс на нечто вроде «холодной пустынной терры с (подлёдной) жизнью», а океаны должны быть удалены. Это пока не моделируется, SE просто восстанавливает первоначальную атмосферу и стирает жизнь с планеты. Это интересная область для будущей работы. Кроме того, чужие биосферы могут и не производить кислород, а дышать, например водородом или другим газом. Но всё это пока спекулятивно (и, вероятно, останется таким в течение ближайших десятилетий).

Противоположный сценарий эволюции планеты, не всегда связанный с жизнью, – это саморазгоняющийся парниковый эффект. Если на планете есть значительное количество парниковых веществ, таких как CO2 или вода, и она расположена достаточно близко к звезде, она может начать нагреваться, высвобождая больше парникового газа в атмосферу и ещё больше нагреваться от этого. Процесс прекращается, когда всё вещество окажется в атмосфере, или при неком то равновесном давлении и температуре, если такого вещества слишком много, или планета относительно прохладная. Первый сценарий часто происходит с CO2 или SO2, производя планету с плотной атмосферой и морями из CO2 или SO2. Второй очень распространён на умеренных/тёплых аквариях – планетах класса «океанида» в старой классификации. Они имеют практически бесконечное количество воды (до 50% массы самой планеты), поэтому процесс разогрева останавливается при температуре в сотни градусов и давлении в несколько тысяч бар на «поверхности». На самом деле, никакой поверхности нет: при таких условиях водяной пар является горячей сверхкритической жидкостью, поэтому чёткая граница между нею и мантией планеты из H2O отсутствует. Такая планета теперь классифицируется как мининептун: планета с атмосферным давлением более 1000 бар и массой менее 4 масс Земли. Этот термин в настоящее время часто используется планетологами для подобных «газовых карликов». Таким образом, в SE больше не будет землеподобных планет с давлением более 1000 бар: теперь это мининептуны. Атмосфера мининептуна может состоять не только из водяного пара: любой газ в таком большом количестве создаёт сильный парниковый эффект, так что у планеты не будет твёрдой или жидкой поверхности. Более массивные планеты (от 4 до 10 масс Земли) классифицируются как субнептуны. Некоторые из них получаются из очень массивных суперкакварий, которые сваливаются в саморазгоняющийся парниковый эффект (точнее, из мегаакварий, в соответствии с новой классификацией). А некоторые из субнептунов – это просто маленькие ледяные гиганты, такие как Уран, с атмосферой из водорода и гелия. Ожидается, что мининептун будет похож на Венеру, с облаками, закрученными в одну суперячейку, в то время как более массивные субнепуты должны напоминать Уран и Нептун. Я ещё не начал работу по обновлению текстур планет, но это будет учтено.

Сравнение мининептуна (планета 6) с обычным нептуном (планета 2) и суперземлями (планеты 1 и 7). В масштабе. Т.к. мининептун не имеет поверхности, в информации указывается его эффективная температура, как и у газовых гигантов.

В редких случаях акварии останавливаются на умеренном температурном режиме, сохраняя свой океан жидким, с водной поверхностью. Их атмосферы обычно толстые (десятки бар давления) и тёплые (50-80 °C), и в основном состоят из водяного пара и углекислоты. Океан обычно 100-200 км в глубину и имеет лёд VI или лёд VII на дне. Такие экзотические формы льда формируются под давлением около 109 Па (10 000 бар). SE рассчитывает глубину океана с использованием этого предельного давления, плотности жидкости и силы тяжести на планете. Затем он вычисляет объём воды и сравнивает его с общим количеством воды в составе планеты. Если первое меньше второго, это означает, что на планете слишком много воды, и лёд VI/VII формируется на дне океана; такие планеты классифицируются как суперокеанические. Противоположный случай встречается довольно редко, но он гораздо интереснее: океан имеет каменистое дно, что даёт возможность развития жизни. Wiki использует этот факт, чтобы показать информацию о составе дна – лед VI/VII или горные породы. Такие планеты чаще классифицируются как океанические терры/карбонии/феррии, а не как акварии, поскольку они имеют относительно небольшое количество воды в общей массе планеты. Но суперокеанические терры тоже встречаются (т.е. планета каменистая по объёмному составу, но воды на поверхности достаточно много для того, чтобы на дне океана сформировался лёд VI). Подобный расчёт состава дна используется и на замороженных аквариях для их подповерхностных океанов, хотя они и не моделируются напрямую.

Суперокеаническая аквария

Холодные тела с большим количеством замороженных летучих веществ должны иметь яркие «заснеженные» участки или даже крупные активные ледники на поверхности. Примерами являются Плутон с его азотным ледником в области Томбо, Марс с полярными шапками из замёрзшей углекислоты, и даже Земля с ледяными полярными шапками и ледниками на вершинах гор. Таким образом, планета может иметь моря из одного вещества и ледники из того же или другого вещества одновременно. Из-за этого трудно добавить информацию о ледниках в строку классификации, поэтому новая классификация планет не использует слово «ледниковая».

Я также обновил браузер звёзд, чтобы он мог использовать новую классификацию планет. Доступны три подкласса – температуры, летучих и объёмного состава (можно также добавить и приставку массы). Я также добавил простые фильтры для поиска планет со специфическим составом атмосферы и гидросферы. У них есть 3 режима: «Любой» ищет планету/луну с любым из указанных веществ, «Все» – со всеми, и «По порядку» – со всеми указанными, но отсортированными в порядке уменьшения вклада. Поэтому, если вы хотите найти, например, атмосферу как у Земли, выберите режим «По порядку» и вещества N2, O2 и Ar. И, конечно, состав морей теперь можно указать в скрипте планеты – подобно тому, как это делается для атмосфер.