Коллекторы Sage

SageManifolds (следуя стилю SageMath) — это расширение, полностью интегрированное в SageMath , которое можно использовать в качестве пакета для дифференциальной геометрии и тензорного исчисления . Официальная страница проекта — sagemanifolds.obspm.fr. Его можно использовать на CoCalc .

SageManifolds имеет дело с дифференцируемыми многообразиями произвольной размерности. Базовыми объектами являются тензорные поля , а не компоненты тензора в заданной векторной системе координат или координатной карте. Другими словами, на многообразии могут быть введены различные карты и системы координат, и заданное тензорное поле может иметь представления в каждой из них.

Важным классом обрабатываемых многообразий являются псевдоримановы многообразия , среди которых римановы многообразия и лоренцевы многообразия , с приложениями к общей теории относительности . В частности, SageManifolds реализует вычисление тензора кривизны Римана и связанных с ним объектов ( тензор Риччи , тензор Вейля ). SageManifolds также может иметь дело с общими аффинными связями , не обязательно Леви-Чивиты .

Функциональность

ВерсияДатаОписание (из журнала изменений)
0.17 июля 2013 г.Впервые выпущен
0.212 сентября 2013 г.Определено шесть классов, и «многие doctest-ы изменены для соответствия Sage 5.11. Новые методы в каждом классе.
0.324 ноября 2013 г.Репозиторий разработки перемещен из svn в git . Новые примеры рабочих листов. Больше классов и методов (некоторые унаследованы от Sage).
0.410 февраля 2014 г.Новые классы, члены и методы.
0,512 июля 2014 г.Это крупный релиз, включающий введение алгебраических структур для описания тензорных полей, а именно модулей над алгеброй скалярных полей, среди которых свободные модули конечного ранга. Это достигается с помощью Sage Parent/ Elementсхемы и модели приведения.
0,628 сентября 2014 г.
  • Графический вывод для диаграмм (метод Chart.plot()) и точек (метод Point.plot()); вот несколько примеров.
  • Введение индексной нотации для обозначения тензорных контракций и тензорных симметризаций (новый класс TensorWithIndices); см. эти ссылки: 1, 2.
  • Аргумент методов symmetrize()и antisymmetrize()в тензорных классах теперь представляет собой непосредственно последовательность позиций индекса (а не один список/кортеж, инкапсулирующий такую ​​последовательность).
  • Метод self_contract()тензорных классов переименован trace().
  • Оптимизирован код для тензорных сокращений; более того, теперь разрешены множественные тензорные сокращения.
  • Улучшена документация (справочники 4 и 5).
0,712 марта 2015 г.Для конечного пользователя новые функции
  • введение кривых в многообразия (с некоторыми возможностями построения графиков)
  • улучшения в дифференциальных отображениях между многообразиями, включая композицию отображений и дифференциальное отображение
  • введение гомоморфизмов между свободными модулями
0.816 мая 2015 г.Изменения для конечного пользователя:
  • График векторных полей: новый методVectorField.plot()
  • Возможность распараллеливания сложных вычислений: распараллеливание реализовано для базового тензорного исчисления (арифметика, сокращения) и для исчисления, касающегося аффинных связей (коэффициенты связности, действие на тензорное поле, тензор кривизны Римана)
  • Хорошее отображение частных производных
  • Стандартные математические функции exp, cos, sin и т. д. для скалярных полей
  • Отображение компонентов тензора в виде списка, по одному в строке: новые методы TensorField.display_comp()иFreeModuleTensor.display_comp()
  • Хорошее отображение коэффициентов связи: новый методAffConnection.display()
  • Хорошее отображение символов Кристоффеля: новый методMetric.christoffel_symbols_display()
  • Хорошее отображение карт переходов диаграмм: новый методCoordChange.display()
0.910 декабря 2015 г.Это крупный релиз, являющийся результатом важного рефакторинга кода в связи с полной интеграцией SageManifolds в SageMath (см. метатикет #18528 в SageMath developer trac). Основные изменения:
  • Топологические свойства были отделены от дифференциальных путем внедрения топологических многообразий (новый класс TopologicalManifold) и создания класса для дифференцируемых многообразий ( DifferentiableManifold), наследуемого от TopologicalManifold.
  • Базовое поле, над которым определяются многообразия, больше не предполагается действительным полем: это может быть любое топологическое поле (недискретное для определения дифференцируемости для дифф. многообразий). Это позволяет легко определять комплексные многообразия, устанавливая поле в C .
  • Класс ManifoldOpenSubsetбыл удален: открытые подмножества многообразий теперь являются экземплярами TopologicalManifoldили DifferentiableManifold(поскольку открытое подмножество верхнего/дифференциального многообразия само по себе является верхним/дифференциальным многообразием)
  • Функции, определенные на координатном патче, больше не обязательно являются символическими функциями координат: теперь они относятся к общему классу CoordFunction, символические функции описываются его подклассом ( CoordFunctionSymb). Это открывает путь для «численных» многообразий, таких как пространства-времена, генерируемые числовыми кодами относительности.
  • Улучшенная распараллеливание, регулируемая новым классом Singleton Parallelismи глобальной функцией use_multiproc.
0.9.119 сентября 2016 г.*Полное изменение теперь указано на странице Википедии (эта)*

В этом выпуске распространяются дальнейшие изменения кода, связанные с интеграцией SageManifolds в SageMath (см. metaticket#18528); также добавлено несколько новых функций.

Новые функции:

  • Вычисление тензора Схоутена, конформного тензора Коттона и конформного тензора Коттона-Йорка, связанных с заданной псевдоримановой метрикой
  • Добавить структуру алгеброида Ли к модулям векторных полей (классы VectorFieldModuleи VectorFieldFreeModule): новый методVectorField.bracket
  • Распараллеливание векторных полей
  • Распараллеливание арифметики полностью антисимметричных тензорных компонент
  • Улучшено отображение переменных в частных производных с использованием отображения символов LaTeX (класс ExpressionNice)
  • Добавить оператор сравнения для карт переходов (класс CoordChange)
  • Добавить функциональность списка для баз (методы __len__и __iter__в классах FreeModuleBasisи FreeModuleCoBasis)

Синтаксические изменения:

  • Метод CoordChange.set_inverse: замените ключевое слово checkна verbose, значение по умолчанию — nowverbose=False
  • Введение Manifold.optionsдля управления отображением математических выражений вместо глобальных функций nice_derivativesи omit_function_args, которые были подавлены
  • Функция set_axes_labels(для установки меток на 3D-графиках) больше не импортируется при запуске; при необходимости нужно ввестиfrom sage.manifolds.utilities import set_axes_labels
  • Функция xder(внешняя производная) больше не импортируется во время запуска; при необходимости нужно ввестиfrom sage.manifolds.utilities import xder
  • Класс DiffForm: метод exterior_derпереименованexterior_derivative
  • Классы DiffScalarField, TensorFieldи TensorFieldParal: метод lie_derпереименован lie_derivative, с lie_derсохранением псевдонима последнего

Дополнительные внутренние изменения:

  • Структура многообразия теперь описывается с помощью определенных классов-синглтонов: TopologicalStructure, RealTopologicalStructure, DifferentialStructureиRealDifferentialStructure
  • Класс TopologicalManifoldSubsetпереименованManifoldSubset
  • Класс TopologicalManifoldPointпереименованManifoldPoint
  • Подмножества многообразий больше не являются фасадными родителями
  • Класс ManifoldSubset: новые методы liftиretract
  • Введение коммутативной алгебры всех символических координатных функций на заданной карте: новый класс CoordFunctionSymbRingи класс CoordFunctionтеперь наследуется отAlgebraElement
  • Класс FiniteRankFreeModule: категория изменена с Modules(ring)наModules(ring).FiniteDimensional()
  • Некоторые изменения для подготовки к переходу на Python 3 (например, printзаменено на print())
1.011 января 2017 г.Помимо полной интеграции в SageMath 7.5, есть лишь незначительные изменения по сравнению с v0.9.1:

Синтаксические изменения:

  • Метод plotклассов RealChartи VectorField: ключевой аргумент nb_valuesпереименованnumber_values
  • Метод structure_coefкласса VectorFrameпереименованstructure_coeff
  • Класс OpenInterval: аргумент subinterval_ofпереименован ambientв конструкторе
  • Класс RealLine: Имя LateX изменено с \RRна\Bold{R}

Внутренние изменения:

  • Систематическое использование синтаксиса, совместимого с Python3 (для подготовки миграции SageMath на Python3), в частности:
    • Все вхождения iteritems()изменены наitems()
    • Все вхождения itervalues()изменены наvalues()
    • Классы ScalarFieldи TensorField: метод __nonzero__переименован__bool__
    • Класс TensorField: метод __div__переименован__truediv__
  • Классы TensorFieldModuleи VectorFieldModule: DiffFormModuleдобавить кэшированный методzero
  • Классы DiffFormи DiffFormParal: метод exterior_derivativeкэшируется (через декоратор @cached_method)
  • Класс VectorFrame: метод structure_coeffкэшируется (через декоратор @cached_method)

Другие изменения:

  • Улучшения в документации; в частности, в справочное руководство добавлена ​​3D-графика для иллюстрации использования некоторых plotметодов.
  • Значения, установленные пользователем для некоторых ключевых аргументов plotметодов, становятся новыми значениями по умолчанию до дальнейшего явного изменения (такое поведение обеспечивается декоратором @options):
    • TangentVector.plot: аргументscale
    • VectorField.plot: аргументы max_rangeиscalecolor
    • DifferentiableCurve.plot: аргументы thickness, plot_points, max_rangeиaspect_ratio
1.0.125 марта 2017 г.
1.0.221 июля 2017 г.
1.17 декабря 2017 г.

Более подробную документацию можно найти на doc.sagemath.org/html/en/reference/manifolds/.

Бесплатное и открытое программное обеспечение

Как и SageMath, SageManifolds — это бесплатное программное обеспечение с открытым исходным кодом , основанное на языке программирования Python . Оно выпущено под лицензией GNU General Public License . Чтобы загрузить и установить SageManifolds, см. здесь. Это, в частности, GPL v2+ (что означает, что пользователь может выбрать использование лицензии выше, чем GPL версии 2).

Разработка

Большая часть исходного кода находится в тикетах на сайте trac.sagemath.org.

Репозитории GitHub находятся по адресу github.com/sagemanifolds/SageManifolds.

Другие ссылки доступны по адресу sagemanifolds.obspm.fr/contact.html.

Взято с "https://en.wikipedia.org/w/index.php?title=Sage_Manifolds&oldid=1230898198"