Я думаю о планете в зоне Златовласки, похожей на Землю, с похожей атмосферой и аналогичным атмосферным давлением и температурой на поверхности. Гравитация будет переменной, в зависимости от массы, необходимой для поддержания давления, необходимого для формирования экзотических льдов в ядре.
Я понимаю, что есть как минимум пара похожих вопросов -
Может ли существовать планета, полностью состоящая из воды?
Что произойдет в центре водного мира?
Спасибо!
Ваш вопрос похож на другой, на который я ответил , и я буду много заимствовать из него.
Я могу начать ответы с некоторых упрощающих предположений, но кто-то может лучше понять тонкости, связанные с этим расчетом. Конкретные предположения, которые я сделаю, следующие:
Постоянная температура
Вода несжимаема и в планетарных масштабах имеет среднюю плотность ~1,5 г/см. (см. мой другой ответ для обоснования)
С этими предположениями это действительно становится проблемой подстановки цифр.
Вот диаграмма фазы воды, которую я буду использовать, чтобы обсудить остальную часть этой проблемы:
Учитывая наше первое предположение, я выберу приятные 350К для воды и льда планеты. На приведенной выше диаграмме видно, что лед VII проявляется при ~2 ГПа. Таким образом, возникает вопрос, сколько воды нужно, чтобы получить давление в ядре 2 ГПа?
Ну, учитывая наше второе предположение, потребуется 200 километров воды, чтобы достичь 2 ГПа при классическом преобразовании 101 кПа/10 м. Имея эту информацию, мы можем рассчитать массу планеты по уравнению
Прохладно! Отсюда мы можем видеть, что она находится в пределах досягаемости больших астероидов или маленьких лун.
Конечно, это приблизительная оценка, но я бы сказал, что она точна примерно на порядок. Как указано в комментариях к моему другому ответу, предположение о постоянной температуре, возможно, вполне справедливо в зависимости от того, как сформировалась ваша планета и сколько ей лет. «Средняя» плотность воды оставляет много места для ошибок, но я не был достаточно уверен в своих вычислениях, чтобы вычислить полную производную (изменение объемного модуля по отношению к давлению по мере увеличения глубины).
Это становится намного сложнее, потому что здесь мы работаем с двумя оболочками, но у нас есть аналогичный набор предположений:
Постоянная температура
Вода несжимаема и в планетарных масштабах имеет среднюю плотность ~1,5 г/см.
Лед VII несжимаем и в планетарных масштабах имеет среднюю плотность ~2,3 г/см3.
При температуре 350 К мы достигаем льда X при давлении около 50 ГПа и можем ответить на вопрос, аналогичный приведенному выше: какой толщины должен быть лед VII, чтобы достичь этого давления? Мы уже знаем, что у нас будет 200-километровая жидкая вода вдоль поверхности, так что ядро здесь единственное новое.
Чтобы получить дополнительные 48 ГПа за счет Ice VII, нам нужно примерно 2000 дополнительных километров:
Отнеситесь к этой оценке с большой долей скептицизма. не было бы постоянным в ядре планеты, а скорее зависело бы от массы планеты и расстояния от поверхности, что означает, что мы снова сталкиваемся с этими неприятными дифференциальными уравнениями. Чувак, неудивительно, что физики все время злятся.
При этом мы снова можем рассчитать нашу массу с помощью уравнения:
который, если мы подставим наши числа и решим его правильно, вернет
Который примерно такой же большой, как самые большие луны, и находится в диапазоне самых маленьких планет. Хороший вопрос!
Я решил написать программу для расчета этого. Он итеративно строит планету от ядра наружу слоями в один метр, вычисляя гравитацию и регулируя плотность текущего материала для давления на каждом этапе.
#include <math.h>
#include <stdio.h>
/* Units are meters, kilograms, seconds */
const double G = 0.00000000006674;
struct
{
double baseDensity;
double bulkModulus;
double lowerPressure;
double upperPressure;
const char *name;
} Properties[] = {
{1000, 2200000000, 50000, 2000000000, "water"},
{1500, 23900000000 , 2000000000, 50000000000, "ice VII"},
{2500, 23900000000, 50000000000, 400000000000, "ice X"},
{3000, 10000000000000000, 400000000000, 1000000000000, "ice XI"} /* Mostly made-up, but it doesn't matter, because we've only got a 1-meter sphere of it. */
};
/* Calculate from the inside out. */
void CalculatePlanet(double *radius, double *mass)
{
int currentMaterial = 3; /* Start with a 1-meter layer of ice XI */
double pressureNeeded = Properties[currentMaterial].lowerPressure; /* We need to stack up material to produce this much pressure */
*radius = 0;
*mass = 0;
while(currentMaterial >= 0)
{
double shellMass; /* Mass of the shell */
double shellPressure; /* Pressure provided by the shell */
double newRadius = *radius + 1.0;
double shellDensity = (pressureNeeded * Properties[currentMaterial].baseDensity) / Properties[currentMaterial].bulkModulus + Properties[currentMaterial].baseDensity;
/* Add a one-meter layer to the planet */
shellMass = (((newRadius) * (newRadius) * (newRadius)) - (*radius * *radius * *radius)) * (4.0/3.0) * M_PI * shellDensity;
shellPressure = G * *mass / (*radius * *radius) * shellDensity;
if(isnan(shellPressure)) shellPressure = 0;
pressureNeeded -= shellPressure;
*mass += shellMass;
*radius += 1.0;
if(pressureNeeded < Properties[currentMaterial].lowerPressure)
{
printf("Layer: %i %lf %lf %lf %lf %lf\n", currentMaterial, shellPressure, pressureNeeded, shellMass, *mass, *radius);
currentMaterial--;
}
}
}
int main(void)
{
double mass = 0;
double radius = 0;
CalculatePlanet(&radius, &mass);
double volume = radius * radius * radius * M_PI * 4.0 / 3.0;
double density = mass / volume;
double surfaceGravity = G * mass /(radius * radius);
printf("Planet calculated. Radius %.0lf meters, mass %.0lf kg, density %0lf kg/m3, gravity %lf m/s2\n", radius, mass, density, surfaceGravity);
}
Используя ту же планету 350K, предполагаемые объемные модули и фазовую диаграмму, что и Дубукай, я получаю следующие планеты:
Ядро воды (выполнено для проверки на вменяемость): радиус 1 метр, масса 4189 кг, плотность
Ядро льда VII, окруженное 2555498 метрами воды: радиус 2555499 метров, масса кг, плотность , гравитация на поверхности . Примерно такой же в диаметре, как Меркурий, но весит всего в четверть меньше.
Ядро льда X, окруженное 6013480 метрами льда VII и 349831 метрами воды: радиус 6363312 метров, масса , плотность , гравитация на поверхности . Примерно такой же большой, как Земля, но только 40% массы.
Ядро льда XI, окруженное 2209965 м льда X, 2675055 м льда VII и 301287 м воды: радиус 5186308 м, масса , плотность , гравитация на поверхности . Немного меньше, чем Земля, и только треть массы.
Обратите внимание, что планета с ледяным ядром X больше, чем планета с ледяным ядром XI. Это не ошибка: лед X намного плотнее, чем лед VII; уменьшенный радиус увеличивает гравитацию на всех уровнях, что приводит к более высоким давлениям и плотности.
Оказывается, даже относительно маломассивные планеты-океаны способны образовывать в своих ядрах некоторые из названных вами экзотических льдов. Лед VII, по-видимому, формируется в центрах планет (массы Земли), а лед X образуется в центрах планет . Интересно, что, несмотря на увеличение массы на два порядка и увеличение центрального давления в 25 раз, радиусы этих миров различаются всего в четыре раза. Хотя может существовать температурная зависимость, учитывая относительную простоту фазовой диаграммы воды при , я подозреваю, что это не должно быть проблемой, и соответствующие уравнения состояния не зависят от температуры.
Поскольку у нас есть два конкурирующих ответа ( Dubukay's и Mark's ) с совершенно разными результатами, я подумал, что добавлю третий метод, чтобы посмотреть, смогу ли я придумать что-то похожее. Я пошел к Сигеру и др. 2008 год, мой любимый набор моделей интерьеров земных экзопланет. Их установка предполагает, что тела изотермически при низких давлениях, как это сделал Дубукай, и использует уравнения состояния вида
Сигер и др. выведите следующую зависимость масса-радиус (я пронумеровал уравнения так, как они пронумерованы в статье):
Мы можем проверить эти результаты другим способом: численным интегрированием. Структура любой планеты определяется двумя ключевыми уравнениями:
Для этого я написал довольно простой код на Python 3. Требуется только NumPy (а также Matplotlib для вспомогательных графиков).
import numpy as np
earthMass = 5.97*10**(24) # kg
earthRadius = 6.371*10**(6) # m
G = 6.67*10**(-11) # gravitational constant, SI units
def rho(P,rho0,c,n):
"""Polytropic equation of state"""
rho = rho0 + c*(P**n)
return rho
def fprime(P,c,n):
"""Derivative of the first order contribution
to the polytropic equation of state"""
fprime = c*n*(P**(n-1))
return fprime
def mass(R,rho0,c,n):
"""Compute planetary mass for a particular radius,
given equation of state parameters for a particular
composition."""
Rscaled = R*earthRadius # convert to SI units
Pc = (2*np.pi/3)*G*(Rscaled**2)*(rho0**2) # central pressure
rho_mean = rho(Pc,rho0,c,n) - (2*np.pi/5)*G*(Rscaled**2)*(rho0**2)*fprime(Pc,c,n) # mean density
Mscaled = (4*np.pi/3)*(Rscaled**3)*rho_mean
Mp = Mscaled/earthMass # convert to Earth masses
return Mp
def pressure(R,rho0,c,n):
"""Compute central pressure if radius is known"""
M = mass(R,rho0,c,n)
M = M*earthMass # convert to SI units
R = R*earthRadius # convert to SI units
Pc = (3*G/(8*np.pi))*(M**2)/(R**4)
return Pc
def minimumMass(P,rho0,c,n):
"""Compute mass at which a particular central
pressure is reached"""
radii = np.logspace(-1,1,1000) # reasonable radius range
i = 0
r = radii[i]
while pressure(r,rho0,c,n) < P:
# Brute force check of various radii
i += 1
r = radii[i]
return(mass(r,rho0,c,n))
def radius(M,rho0,c,n):
"""Compute radius which yields a given mass"""
radii = np.logspace(-1,1,1000)
i = 0
r = radii[i]
while mass(r,rho0,c,n) < M:
# Brute force check of various radii
i += 1
r = radii[i]
return r
pressureList = [2,50] # central pressures to check, in GPa
for p in pressureList:
print('Central pressure: '+str(p)+' GPa.')
print(' The required mass is '\
+str('%.3f'%minimumMass(p*10**9,1460,0.00311,0.513))+\
' Earth masses.')
print(' The required radius is '+\
str('%.3f'%radius(minimumMass(p*10**9,1460,0.00311,\
0.513),1460,0.00311,0.513))+' Earth radii.')
Вот мой числовой код интегрирования. Оно написано специально для водных миров, поэтому уравнения параметров состояния не являются аргументами функции. При желании его можно достаточно легко обобщить для любой композиции.
import numpy as np
earthMass = 5.97*10**(24) # kg
earthRadius = 6.371*10**(6) # m
G = 6.67*10**(-11) # gravitational constant, SI units
rho0 = 1460
c = 0.00311
n = 0.513
def dP(M,R,P,dR):
"""Compute change in pressure via hydrostatic
equilibrium"""
rho = rho0 + c*(P**n) # density
dP = -((G*M*rho)/(R**2))*dR
return dP
def dM(R,P,dR):
"""Compute change in mass via mass continuity
equation"""
rho = rho0 + c*(P**n) # density
dM = 4*np.pi*(R**2)*rho*dR
return dM
def integrator(Pc,dR):
"""Numerically integrate differential equations
to construct the planet"""
P = [Pc,Pc]
M = [0,0]
R = [0,dR]
# To avoid singularities at r = 0, I really
# start the code at one step, r = dR. I assume
# that this step is small enough that the mass
# and pressure don't change significantly.
while P[-1] > 0:
# The surface of the planet is where P = 0
m = M[-1]
r = R[-1]
p = P[-1]
deltaR = 1
deltaP = dP(m,r,p,deltaR)
deltaM = dM(r,p,deltaR)
P.append(P[-1]+deltaP)
M.append(M[-1]+deltaM)
R.append(R[-1]+deltaR)
return M, R, P
pressureList = [2,50] # central pressures to check, in GPa
for p in pressureList:
massList, radiusList, pressureList = integrator(p*(10**9),1)
M = massList[-1]/earthMass
R = radiusList[-1]/earthRadius
print('Central pressure: '+str(p)+' GPa.')
print(' The required mass is '+str('%.3f'%M)+\
' Earth masses.')
print(' The required radius is '+str('%.3f'%R)+\
' Earth radii.')
Я выбрал центральное давление для льда VII и для льда X, как это сделали Дубукай и Марк. В обоих случаях мои результаты совпали с результатами Марка с точностью до порядка; расхождение с цифрами Дубукая осталось:
Обе мои модели ice VII очень близки к моделям Марка, а мои модели ice X отличаются лишь в несколько раз. Численное интегрирование не соответствует аналитическим моделям, что меня немного беспокоит, но расхождение не слишком серьезное, и я покопаюсь, чтобы посмотреть, смогу ли я найти проблему. Я достаточно счастлив, чтобы попасть на порядок в астрономии, так что я буду считать все это победой. Вот график моих аналитических результатов, с планетами земной группы Солнечной системы для сравнения, а также кривая силикатных планет ( ):
Это проливает некоторый свет на разные ответы, потому что более подробный взгляд на теорию исключает возможные причины несоответствия. Уравнения состояния, которые я использовал, изотермические; другие ответы предполагают то же самое. Точно так же простые графики плотности внутри этих планет показывают, что слабая зависимость от давления действительно оправдывает предположение Дюбукея о несжимаемости. В обоих случаях наблюдается примерно 10-процентное изменение плотности от внутреннего ядра к поверхности — едва ли достаточно, чтобы вызвать расхождение в три порядка. Действительно, при таком давлении большинство миров должно быть совершенно несжимаемым.
Я подозреваю, что ключевая проблема с ответом Дубукея заключается в предположении, что отношение давление-глубина не меняется в зависимости от глубины - и, вероятно, изменяется. Построив график плотности внутри каждой планеты, мы можем увидеть, что она меняется лишь незначительно для ледяной планеты VII и немного больше для ледяной планеты X:
Теперь гравитационное ускорение в радиусе масштабы как , куда средняя плотность внутри . Отклонения от постоянной плотности малы для большинства регионов планеты, поэтому следует ожидать быть довольно линейным, и это (ближе к линейному для ледяной планеты VII, которая имеет более однородный профиль плотности):
Следовательно, простое преобразование глубины в давление неточно вдали от поверхности. Я также подозреваю, что модель ядро-океан слишком проста.
РонДжон
Ядро Хаоса
Отметка
a4android
РонДжон
Лорен Пехтель