Предел Чандрасекара.

Bungou Stray Dogs
Слэш
В процессе
R
Предел Чандрасекара.
автор
Описание
Есть граница, после которой звезда больше не может удерживать саму себя. Давление растёт, свет становится нестабильным, и однажды всё сжимается до точки, где уже нельзя вернуться к прежнему состоянию. Они не замечают, в какой момент переходят эту границу. Сначала — просто совпадение траекторий, затем — устойчивая орбита, потом — притяжение, которое нельзя объяснить формулами. Маленькие жесты, тихие взгляды, забота, спрятанная между строк и расчётов. Предел.
Примечания
*Строго говоря, предел Чандрасекара — это верхний предел массы холодного невращающегося белого карлика, определяемый условием равенства сил давления вырожденного электронного газа и гравитации. Звёзды ниже предела Чандрасекара становятся стабильными белыми карликами, оставаясь такими на протяжении всей остальной истории Вселенной (при условии отсутствия внешних сил). Звёзды, превышающие этот предел, могут превратиться в нейтронные звёзды или чёрные дыры. _________ – Я слепое старое животное – на ошибки смотрю, но вскользь. – Работа – отвести душу и успокоиться. – Напоминаю – я не физик, не астроном, и, вообще, позорник физмат, так что снимаю с себя погоны ответственности за все, сказанное здесь. • Пока работа находится "в процессе", она НЕ ЗАБРОШЕНА. Главы выходят с большим разрывом, разнящимся стилем повествования и ТД, потому что автор еблан и имеет свои дела и обязанности.
Посвящение
Преданным читателям. Звёздам. Константам. Чувствам.
Читать онлайн Отзывы
Содержание Вперед

3.3 Irritating heat

import matplotlib matplotlib.use('TkAgg') import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation size = 500 view = 15.0 x = np.linspace(-view, view, size) y = np.linspace(-view, view, size) X, Y = np.meshgrid(x, y) R = np.sqrt(X**2 + Y**2) n_frames = 150 collapse_end = 60 explosion_peak = 75 bh_formed = 90 fig, ax = plt.subplots(figsize=(8, 8), facecolor='black') ax.axis('off') im = ax.imshow(np.zeros((size, size)), cmap='gist_heat', extent=[-view, view, -view, view], vmin=0, vmax=2.2) title = ax.set_title('', color='white', fontsize=13) def animate(frame): image = np.zeros((size, size)) if frame < collapse_end: t = frame / collapse_end star_radius = 6.0 * (1 - 0.85 * t) brightness = 1.2 + 0.5 * t image = brightness * np.exp(-(R**2) / (2 * star_radius**2)) title.set_text(f'Коллапс ядра звезды... (t={t:.2f})') elif frame < explosion_peak: t = (frame - collapse_end) / (explosion_peak - collapse_end) shock_radius = 1.0 + 13.0 * t shock_width = 1.5 image = 2.2 * np.exp(-((R - shock_radius)2) / (2 * shock_width**2)) core_radius = 0.8 * (1 - t) image += 2.0 * np.exp(-(R**2) / (2 * max(core_radius, 0.1)**2)) title.set_text('ВЗРЫВ СВЕРХНОВОЙ') else: t = min((frame - explosion_peak) / (bh_formed - explosion_peak), 1.0) r_s = 1.0 shock_radius = 14.0 * t + 4.0 if shock_radius < view * 1.5: shock_fade = max(1.0 - t, 0.15) image += shock_fade * 1.5 * np.exp(-((R - shock_radius) 2) / 8.0) disk_inner, disk_outer = 1.8, 6.0 disk_mask = (R > disk_inner) & (R < disk_outer) disk_brightness = np.clip(1.0 - (R - disk_inner) / (disk_outer - disk_inner), 0, 1) 1.3 image[disk_mask] += (disk_brightness[disk_mask]) * min(t * 1.5, 1.0) image[R < r_s] = 0 image += np.exp(-((R - r_s * 1.4) 2) / 0.02) * min(t * 1.5, 1.0) title.set_text('Чёрная дыра сформирована') im.set_data(image) return [im] anim = FuncAnimation(fig, animate, frames=n_frames, interval=40, blit=False, repeat=True) plt.tight_layout() plt.show()
Вперед
Отзывы
Отзывы

Пока нет отзывов.

Оставить отзыв
Что еще можно почитать