Этот
пакет новый, в предыдущих версиях его не было,
поэтому остановимся на нем подробнее. Пакет
содержит команды для оперирования с тензорами и
их использования в общей теории относительности
как в естественном базисе так и с движущимся
репером.
Этот пакет использует свой тип
представления данных, называемый tensor_type, чтобы
представлять объекты как с ковариантными так и
контрвариантными индексами. Говоря более
конкретно, tensor_type это таблица с двумя входами:
поле компонент `compts` , для запоминания компонент
объекта и поле характеристик индексов `index_char` ,
для описания ковариантных/контрвариантных
признаков индексов объекта. Компоненты должны
запоминаться в виде массива с размерностью
эквивалентной рангу объекта и со всеми
диапазонами индексов, начиная с 1 и кончая
размерностью пространства (разрешены только
диапазоны с одинаковой размерностью).
Характеристики индекса запоминаются как список
положительных и отрицательных единиц.
Положительная единица на i-той позиции означает,
что i-тый индекс контрвариантный. Аналогично,
отрицательная единица означает, что индекс
ковариантный. Например [1,-1,-1,1] означает, что
индексы 1 и 4 контравариантны, а индексы 2 и 3
ковариантны.
Таблица tensor_type - процедура, она
возвращает true если ее первый аргумент
удовлетворяет свойствам тензора и false в
противном случае.
Каждому тензору соответствуют еще две
табицы данных "таблица коэффициентов
вращений" и "таблица компонент кривизны".
Таблица коэффициентов вращений
запоминает коэффициенты вращения
Ньюмена-Пенроуза, вычисляемые командой tensor [ npspin
]. Коэффициенты индексируются в соответствии с их
греческими именами: epsilon, nu, lambda, pi, mu, tau, rho, sigma, kappa,
alpha, beta, и gamma (то есть., элемент таблицы [mu] содержит
коэффициент 'mu').
Таблица компонент кривизны содержит
компоненты кривизны Ньюмена-Пенроуза,
вычисляемые командой tensor [ npcurve ]. Эта
таблица содержит три поля: Phi , которое
является массивом размерности (0..2,0..2) (с
эрмитовыми матричными компонентами) и содержит
компоненты Риччи; Psi , которое является
массивом с размерностью (0..4) содержащим
компоненты Вейля; и R - скалярное поле,
содержащее скаляр Риччи.
Пакет содержит также собственную
эффективную команду упрощения тензоров tensor [ simp
] и некоторые индексные функции не содержащиеся в
основной библиотеке Maple , информацию о
которых можно получить при помощи команды tensor[indexing] .
Индексные и упрощающие функции пакета
инициализируются при помощи whith [любая
команда пакета] либо командой with ( tensor ).
Приведем полный список команд пакета:
Christoffel1
команда вычисления символов Кристоффеля
первого рода
Christoffel2 команда вычисления символов Кристоффеля
второго рода
Einstein тензор Эйнштейна
display_allGR описывает все объекты, используемые в общей
теории относительности
displayGR описывает один из объектов общей теории
относительности
tensorsGR вычисляет объекты общей теории
относительности
Jacobian Якобиан
преобразований координат
Killing_eqns
вычисляет выражения для уравнений Киллинга для
каждой компоненты полгностью симметричного
ковариантного тензора.
Levi_Civita Леви-Чивита псевдотензоры
Lie_diff производная
Ли по вектору
Ricci тензор
Риччи
Ricciscalar скаляр Риччи
Riemann тензор
Римана
RiemannF тензор
кривизна Римана в жесткой системе отсчета
Weyl тензор
Вейля
act применяет
операции у элементам тензора, таблица вращений
или кривизны
antisymmetrize симметризация тензора по любым индексам
change_basis изменение систем координат
commutator коммутатор двух векторов
compare сравнивает
два тезора, таблицы вращений или кривизны
conj комплексное
сопряжение
connexF связующие
коэффициенты для жесткой системы координат
contract свертка
тензора по парам индексов
convertNP преобразует связующий или Римана тензор к
Ньюмена-Пенроуза формализму
cov_diff ковариантное
дифференцирование
create создает
тензорный объект
d1metric первая
частная производная метрики
d2metric вторая
частная производная метрики
directional_diff
производная по направлению
dual осуществляет
дуальную операцию над индексами тензора
entermetric средство для ввода пользователем
метрических тензорных компонент
exterior_diff внешнее дифференцирование
exterior_prod внешнее произведение
frame вычисляет
систему координат, которая переводит
метрические компоненты к
диагональной сигнатурной
матрице (с положитедьными или отрицательными
единицами)
geodesic_eqns
уравнение Эйлера -Лагранжа для
геодезических кривых
get_char определяет
признак (ковариантный/конрвариантный) объекта
get_compts определяет компоненты объекта
get_rank определяет
ранг объекта
invars инварианты
Риманова тензора кривизны (Общая теория
относительности)
invert обращение
тензора второго ранга
lin_com линейная
комбинация тензорных объектов
lower опускает
индексы
npcurve Ньюмена-Пенроуза
компонента кривизны в формализме Дебевера (О.т.о.)
npspin Ньюмена-Пенроуза
компонента вращения в формализме Дебевера (О.т.о.)
partial_diff частная производная тензора
permute_indices перестановка индексов
petrov классификация
полиномов 4-той степени
prod внутреннее
и внешнее тензорное произведение
raise поднятие
индекса
symmetrize симметризация тензора по любым индексам
transform изменение координатной системы
Примеры
> restart;with(tensor):
Введем коордигнаты
> coords:=[t, r, theta,phi]:
Определим компоненты ковариантного
метрического тензора Шварцшильда:
> g:=array(symmetric,sparse,1..4,1..4);
g[1,1]:=(1-2*m/r): g[2,2]:=-1/g[1,1];
g[3,3]:=-r^2: g[4,4]:=-r^2*sin(theta)^2;
Теперь создадим метрический тензор п
используя команду create .
> metric:=create([-1,-1], eval(g));
Проверим, что новый объект "g"
действительно тензор (`tensor_type`):
> type(metric,tensor_type);
Вычислим тензоры кривизны по заданному
ковариантному метрическому тензору и заданным
координатам
> tensorsGR(coords,metric,con_metric,det_met,
C1, C2, Rm, Rc, R, G, C):
Здесь comtra_metric - контравариантный
метрический тензор; det_met - детерминант компонент
метрического тензора, С1, С2 - символы кристоффеля
1-го и 2-го рода, Rm - тензор Римана, Rc - тензор Риччи, R
- скаляр Риччи, G - тензор Эйнштейна, C -
тензор Вейля.
Теперь при помощи команды displayGR
можно вывести на дисплей компоненты любого из
перечисленных объектов, указав его имя, которое
может быть одним из следующих
coordinates cov_metric contra_metric detmetric Christoffel1
Christoffel2 Riemann Ricci Ricciscalar Einstein Weyl
Например
> displayGR(Christoffel1,C1);
Для вывода на дисплей тензоров до
второго второго ранга (скаляров, векторов и
матриц) удобнее использовать команду eval
> eval(con_metric);
> eval(det_met);
|