4 @c OriginalRevision=1.35
5 @c TranslatedBy: (c) 2006-03 Valery Pipin <pip@iszf.irk.ru>
9 * Введение в пакет ctensor::
10 * Функции и переменные пакета ctensor::
13 @node Введение в пакет ctensor, Функции и переменные пакета ctensor, Пакет ctensor, Пакет ctensor
14 @section Введение в пакет ctensor
16 Пакет @code{ctensor} предназначен для операций с компонентами тензоров.
17 Для загрузки @code{ctensor} необходимо ввести команду
18 @code{load("ctensor")}. Стандартная интерактивная
19 сессия в @code{ctensor} начинается с команды @code{csetup()}. После этого
20 пользователь запрашивается о размерности многообразия. Если размерность
21 равна 2, 3 или 4, тогда список координат по умолчанию устанавливается
22 равным @code{[x,y]}, @code{[x,y,z]} или @code{[x,y,z,t]} соответственно.
23 Имена координат могут быть изменены присваиванием нового
24 списка координат переменной @code{ct_coords} (см. ниже), пользователь
25 также запрашивается о необходимости переопределения списка координат.
26 Следует внимательно выбирать имена координат таким образом, чтобы
27 избежать конфликтов с другими объектами.
29 После этого пользователь задает метрику непосредственно, либо
30 указывая файл в котром она находится.
32 Файл @code{share/tensor/metrics.mac} содержит определения некоторых
33 стандартных метрик. Метрика хранится в матрице @code{lg}.
34 Обратная метрика вычисляется и помещается в матрицу @code{ug}.
35 При определении метрики существует возможность использования степенных рядов.
37 Ниже приведено начало протокола определения статической,
38 сферически-симметричной метрики (стандартные координаты)
39 с целью вычисления вакуумных уравнений Эйнштейна,
40 приводящих к решению Шварцшильда. Многие функции пакета
41 @code{ctensor} будут продемонстрированы на примере этой метрики.
44 (%i1) load("ctensor");
45 (%o1) /usr/local/lib/maxima/share/tensor/ctensor.mac
47 Enter the dimension of the coordinate system:
49 Do you wish to change the coordinate names?
52 1. Enter a new metric?
54 2. Enter a metric from a file?
56 3. Approximate a metric with a Taylor series?
59 Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General
72 Enter functional dependencies with the DEPENDS function or 'N' if none
74 Do you wish to see the metric?
115 (%t9) mcs = - ---------
118 (%t10) mcs = - cos(y) sin(y)
129 @opencatbox{Категории:}
131 @category{Пакеты библиотеки share}
132 @category{Пакет ctensor}
135 @node Функции и переменные пакета ctensor, , Введение в пакет ctensor, Пакет ctensor
137 @section Функции и переменные пакета ctensor
139 @subsection Начальные установки
141 @deffn {Функция} csetup ()
142 Эта функция производит начальные установки пакета @code{ctensor}
143 и позволяет пользователю ввести метрику интерактивно.
144 См. @code{ctensor} для более подробного описания.
146 @opencatbox{Категории:}
147 @category{Пакет ctensor}
151 @deffn {Функция} cmetric (@var{dis})
152 @deffnx {Функция} cmetric ()
153 Функция пакета @code{ctensor}, которая вычисляет обратную
154 метрику и готовит пакет к проведению дальнейших вычислений.
156 Если переключатель @code{cframe_flag} равен @code{false}, то функция
157 вычисляет обратную метрику @code{ug} исходя из заданной пользователем
158 матрицы @code{lg}. Определитель метрики тоже вычисляется и
159 сохраняется в переменной @code{gdet}. Боле того, программа определяет
160 является ли метрика диагональной и соответственным образом
161 устанавливает значение ключа @code{diagmetric}. Если задан необязательный
162 ключ @var{dis} и его значение не равно @code{false}, то в ходе сессии
163 пользователь запрашивается требуется ли распечатать компоненты обратной
166 Если ключ @code{cframe_flag} равен @code{true}, тогда ожидается, что
167 заданы значения @code{fri} (матрица обратного базиса) и массив @code{lfg}
168 (метрика относительно данного базиса). Исходя из этих данных
169 вычисляются матрица @code{fr} и обратная метрика @code{ufg}
170 относительно заданного базиса.
172 @opencatbox{Категории:}
173 @category{Пакет ctensor}
177 @deffn {Функция} ct_coordsys (@var{coordinate_system}, @var{extra_arg})
178 @deffnx {Функция} ct_coordsys (@var{coordinate_system})
179 Задает одну из предопределенных координатных систем и метрик.
180 Аргумент @var{coordinate_system} может принимать одно из следующих
185 Символ Dim Координаты Описание/комментарии
186 ------------------------------------------------------------------
187 cartesian2d 2 [x,y] Декартовы 2D координаты
188 polar 2 [r,phi] Полярные координаты
189 elliptic 2 [u,v] Эллиптические
191 confocalelliptic 2 [u,v] Конфокальные
193 bipolar 2 [u,v] Биполярные координаты
194 parabolic 2 [u,v] Параболические
196 cartesian3d 3 [x,y,z] Декартова 3D система
198 polarcylindrical 3 [r,theta,z] Цилиндрические
200 ellipticcylindrical 3 [u,v,z] Эллиптические 2D
202 confocalellipsoidal 3 [u,v,w] Конфокальные
204 bipolarcylindrical 3 [u,v,z] Биполярные 2D
206 paraboliccylindrical 3 [u,v,z] Параболические 2D
208 paraboloidal 3 [u,v,phi] Параболоидные
210 conical 3 [u,v,w] Конические координаты
211 toroidal 3 [u,v,phi] Тороидальные координаты
212 spherical 3 [r,theta,phi] Сферические координаты
213 oblatespheroidal 3 [u,v,phi] Сжатые сфероидальные
214 oblatespheroidalsqrt 3 [u,v,phi]
215 prolatespheroidal 3 [u,v,phi] Вытянутые сфероидальные
216 prolatespheroidalsqrt 3 [u,v,phi]
217 ellipsoidal 3 [r,theta,phi] Эллипсоидальные
219 cartesian4d 4 [x,y,z,t] Декартовы 4D координаты
220 spherical4d 4 [r,theta,eta,phi] Сферические 4D
222 exteriorschwarzschild 4 [t,r,theta,phi] Метрика Шварцшильда
223 interiorschwarzschild 4 [t,z,u,v] Внутреняя метрика
225 kerr_newman 4 [t,r,theta,phi] Метрика Керра-Ньюмана
229 @code{coordinate_system} может быть списком функций преобразования,
230 за которым следует список координат. Например,
231 можно задать метрику следующим образом:
235 (%i1) load("ctensor");
236 (%o1) /share/tensor/ctensor.mac
237 (%i2) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
238 r*sin(theta),[r,theta,phi]]);
240 (%i3) lg:trigsimp(lg);
247 [ 0 0 r cos (theta) ]
249 (%o4) [r, theta, phi]
255 Функции преобразования могут также использоваться и в случае,
256 когда @code{cframe_flag} равно @code{true}:
260 (%i1) load("ctensor");
261 (%o1) /share/tensor/ctensor.mac
262 (%i2) cframe_flag:true;
264 (%i3) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
265 r*sin(theta),[r,theta,phi]]);
269 [cos(phi)cos(theta) -cos(phi) r sin(theta) -sin(phi) r cos(theta)]
271 [sin(phi)cos(theta) -sin(phi) r sin(theta) cos(phi) r cos(theta)]
273 [ sin(theta) r cos(theta) 0 ]
277 (%i6) lg:trigsimp(lg);
284 [ 0 0 r cos (theta) ]
288 Необязательный аргумент @var{extra_arg} может принимать одно из
290 @c LOOKING AT share/tensor/ctensor.mac CIRCA LINE 837, misner IS RECOGNIZED ALSO; WHAT EFFECT DOES IT HAVE ??
292 @code{cylindrical} указывает @code{ct_coordsys} добавить одну
293 дополнительную цилиндрическую координату.
295 @code{minkowski} указывает @code{ct_coordsys} добавить дополнительную
296 декартову координату с отрицательной сигнатурой.
298 @code{all} указывает @code{ct_coordsys}, что после определения метрики
299 необходимо вызвать @code{cmetric} и @code{christof(false)}.
301 @c GLOBAL VARIABLE verbose IS USED IN ctensor.mac IN JUST THIS ONE CONTEXT
302 Если глобальная переменная @code{verbose} равна @code{true},
303 то @code{ct_coordsys} выводит значения @code{dim}, @code{ct_coords}, и
304 или @code{lg} или @code{lfg} и @code{fri}, в зависимости от значения
307 @opencatbox{Категории:}
308 @category{Пакет ctensor}
312 @deffn {Функция} init_ctensor ()
313 Инициализирует пакет @code{ctensor}.
315 Функция @code{init_ctensor} ре-инициализирует пакет
316 @code{ctensor}, при этом из памяти удаляются все использованные ранее пакетом @code{ctensor}
317 массивы и матрицы и восстанавливаются стандартные значения всех
318 ключей, в том числе: размерность многообразия, @code{dim},
319 устанавливается равной 4, а метрика устанавливается равной метрике Лоренца.
321 @opencatbox{Категории:}
322 @category{Пакет ctensor}
327 @subsection Тензоры искривленного пространства
329 Основное назначение пакета @code{ctensor} -- вычисление различных
330 тензоров для искривленного пространства-времени, в основном
331 тензоров, использующихся в общей теории относительности.
333 При использовании голономного (координатного) базиса @code{ctensor} может вычислить
340 lcs -- mcs -- ric -- uric
342 \ tracer - ein -- lein
344 riem -- lriem -- weyl
351 @code{ctensor} может также работать при неголономном базисе (тетрадный формализм).
352 Когда @code{cframe_flag} равно @code{true}, следующие
353 объекты могут быть вычислены:
359 fri -- fr -- lcs -- mcs -- lriem -- ric -- uric
361 lg -- ug | weyl tracer - ein -- lein
369 @deffn {Функция} christof (@var{dis})
370 Функция пакета @code{ctensor}, вычисляющая символы Кристоффеля
371 первого и второго родов. Аргумент @var{dis} определяет какой
372 результат должен быть отображен.
373 Символы Кристоффеля первого и второго рода хранятся в массивах
374 @code{lcs[i,j,k]} и @code{mcs[i,j,k]} соответственно и считается
375 симметричным по первой паре индексов. Если аргумент
376 @code{christof} есть @code{lcs} или @code{mcs} то будут выведены
377 все уникальные (симметрия) ненулевые значения @code{lcs[i,j,k]}
378 или @code{mcs[i,j,k]}, соответственно. Если аргумент равен
379 @code{all}, тогда печатаются уникальные ненулевые значения
380 как @code{lcs[i,j,k]} и @code{mcs[i,j,k]}.
381 Если аргумент равен @code{false}, то ни какие значения не
382 отображаются. Массив @code{mcs[i,j,k]} определен таким образом,
383 что последний индекс является контравариантным.
385 @opencatbox{Категории:}
386 @category{Пакет ctensor}
390 @deffn {Функция} ricci (@var{dis})
391 Функция пакета @code{ctensor}, вычисляющая ковариантные
392 (симметричные) компоненты тензора Риччи @code{ric[i,j]}.
393 Если аргумент @var{dis} равен @code{true}, то на экран выводится печать
394 результатов вычисления ненулевых компонент тензора.
396 @opencatbox{Категории:}
397 @category{Пакет ctensor}
401 @deffn {Функция} uricci (@var{dis})
402 Эта функция сначала вычисляет ковариантные
403 компоненты тензора Риччи @code{ric[i,j]}.
404 Затем с помощью контравариантной метрики
405 вычисляется тензор Риччи со смешанными компонентами.
406 Если аргумент @var{dis} равен @code{true}, тогда смешанные
407 компоненты @code{uric[i,j]} (индекс @code{i} ковариантный,
408 а индекс @code{j} контравариантный), будут распечатаны.
409 При @code{ricci(false)} просто вычисляется массив @code{uric[i,j]}
412 @opencatbox{Категории:}
413 @category{Пакет ctensor}
417 @deffn {Функция} scurvature ()
418 Возвращает значение скалярной кривизны, получаемое
419 сверткой тензора кривизны Риччи.
421 @opencatbox{Категории:}
422 @category{Пакет ctensor}
426 @deffn {Функция} einstein (@var{dis})
427 Функция @code{einstein} вычисляет смешанный тензор Эйнштейна
428 после того как вычислены символы Кристоффеля и тензор Риччи
429 пи помощи функций @code{christof} и @code{ricci}.
430 Если аргумент @var{dis} равен @code{true}, тогда ненулевые компоненты
431 тензора Эйнштейна @code{ein[i,j]} будут напечатаны, где
432 индекс @code{j} является ковариантным.
433 Переключатель @code{rateinstein} вызывает рациональное упрощение
434 результирующих компонент. Если @code{ratfac} равен @code{true}
435 тогда компоненты будут автоматически факторизованы.
437 @opencatbox{Категории:}
438 @category{Пакет ctensor}
442 @deffn {Функция} leinstein (@var{dis})
443 Вычисляет ковариантный тензор Эйнштейна. @code{leinstein} записывает
444 компоненты ковариантного тензора Эйнштейна в массив @code{lein}.
445 Контравариантные компоненты тензора Эйнштейна вычисляются исходя из
446 смешанного тензора Эйнштейна @code{ein}. Если аргумент @var{dis}
447 равен @code{true}, тогда ненулевые компоненты ковариантного тензора
448 Эйнштейна распечатываются на экране.
450 @opencatbox{Категории:}
451 @category{Пакет ctensor}
455 @deffn {Функция} riemann (@var{dis})
456 Функция @code{riemann} вычисляет тензор кривизны Римана используя
457 метрику и символы Кристоффеля. При этом используются следующие
462 R[i,j,k,l] = R = | - | + | | - | |
463 ijk ij,k ik,j mk ij mj ik
466 Эти обозначения совместимы с используемыми в пакете @code{itensor}
467 и его функцией @code{icurvature}. Если необязательный
468 аргумент @var{dis} равен @code{true}, тогда
469 ненулевые компоненты тензора @code{riem[i,j,k,l]} печатаются на экране.
470 Как и для тензора Эйнштейна, управление процессом упрощения компонент тензора Римана
471 осуществляется при помощи различные переключателей(флагов).
472 Если @code{ratriemann} равен @code{true}, тогда
473 будет применено рациональное упрощение.
474 Если @code{ratfac} равен @code{true}, тогда каждая компонента
477 Если @code{cframe_flag} равен @code{false}, тогда тензор Римана
478 вычисляется непосредственно исходя из символов Кристоффеля.
479 Если @code{cframe_flag} равен @code{true}, тогда сначала
480 вычисляется ковариантный тензор Римана исходя из компонент
481 неголономного базиса.
483 @opencatbox{Категории:}
484 @category{Пакет ctensor}
488 @deffn {Функция} lriemann (@var{dis})
489 Ковариантный тензор Римана (@code{lriem[]}).
490 Функция вычисляет ковариантный тензор Римана и заносит результаты в
491 массив @code{lriem}. Если флаг @var{dis} равен @code{true}, то
492 результаты вычислений уникальных ненулевых компонент тензора выводятся
495 Если флаг @code{cframe_flag} равен @code{true}, то ковариантный тензор
496 Римана вычисляется напрямую по компонентам тетрады, если иначе, то
497 вначале вычисляется тензор Римана ранга (3,1).
499 Информация о порядке следования индексов подробнее освящена в пункте @code{riemann}.
501 @opencatbox{Категории:}
502 @category{Пакет ctensor}
506 @deffn {Функция} uriemann (@var{dis})
507 Вычисляет контравариантные компоненты тензора Римана и заносит их в
508 матрицу @code{uriem[i,j,k,l]}. Результаты вычислений печатаются на
509 экране если флаг @var{dis} равен @code{true}.
511 @opencatbox{Категории:}
512 @category{Пакет ctensor}
516 @deffn {Функция} rinvariant ()
517 Вычисляет инвариант Кречмана (Kretchmann) (@code{kinvariant}),
518 используя свертку тензоров. Например,
521 lriem[i,j,k,l]*uriem[i,j,k,l].
524 Поскольку выражение может быть громоздким, то по умолчанию отключено
525 автоматическое упрощение результата вычисления инварианта.
527 @opencatbox{Категории:}
528 @category{Пакет ctensor}
532 @deffn {Функция} weyl (@var{dis})
533 Вычисляет конформный тензор Вейля. Если флаг @var{dis} равен
534 @code{true} - на экране печатаются не нулевые компоненты
535 @code{weyl[i,j,k,l]}, если иначе, то результаты вычислений просто
536 заносятся в матрицу. Если ключ @code{ratweyl} равен @code{true}, тогда
537 производится автоматическое упрощение результата с использованием
538 алгебры рациональных чисел; при @code{ratfac} равном @code{true}
539 результат вычислений автоматически факторизуется.
541 @opencatbox{Категории:}
542 @category{Пакет ctensor}
546 @subsection Разложение в ряды Тейлора
548 В пакете @code{ctensor} реализованы возможности упрощения результатов
549 вычислений если метрика апроксимирована рядом Тейлора. Для учета метрики
550 такого типа необходимо установить ключ @code{ctayswitch} равным
551 @code{true}. Данный ключ заставляет использовать при пакетных вычислениях
552 функцию @code{ctaylor} для упрощения результатов.
554 Функция @code{ctaylor} вызывается в следующих пакетных функциях @code{ctensor}:
559 ---------------------------------
560 christof() Только для mcs
570 @deffn {Функция} ctaylor ()
572 Функция @code{ctaylor} преобразует выражения заданных аргументов конвертируя их в
573 Тейлоровские ряды, используя функцию @code{taylor}, и затем вызывая
574 @code{ratdisrep}. Это приводит к отбрасыванию слагаемых высокого
575 порядка по переменной разложения @code{ctayvar}. Порядок отбрасываемых
576 членов определен переменной @code{ctaypov}; центральная точка окрестности
577 разложения определяется переменной @code{ctaypt}.
579 В качестве примера рассмотрим простую метрику , полученную в результате
580 возмущений метрики Минковского. Если не наложить ограничений, то даже
581 диагональная метрика в этом случае приводит к достаточно громоздким
582 выражениям тензора Эйнштейна:
586 (%i1) load("ctensor");
587 (%o1) /share/tensor/ctensor.mac
590 (%i3) derivabbrev:true;
592 (%i4) ct_coords:[t,r,theta,phi];
593 (%o4) [t, r, theta, phi]
594 (%i5) lg:matrix([-1,0,0,0],[0,1,0,0],[0,0,r^2,0],
595 [0,0,0,r^2*sin(theta)^2]);
604 [ 0 0 0 r sin (theta) ]
605 (%i6) h:matrix([h11,0,0,0],[0,h22,0,0],[0,0,h33,0],[0,0,0,h44]);
624 [ 0 0 0 r sin (theta) + h44 l ]
625 (%i9) cmetric(false);
627 (%i10) einstein(false);
650 Однако если считать что @code{l} мало и оставить только линейные члены
651 по @code{l}, тогда получим намного более простое выражение для тензора Эйнштейна:
655 (%i14) ctayswitch:true;
663 (%i18) christof(false);
667 (%i20) einstein(false);
687 (%i22) ratsimp(ein[1,1]);
689 (%o22) - (((h11 h22 - h11 ) (l ) r - 2 h33 l r ) sin (theta)
693 - 2 h44 l r - h33 h44 (l ) )/(4 r sin (theta))
698 Данное приближение полезно в пределе слабого поля, вдали от
699 гравитационных источников.
701 @opencatbox{Категории:}
702 @category{Пакет ctensor}
707 @subsection Неголономный базис
709 Если ключ @code{cframe_flag} равен @code{true}, то пакетные
710 вычисления выполняются с использованием тетрадного (неголономного в общем
713 @deffn {Функция} frame_bracket (@var{fr}, @var{fri}, @var{diagframe})
714 Скобка тетрады (@code{fb[]}).
716 Вычисляет скобку тетрады, следуя определению:
720 ifb = ( ifri - ifri ) ifr ifr
724 @opencatbox{Категории:}
725 @category{Пакет ctensor}
729 @subsection Алгебраическая классификация
731 Новой особенностью пакета @code{ctensor} (начиная с ноября 2004)
732 является возможность вычисления классификации Петрова 4-мерного
733 пространственно-временного многообразия.
734 Демонстрационные вычисления по данной теме представлены в файле
735 @code{share/tensor/petrov.dem}.
737 @deffn {Функция} nptetrad ()
738 Вычисляет световую тетраду (@code{np}) Ньюмана-Пенроуза и связанную с ней
739 дуальную часть (@code{npi}), см. @code{petrov} для примера.
741 Световая тетрада конструируется с использованием 4-х мерного ортонормального
742 базиса метрики, обладающей сигнатурой (-,+,+,+). Компоненты
743 световой тетрады связаны с обратной матрицей метрики следующими соотношениями:
747 np = (fri + fri ) / sqrt(2)
750 np = (fri - fri ) / sqrt(2)
753 np = (fri + %i fri ) / sqrt(2)
756 np = (fri - %i fri ) / sqrt(2)
761 @opencatbox{Категории:}
762 @category{Пакет ctensor}
767 @deffn {Функция} psi (@var{dis})
768 Вычисляет пять коэффициентов Ньюмана-Пенроуза @code{psi[0]}...@code{psi[4]}.
769 Если @code{psi} равен @code{true}, эти коэффициенты печатаются на
770 экране, см пример в пункте @code{petrov}.
772 Коэффициенты вычисляются в координатном базисе из тензора Вейля.
773 Если при использовании тетрадного базиса, компоненты тензора Вейля предварительно
774 конвертируются в координатный базис. Эта процедура не оптимальна с
775 вычислительной точки зрения и поэтому перед вычислением тензора Вейля
776 предварительно рекомендуется задать координатный базис.
777 Заметим однако, что вычисления световой тетрады (@code{np})
778 Ньюмана-Пенроуза требует задания тетрадного базиса. Таким образом,
779 имеющая смысл схема вычислений в этом случае может состоять из следующих
780 этапов: вначале задается базис тетрады, который затем используется для
781 вычисления метрики @code{lg} (вычисляется автоматически при вызове @code{cmetric})
782 и обратной метрики @code{ug}; на этом этапе можно переключится обратно к
783 координатному базису установив ключ @code{cframe_flag} равным
784 @code{false} перед началом вычислений символов Кристоффеля.
785 Переход обратно к тетрадному базису на более поздних стадиях вычислений
786 может привести к несогласованным результатам, поскольку в выражении
787 перемешиваются результаты вычислений компонент тензоров выполненных в
790 @opencatbox{Категории:}
791 @category{Пакет ctensor}
795 @deffn {Функция} petrov ()
796 Вычисляет классификацию Петрова для данной метрики, определяя @code{psi[0]}...@code{psi[4]}.
798 Например, нижеследующее показывает, как получить классификацию Петрова
802 (%i1) load("ctensor");
803 (%o1) /share/tensor/ctensor.mac
804 (%i2) (cframe_flag:true,gcd:spmod,ctrgsimp:true,ratfac:true);
806 (%i3) ct_coordsys(exteriorschwarzschild,all);
811 (%i6) nptetrad(true);
814 [ sqrt(r - 2 m) sqrt(r) ]
815 [--------------- --------------------- 0 0 ]
816 [sqrt(2) sqrt(r) sqrt(2) sqrt(r - 2 m) ]
818 [ sqrt(r - 2 m) sqrt(r) ]
819 [--------------- - --------------------- 0 0 ]
820 [sqrt(2) sqrt(r) sqrt(2) sqrt(r - 2 m) ]
822 [ r %i r sin(theta) ]
823 [ 0 0 ------- --------------- ]
827 [ 0 0 ------- - ---------------]
830 sqrt(r) sqrt(r - 2 m)
831 (%t7) npi = matrix([- ---------------------,---------------, 0, 0],
832 sqrt(2) sqrt(r - 2 m) sqrt(2) sqrt(r)
834 sqrt(r) sqrt(r - 2 m)
835 [- ---------------------, - ---------------, 0, 0],
836 sqrt(2) sqrt(r - 2 m) sqrt(2) sqrt(r)
839 [0, 0, ---------, --------------------],
840 sqrt(2) r sqrt(2) r sin(theta)
843 [0, 0, ---------, - --------------------])
844 sqrt(2) r sqrt(2) r sin(theta)
870 Вычисление классификации Петрова основано на алгоритме опубликованном в монографии
871 "Classifying geometries in general relativity: III Classification in practice"
872 by Pollney, Skea, and d'Inverno, Class. Quant. Grav. 17 2885-2902 (2000).
873 В текущем виде (по состоянию на 19 декабря 2004) код программы протестирован только для некоторых простых
874 случаев и может содержать ошибки.
876 @opencatbox{Категории:}
877 @category{Пакет ctensor}
882 @subsection Кручение и неметричность
884 В пакете @code{ctensor} реализованы учета
885 неметричности и кручения в коэффициентах связности.
887 Коэффициенты кручения вычисляются при помощи определенного пользователем
888 тензора кручения ранга (2,1) @code{tr}. Используя его, коэффициенты
889 кручения, @code{kt}, вычисляются по формулам:
896 kt = -------------------------------
906 Заметим, что массив @code{kt} содержит только смешанные компоненты.
908 Коэффициенты неметричности вычисляются из предварительно определенного
909 пользователем вектора неметричности @code{nm} по следующим формулам:
914 -nm D - D nm + g nm g
916 nmc = ------------------------------
921 где D обозначает дельта-символ Кронекера.
923 Если ключ @code{ctorsion_flag} равен @code{true}, то коэффициенты @code{kt}
924 выделяются из смешанных компонент связности вычисляемых функцией
925 @code{christof} и запоминаются в массиве @code{mcs}. Аналогичным образом
926 Maxima поступает, если флаг @code{cnonmet_flag} равен @code{true}, в
927 этом случае из смешанных компонент связности выделяется массив @code{nmc}.
929 Если необходимо, функция @code{christof} вызывает функции @code{contortion}
930 @code{nonmetricity} для вычисления массивов @code{kt} @code{nm}.
932 @deffn {Функция} contortion (@var{tr})
934 Вычисляет коэффициенты кручения ранга (2,1) из тензора кручения @var{tr}.
936 @opencatbox{Категории:}
937 @category{Пакет ctensor}
941 @deffn {Функция} nonmetricity (@var{nmс})
943 Вычисляет коэффициенты неметричности ранга (2,1) из вектора неметричности @var{nm}.
945 @opencatbox{Категории:}
946 @category{Пакет ctensor}
952 @subsection Вспомогательные средства
954 @deffn {Функция} ctransform (@var{M})
955 Функция, выполняющая координатное преобразование произвольной
956 симметричной матрицы @var{M}. Пользователь интерактивно запрашивается
957 системой о функциях осуществляющих преобразование (прошлое название @code{transform}).
959 @opencatbox{Категории:}
960 @category{Пакет ctensor}
964 @deffn {Функция} findde (@var{A}, @var{n})
966 возвращает список дифференциальных уравнений, соответствующих элементам
967 @var{n} -ой квадратной матрицы @var{A}. В текущем виде @var{n} может
968 быть 2 или 3. @code{deindex} - список (определенный глобально) содержащий индексы
969 матрицы @var{A} соответствующие этим дифференциальным уравнениям.
970 Для тензора Эйнштейна (@code{ein}), представленного в форме двухмерного
971 массива вычисленного по метрике данной ниже, функция @code{findde} дает
972 следующую систему уравнений:
976 (%i1) load("ctensor");
977 (%o1) /share/tensor/ctensor.mac
978 (%i2) derivabbrev:true;
982 (%i4) lg:matrix([a, 0, 0, 0], [ 0, x^2, 0, 0],
983 [0, 0, x^2*sin(y)^2, 0], [0,0,0,-d]);
993 (%i5) depends([a,d],x);
995 (%i6) ct_coords:[x,y,z,t];
999 (%i8) einstein(false);
1001 (%i9) findde(ein,2);
1003 (%o9) [d x - a d + d, 2 a d d x - a (d ) x - a d d x
1007 + 2 a d d - 2 a d , a x + a - a]
1010 (%o10) [[1, 1], [2, 2], [4, 4]]
1015 @opencatbox{Категории:}
1016 @category{Пакет ctensor}
1020 @deffn {Функция} cograd ()
1021 Вычисляет ковариантный градиент скалярной функции. Пользователь может
1022 задать имя полученному вектору, согласно процедуре проиллюстрированной
1023 ниже в пункте @code{contragrad}.
1025 @opencatbox{Категории:}
1026 @category{Пакет ctensor}
1030 @deffn {Функция} contragrad ()
1032 Вычисляет контравариантный градиент скалярной функции. Пользователь может
1033 задать имя полученному вектору, следуя примеру (вычисления используют
1034 метрику Шварцшильда):
1035 @c "vector^F2name^F*" LOOKS LIKE IT NEEDS TO BE FIXED UP, NOT SURE HOW THOUGH
1039 (%i1) load("ctensor");
1040 (%o1) /share/tensor/ctensor.mac
1041 (%i2) derivabbrev:true;
1043 (%i3) ct_coordsys(exteriorschwarzschild,all);
1049 (%i6) listarray(g1);
1052 (%i7) contragrad(f,g2);
1054 (%i8) listarray(g2);
1057 (%o8) [0, -------------, 0, 0]
1062 @opencatbox{Категории:}
1063 @category{Пакет ctensor}
1067 @deffn {Функция} dscalar ()
1068 вычисляет даламбертиан скалярной функции, (зависимость от переменных
1069 должна быть определена заранее), например:
1072 (%i1) load("ctensor");
1073 (%o1) /share/tensor/ctensor.mac
1074 (%i2) derivabbrev:true;
1076 (%i3) ct_coordsys(exteriorschwarzschild,all);
1080 (%i5) factor(dscalar(p));
1082 p r - 2 m p r + 2 p r - 2 m p
1084 (%o5) --------------------------------------
1089 @opencatbox{Категории:}
1090 @category{Пакет ctensor}
1094 @deffn {Функция} checkdiv ()
1096 вычисляет ковариантную дивергенцию смешанного тензора второго ранга
1097 (первый индекс должен быть ковариантным). На печать выводится
1098 n-соответствующих компонент полученного векторного поля, где
1099 n = @code{dim}. Если аргументом функции является @code{g} (метрический
1100 тензор), тогда для упрощения результата используется равенство нулю
1101 ковариантной дивергенции тензора Эйнштейна. Результат вычислений (вектор)
1102 запоминается в массиве с именем @code{div}.
1104 @opencatbox{Категории:}
1105 @category{Пакет ctensor}
1109 @deffn {Функция} cgeodesic (@var{dis})
1110 Функция пакета @code{ctensor} вычисляющая уравнения геодезических для
1111 заданной метрики. Результат запоминается в массиве @code{geod[i]}. Если аргумент
1112 @var{dis} равен @code{true}, тогда на экране печатается результат вычислений.
1114 @opencatbox{Категории:}
1115 @category{Пакет ctensor}
1120 @deffn {Функция} bdvac (@var{f})
1122 генерирует ковариантные компоненты вакуумных уравнений поля теории
1123 Бранса-Дикке. Скалярное поле определено аргументом @var{f}, который задается в виде
1124 взятого в кавычки имени функции вместе со своими функциональными
1125 аргументами, например, @code{bdvac('p(x))}. Результат вычислений
1126 (компоненты поля ковариантного тензора 2-го ранга) запоминается в @code{bd}.
1128 @opencatbox{Категории:}
1129 @category{Пакет ctensor}
1133 @deffn {Функция} invariant1 ()
1135 генерирует полевые уравнения Эйлера-Лагранжа для инвариантной плотности
1136 R^2. Результат запоминается в массиве @code{inv1}.
1138 @opencatbox{Категории:}
1139 @category{Пакет ctensor}
1143 @deffn {Функция} invariant2 ()
1145 *** ПОКА НЕ РЕАЛИЗОВАНО ***
1146 генерирует смешанные полевые уравнения Эйлера-Лагранжа для инвариантной плотности
1147 @code{ric[i,j]*uriem[i,j]}. Результат запоминается в массиве @code{inv2}.
1149 @opencatbox{Категории:}
1150 @category{Пакет ctensor}
1154 @deffn {Функция} bimetric ()
1156 *** ПОКА НЕ РЕАЛИЗОВАНО ***
1157 генерирует полевые уравнения биметрической теории Розена.
1158 Результат запоминается в массиве @code{rosen}.
1160 @opencatbox{Категории:}
1161 @category{Пакет ctensor}
1167 @deffn {Функция} diagmatrixp (@var{M})
1169 Возвращает @code{true} если @var{M} - диагональная матрица (2-х мерный массив).
1171 @opencatbox{Категории:}
1172 @category{Пакет ctensor}
1173 @category{Функции предикаты}
1177 @deffn {Функция} symmetricp (@var{M})
1179 Возвращает @code{true} если @var{M} - симметричная матрица (2-х мерный массив).
1181 @opencatbox{Категории:}
1182 @category{Пакет ctensor}
1183 @category{Функции предикаты}
1187 @deffn {Функция} ntermst (@var{f})
1188 Дает пользователю возможность оценить размеры массива компонент
1189 тензора @var{f}. В результате печатается список двух элементов, где
1190 первый элемент является списком индексов компоненты тензора, а
1191 второй элемент соответствует количеству слагаемых этой компоненты.
1192 Таким способом можно быстро выявить ненулевые компоненты и оценить
1193 стратегию упрощения тензора.
1195 @opencatbox{Категории:}
1196 @category{Пакет ctensor}
1200 @deffn {Функция} cdisplay (@var{ten})
1201 показывает все элементы тензора @var{ten}, в виде многомерного массива.
1202 Тензора ранга 0 и 1, также как и другие типы переменных показываются
1203 стандартной функцией Maxima - @code{ldisplay}. Тензоры ранга 2 печатаются в виде
1204 двухмерной матрицы, тензоры более высокого порядка выводятся на экран как
1205 список 2-мерных матриц. Например в следующем примере на экран выводится
1206 результаты вычисления тензора Римана для метрики Шварцшильда:
1209 (%i1) load("ctensor");
1210 (%o1) /share/tensor/ctensor.mac
1213 (%i3) ct_coordsys(exteriorschwarzschild,all);
1215 (%i4) riemann(false);
1217 (%i5) cdisplay(riem);
1221 [ 3 m (r - 2 m) m 2 m ]
1222 [ 0 - ------------- + -- - ---- 0 0 ]
1226 riem = [ m (r - 2 m) ]
1227 1, 1 [ 0 0 ----------- 0 ]
1232 [ 0 0 0 ----------- ]
1237 [ 0 ------------- 0 0 ]
1248 [ 0 0 - ----------- 0 ]
1259 [ 0 0 0 - ----------- ]
1272 [ - ------------ 0 0 0 ]
1274 2, 1 [ r (r - 2 m) ]
1281 [ ------------ 0 0 0 ]
1288 2, 2 [ 0 0 - ------------ 0 ]
1293 [ 0 0 0 - ------------ ]
1300 [ 0 0 ------------ 0 ]
1302 2, 3 [ r (r - 2 m) ]
1311 [ 0 0 0 ------------ ]
1313 2, 4 [ r (r - 2 m) ]
1350 [ 0 0 0 ------- + 1 ]
1358 3, 4 [ 0 0 0 - --- ]
1371 [ ------------- 0 0 0 ]
1382 [ 0 ------------- 0 0 ]
1393 [ 0 0 - --------------- 0 ]
1398 [ - ------------- 0 0 0 ]
1403 riem = [ 0 - ------------- 0 0 ]
1408 [ 0 0 --------------- 0 ]
1417 @opencatbox{Категории:}
1418 @category{Пакет ctensor}
1422 @deffn {Функция} deleten (@var{L}, @var{n})
1423 Возвращает новый список состоящий из элементов списка @var{L} с
1424 удаленным @var{n}-ым элементом.
1426 @opencatbox{Категории:}
1427 @category{Пакет ctensor}
1431 @subsection Переменные пакета ctensor
1433 @defvr {Управляющая переменная} dim
1434 Значение по умолчанию: 4
1436 Опция пакета @code{ctensor} (компонентные вычисления).
1437 Размерность многообразия, по умолчанию: 4
1438 Команда @code{dim: n} переопределяет размерность величине равной @code{n}.
1440 @opencatbox{Категории:}
1441 @category{Пакет ctensor}
1445 @defvr {Управляющая переменная} diagmetric
1446 Значение по умолчанию: @code{false}
1448 Опция пакета @code{ctensor} (компонентные вычисления).
1449 Если @code{diagmetric} равен @code{true}, тогда вычисления
1450 всех геометрических объектов проводятся по упрощенной схеме: с учетом
1451 диагональности метрики. Это позволяет уменьшить время счета. Данная опция
1452 устанавливается автоматически если при вызове @code{csetup} была задана
1453 диагональная метрика.
1455 @opencatbox{Категории:}
1456 @category{Пакет ctensor}
1460 @defvr {Управляющая переменная} ctrgsimp
1462 Включает использование тригонометрических преобразований при упрощении
1463 тензора. В настоящее время, @code{ctrgsimp} влияет только на результаты
1464 вычислений, выполненные в тетрадном базисе.
1466 @opencatbox{Категории:}
1467 @category{Пакет ctensor}
1468 @category{Флаги и переменные упрощения}
1472 @defvr {Управляющая переменная} cframe_flag
1474 Если ключ @code{cframe_flag} равен @code{true}, тогда вычисления проводятся
1475 в тетрадном базисе (в общем случае с не голономной метрикой).
1476 Базис определяется массивом дуального фрейма @code{fri} и метрикой базиса
1477 @code{lfg}. При вычислениях в декартовой тетраде массив,
1478 @code{lfg} должен быть единичной матрицей соответствующего размера; при
1479 вычислениях с Лоренцевой тетрадой, массив @code{lfg} должен иметь
1480 соответствующую сигнатуру.
1482 @opencatbox{Категории:}
1483 @category{Пакет ctensor}
1487 @defvr {Управляющая переменная} ctorsion_flag
1489 Если @code{ctorsion_flag} равен @code{true}, тогда при вычислении
1490 связности учитываются коэффициенты кручения @code{contortion}.
1491 В свою очередь, коэффициенты кручения, @code{contortion}, вычисляются из
1492 заданного пользователем тензора кручения @code{tr}.
1494 @opencatbox{Категории:}
1495 @category{Пакет ctensor}
1499 @defvr {Управляющая переменная} cnonmet_flag
1501 Если @code{cnonmet_flag} равен @code{true}, тогда при вычислении
1502 связности учитывается неметричность @code{nonmetricity}, которая, сама
1503 по себе, вычисляется из заданного пользователем вектора неметричности @code{nm}.
1505 @opencatbox{Категории:}
1506 @category{Пакет ctensor}
1510 @defvr {Управляющая переменная} ctayswitch
1512 Если ключ равен @code{true}, то при вычислениях используются ряды Тейлора.
1513 В текущем состоянии пакета, эти ряды влияют на вычисление
1514 следующих тензоров: @code{christof}, @code{ricci},
1515 @code{uricci}, @code{einstein}, и @code{weyl}.
1517 @opencatbox{Категории:}
1518 @category{Пакет ctensor}
1522 @defvr {Управляющая переменная} ctayvar
1524 Переменная ряда Тейлора. Она активируется при @code{ctayswitch} равном
1527 @opencatbox{Категории:}
1528 @category{Пакет ctensor}
1532 @defvr {Управляющая переменная} ctaypov
1534 Максимальная ряда Тэйлора. Ее определение влияет на
1535 вычисления только если @code{ctayswitch} равен @code{true}.
1537 @opencatbox{Категории:}
1538 @category{Пакет ctensor}
1542 @defvr {Управляющая переменная} ctaypt
1544 Центральная точка ряда Тэйлора. Ее определение влияет на
1545 вычисления только если @code{ctayswitch} равен @code{true}.
1547 @opencatbox{Категории:}
1548 @category{Пакет ctensor}
1552 @defvr {Системная переменная} gdet
1554 Детерминант метрического тензора @code{lg}. Вычисляется функцией
1555 @code{cmetric}, когда флаг @code{cframe_flag} равен @code{false}.
1557 @opencatbox{Категории:}
1558 @category{Пакет ctensor}
1562 @defvr {Управляющая переменная} ratchristof
1564 Включает рациональное упрощение коэффициентов связности @code{christof}.
1566 @opencatbox{Категории:}
1567 @category{Пакет ctensor}
1571 @defvr {Управляющая переменная} rateinstein
1572 Значение по умолчанию: @code{true}
1574 Если равен @code{true} тогда проводится рациональное упрощение компонент
1575 тензора Эйнштейна; если @code{ratfac} равен @code{true}, тогда
1576 компоненты тензора автоматически факторизуются.
1578 @opencatbox{Категории:}
1579 @category{Пакет ctensor}
1583 @defvr {Управляющая переменная} ratriemann
1584 Значение по умолчанию: @code{true}
1586 Один из ключей, контролирующих упрощение тензора Римана;
1587 Если равен @code{true} тогда применяется рациональное упрощение;
1588 если @code{ratfac} равен @code{true}, тогда
1589 компоненты тензора автоматически факторизуются.
1591 @opencatbox{Категории:}
1592 @category{Пакет ctensor}
1596 @defvr {Управляющая переменная} ratweyl
1597 Значение по умолчанию: @code{true}
1599 Если равен @code{true} тогда применяется рациональное упрощение тензора Вейля;
1600 если @code{ratfac} равен @code{true}, тогда
1601 компоненты тензора автоматически факторизуются.
1603 @opencatbox{Категории:}
1604 @category{Пакет ctensor}
1608 @defvr {Переменная} lfg
1609 Имя ковариантной метрики тетрады. По умолчанию совпадает с Лоренцевой
1610 метрикой, имеет сигнатуру (+,+,+,-). Используется когда @code{cframe_flag} равен @code{true}.
1612 @opencatbox{Категории:}
1613 @category{Пакет ctensor}
1617 @defvr {Переменная} ufg
1618 Имя контравариантной метрики тетрады. Вычисляется из @code{lfg}, если
1619 вызывается функция @code{cmetric} и флаг @code{cframe_flag} равен @code{true}.
1621 @opencatbox{Категории:}
1622 @category{Пакет ctensor}
1626 @defvr {Переменная} riem
1627 Тензор Римана ранга (3,1). Вычисляется вызовом функции
1628 @code{riemann}. Для информации о порядке следования индексов см. описание @code{riemann}.
1630 Если @code{cframe_flag} равен @code{true}, @code{riem} вычисляется по
1631 ковариантным компонентам тензора Римана @code{lriem}.
1633 @opencatbox{Категории:}
1634 @category{Пакет ctensor}
1638 @defvr {Переменная} lriem
1640 Ковариантная версия тензора Римана. Вычисляется вызовом функции @code{lriemann}.
1642 @opencatbox{Категории:}
1643 @category{Пакет ctensor}
1647 @defvr {Переменная} uriem
1649 Контравариантная версия тензора Римана. Вычисляется вызовом функции @code{uriemann}.
1651 @opencatbox{Категории:}
1652 @category{Пакет ctensor}
1656 @defvr {Переменная} ric
1658 Смешанный тензор Риччи. Вычисляется функцией @code{ricci}.
1660 @opencatbox{Категории:}
1661 @category{Пакет ctensor}
1665 @defvr {Переменная} uric
1667 Контравариантный тензор Риччи. Вычисляется функцией @code{uricci}.
1669 @opencatbox{Категории:}
1670 @category{Пакет ctensor}
1674 @defvr {Переменная} lg
1676 Метрический тензор. Данный тензор должен (наравне с переменной
1677 @code{dim}) определен до начала других вычислений.
1679 @opencatbox{Категории:}
1680 @category{Пакет ctensor}
1684 @defvr {Переменная} ug
1686 Обратный метрический тензор. Вычисляется функцией @code{cmetric}.
1688 @opencatbox{Категории:}
1689 @category{Пакет ctensor}
1693 @defvr {Переменная} weyl
1695 Тензор Вейля. Вычисляется функцией @code{weyl}.
1697 @opencatbox{Категории:}
1698 @category{Пакет ctensor}
1702 @defvr {Переменная} fb
1704 Коммутатор (скобка) тетрады, вычисляется функцией @code{frame_bracket}.
1706 @opencatbox{Категории:}
1707 @category{Пакет ctensor}
1711 @defvr {Переменная} kinvariant
1713 Инвариант Кретчмана. Вычисляется функцией @code{rinvariant}.
1715 @opencatbox{Категории:}
1716 @category{Пакет ctensor}
1720 @defvr {Переменная} np
1722 Нуль-тетрада Ньюмана-Пенроуза. Вычисляется функцией @code{nptetrad}.
1724 @opencatbox{Категории:}
1725 @category{Пакет ctensor}
1729 @defvr {Переменная} npi
1731 Нуль-тетрада Ньюмана-Пенроуза с поднятыми индексами; вычисляется процедурой @code{nptetrad}.
1732 Определена посредством @code{ug.np}. Произведение
1733 @code{np.transpose(npi)} является константой:
1736 (%i39) trigsimp(np.transpose(npi));
1746 @opencatbox{Категории:}
1747 @category{Пакет ctensor}
1751 @defvr {Переменная} tr
1753 Определенный пользователем тензор 3-го ранга, задающий
1754 кручение. Используется процедурой @code{contortion}.
1756 @opencatbox{Категории:}
1757 @category{Пакет ctensor}
1761 @defvr {Переменная} kt
1763 Вклад кручения в коэффициенты связности, вычисляется из тензора кручения @code{tr} функцией @code{contortion}.
1765 @opencatbox{Категории:}
1766 @category{Пакет ctensor}
1770 @defvr {Переменная} nm
1772 Определенный пользователем вектор неметричности. Используется функцией @code{nonmetricity}.
1774 @opencatbox{Категории:}
1775 @category{Пакет ctensor}
1779 @defvr {Переменная} nmc
1781 Вклад неметричности в связность; вычисляется из @code{nm} функцией @code{nonmetricity}.
1783 @opencatbox{Категории:}
1784 @category{Пакет ctensor}
1788 @defvr {Системная переменная} tensorkill
1790 Переменная показывающая, что пакет @code{ctensor} инициализирован. Эти
1791 установки используются процедурой @code{csetup}, и переопределяются процедурой @code{init_ctensor}.
1793 @opencatbox{Категории:}
1794 @category{Пакет ctensor}
1798 @defvr {Управляющая переменная} ct_coords
1799 Значение по умолчанию: @code{[]}
1801 Опция пакета @code{ctensor} (компонентные вычисления тензоров).
1802 @code{ct_coords} содержит список имен координат. Обычно он определяется
1803 при вызове процедуры @code{csetup}. Список может быть переопределен
1804 назначением нового списка
1805 @code{ct_coords: [j1, j2, ..., jn]}, j's имена новых координат. Смотри также @code{csetup}.
1807 @opencatbox{Категории:}
1808 @category{Пакет ctensor}
1812 @subsection Зарезервированные имена
1814 Следующие имена используются функциями и процедурами пакета
1815 @code{ctensor} (не следует их переопределять):
1818 Наименование Описание
1819 ----------------------------------------------------------------
1820 _lg() Присваивается массиву lfg если используется
1821 тетрадная метрика; по умолчанию присваивается
1823 _ug() Присваивается массиву ufg если используется
1824 тетрадная метрика; по умолчанию присваивается
1826 cleanup() Удаляет элементы drom списка deindex
1827 contract4() используется функцией psi()
1828 filemet() используется функцией csetup() при чтении метрики
1830 findde1() используется функцией findde()
1831 findde2() используется функцией findde()
1832 findde3() используется функцией findde()
1833 kdelt() дельта-символ Кронекера (необобщенный)
1834 newmet() используется функцией csetup() для интерактивного
1836 setflags() используется функцией init_ctensor()
1839 sermet() используется функцией csetup() для ввода метрики
1840 в виде разложения в ряд Тэйлора
1842 tmetric() Метрика тетрады, используется функцией cmetric(),
1843 если cframe_flag:true
1844 triemann() Тензор Римана в тетрадном представлении,
1845 используется если cframe_flag:true
1846 tricci() Тензор Риччи в тетрадном представлении,
1847 используется если cframe_flag:true
1848 trrc() Коэффициенты вращения Риччи, используется
1854 @subsection Изменения
1856 В ноябре 2004 пакет @code{ctensor} был существенно переписан. Многие
1857 функции и переменные были переименованы для того чтобы сделать данный
1858 пакет совместимым с коммерческой версией Macsyma.
1862 Новое имя Статое имя Описание
1863 -----------------------------------------------------------------
1864 ctaylor() DLGTAYLOR() Разложение выражения в ряд
1866 lgeod[] EM Уравнения геодезических
1867 ein[] G[] Смешанный тензор Эйнштейна
1868 ric[] LR[] Смешанный тензор Риччи
1869 ricci() LRICCICOM() Вычисляет смешанный тензор Риччи
1870 ctaypov MINP Максимальная степень ряда Тэйлора
1871 cgeodesic() MOTION Вычисляет уравнения геодезических
1872 ct_coords OMEGA метрические координаты
1873 ctayvar PARAM Переменная ряда Тэйлора
1875 uriemann() RAISERIEMANN() Вычисляет контравариантный тензор
1877 ratriemann RATRIEMAN Рациональное упрощение тензора
1879 uric[] RICCI[] Контравариантный тензор Риччи
1880 uricci() RICCICOM() Вычисляет контравариантный тензор
1882 cmetric() SETMETRIC() Определяет метрику
1883 ctaypt TAYPT Центральная точка окрестности ряда
1885 ctayswitch TAYSWITCH Ключ, устанавливающий использовать
1886 ли ряды Тэйлора в метрике
1887 csetup() TSETUP() Вызывает начало интерактивного
1888 режима задания метрики и пр.
1889 ctransform() TTRANSFORM() Интерактивное преобразование
1891 uriem[] UR[] Контравариантный тензор Римана
1892 weyl[] W[] Тензор Вейля ранга (3,1)