Сферический сектор — проверяемая версия total-1
Статическое веб-приложение. Интерфейс и локальные Three.js / OrbitControls сохранены из исходного проекта. React, Rust, npm и сервер расчётов не требуются.
Что исправлено
| Было | Стало |
|---|---|
| Максимум трёх попарных сумм | OutPotencial = omegaSphere + omegaRib1 + omegaRib2 |
| Отдельный подбор ближайшей точки для каждого угла | Единый интервал суммы для всех внутренних точек |
| Скрытый минимум расстояния, отсечение cos < 0.02 | Истинное расстояние и скалярное произведение нормали с единичным лучом |
| Потенциал считался также на рёбрах | Граница — только источник, цели расчёта — объём |
| Независимая копия Pascal внутри JS | Просмотр/скачивание реального Pascal-файла |
| Неполный экспорт вкладов | CSV и JSON содержат компоненты и общую сумму |
Модель и ограничения
Полный сектор 45 градусов без конуса и выреза. Центр в приложении (0,0,0). Эквивалентные координаты исторического Shine: Xshine=Y, Yshine=X, Zshine=Z+R. Нормали и расстояния в расчёте используют одну центрированную систему. Поворот/перенос не меняют телесные углы.
Фиксированные площадки (режим по умолчанию): dS=Ssh/10000 для каждого источника. Принято Ssh=pi*R²/2 — площадь сферической стенки одного сектора. Это допущение, а не найденное в исходном тексте определение. Количество точек изменяет представленную суммарную площадь. Нельзя интерпретировать эту модель как точный интеграл по сплошной границе. Единицы координат произвольные, но единые; dS в квадрате этих единиц.
Контроль сплошной границы: независимая квадратура 24×24 на каждой поверхности, с точными площадями ячеек. Расчётная сетка не совпадает с отображаемыми точками. Данные dS у отображаемых источников относятся к фиксированным площадкам, не к ячейкам контрольной квадратуры. У границы точечная квадратура имеет значительные погрешности; проверять сходимость, не считать всплески физическим эффектом. Аналитически сумма по полной замкнутой границе равна 4*pi во всех строго внутренних точках. В интерфейсе уровни контрольной квадратуры могут отражать её погрешность.
Цветовые уровни — восемь интервалов диапазона общей суммы, не восемь отдельных физических потенциалов. Уровень 1 соответствует минимуму. Непрерывный ползунок выбирает полосу шириной (max-min)/8. При почти постоянном поле ядро не растягивает шум меньше относительного 1e-8 на уровни. Срез Z=0 необязателен, по умолчанию выделение во всём объёме.
Сетка по кольцам без золотого сечения. Число в регуляторе сферы — ориентир числа точек полной сферы, не точное число в одном секторе. Некоторые старые подписи интерфейса «мениск» оставлены как название инструмента, не как подтверждение физической формы поверхности.
Pascal-файл реализует фиксированные площадки и сумму, но использует свою дискретизацию. Числа двух программ не обязаны совпадать до согласования сеток. Контрольная квадратура доступна в веб-версии. Компиляция PascalABC.NET в этой Linux-среде не проверена; файл не заявляется проверенным исполняемым приложением.
Проверка
node --test tests/*.test.cjs
node --check app.js
17 тестов: формула вклада, отсутствие углового отсечения, сумма компонент, масштабная инвариантность, интервалы, симметрия, площади и нормы нормалей, сходимость к 4*pi, регрессии старого подбора дуг. Для контрольной точки при N=12 ошибка 0.00205295 ср, при N=64 — 0.000111131 ср. Это не глобальная оценка точности возле границы.
Браузерный тест: python3 tests/browser_smoke.py (Selenium, Chromium и chromedriver; адрес существующего сервера 127.0.0.1:9876). Проверяет старт, уровни 1–8, уникальные ID, сумму компонент, конечность значений, ненулевые слои Z, переключение обоих методов. В Chromium не было ошибок JavaScript; есть предупреждения программного WebGL о производительности ReadPixels. Мобильные устройства, Safari, публичный домен, компиляция Pascal не проверены.
Публикация
1. Распаковать содержимое архива сайта в корневую папку статического хостинга. В ней должен лежать index.html, а не ещё один вложенный каталог.
2. Не публиковать резервный архив исходной версии, журналы или старые диагностические файлы.
3. В панели хостинга добавить точное доменное имя или поддомен. В DNS указать предоставленные хостингом A/AAAA либо CNAME; не использовать выдуманный IP.
4. Включить HTTPS средствами хостинга. Для поддомена сертификат должен покрывать именно его.
5. Открыть новый адрес, проверить надпись «total-1», вращение, выбор уровня, оба режима и скачивание Pascal. При старой версии очистить кэш.
Относительные пути позволяют размещать сайт также в подпапке. Сервер должен отдавать .js как JavaScript, .pas/.md как текст или скачивание. Для локального просмотра достаточно любого статического HTTP-сервера; открытие file:// ограничивает загрузку Pascal через fetch.
Новый домен и DNS в этой работе не настроены: имя и доступы не предоставлены. Существующие серверы не заменялись.
Что передать физику
«Исправлены суммирование всех трёх поверхностей и единый выбор по OutPotencial. Убраны подбор отдельных дуг и скрытая замена расстояния. dS=Ssh/10000, Ssh пока принято площадью сферической стенки сектора. Расчёт полного сектора без выреза/конуса. Просим подтвердить определение Ssh и прислать недостающий участок Shine с расчётом потенциалов и параметрами Rk/Fconus. Для замкнутой сплошной границы сумма телесных углов постоянна 4*pi; неравномерное физическое поле требует уточнения модели.»
Это исправленная программная реализация с обозначенными допущениями, не подтверждение диссертационной модели и не гарантия ожидаемых менисков.