Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / pt_BR / Ctensor.texi
blob7f39bbb06146d9a522c4f159ba8dcb0885592456
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /Ctensor.texi/1.33/Sat Jun  2 00:12:36 2007/-ko/
3 @menu
4 * Introdução a ctensor::     
5 * Funções e Variáveis Definidas para ctensor::     
6 @end menu
8 @node Introdução a ctensor, Funções e Variáveis Definidas para ctensor, ctensor, ctensor
9 @section Introdução a ctensor
11 @code{ctensor} é um pacote de manipulação de componentes.  Para usar o pacote
12 @code{ctensor}, digite @code{load("ctensor")}.
13 Para começar uma sessão iterativa com @code{ctensor}, digite @code{csetup()}.  Você é
14 primeiramente solicitado a especificar a dimensão a ser manipulada. Se a dimensão
15 for 2, 3 ou 4 então a lista de coordenadas padrão é @code{[x,y]}, @code{[x,y,z]}
16 ou @code{[x,y,z,t]} respectivamente.
17 Esses nomes podem ser mudados através da atribuição de uma nova lista de coordenadas para
18 a variável @code{ct_coords} (descrita abaixo) e o usuário é perguntado sobre
19 isso.Cuidado deve ser tomado para evitar o conflito de nomes de coordenadas
20 com outras definições de objetos.
22 No próximo passo, o usuário informa a métrica ou diretamente ou de um arquivo
23 especificando sua posição ordinal. Como um exemplo de um arquivo de métrica
24 comum, veja @code{share/tensor/metrics.mac}. A métrica está armazenada na matriz
25 LG. Finalmente, o inverso da métrica é calculado e armazenado na matriz
26 UG. Se tem a opção de realizar todos os cálculos em séries de
27 potência.
29 Um protocolo amostra é iniciado abaixo para a métrica estática, esfericamente simétrica
30 (coordenadas padrão) que será aplicadas ao problema de
31 derivação das equações de vácuo de Einstein (que levam à solução de
32 Schwarzschild) como um exemplo. Muitas das funções em @code{ctensor} irão ser
33 mostradas para a métrica padrão como exemplos.
35 @example
36 (%i1) load("ctensor");
37 (%o1)      /usr/local/lib/maxima/share/tensor/ctensor.mac
38 (%i2) csetup();
39 Enter the dimension of the coordinate system: 
41 Do you wish to change the coordinate names?
43 Do you want to
44 1. Enter a new metric?
46 2. Enter a metric from a file?
48 3. Approximate a metric with a Taylor series?
51 Is the matrix  1. Diagonal  2. Symmetric  3. Antisymmetric  4. General
52 Answer 1, 2, 3 or 4
54 Row 1 Column 1:
56 Row 2 Column 2:
57 x^2;
58 Row 3 Column 3:
59 x^2*sin(y)^2;
60 Row 4 Column 4:
61 -d;
63 Matrix entered.
64 Enter functional dependencies with the DEPENDS function or 'N' if none 
65 depends([a,d],x);
66 Do you wish to see the metric? 
68                           [ a  0       0        0  ]
69                           [                        ]
70                           [     2                  ]
71                           [ 0  x       0        0  ]
72                           [                        ]
73                           [         2    2         ]
74                           [ 0  0   x  sin (y)   0  ]
75                           [                        ]
76                           [ 0  0       0       - d ]
77 (%o2)                                done
78 (%i3) christof(mcs);
79                                             a
80                                              x
81 (%t3)                          mcs        = ---
82                                   1, 1, 1   2 a
84                                              1
85 (%t4)                           mcs        = -
86                                    1, 2, 2   x
88                                              1
89 (%t5)                           mcs        = -
90                                    1, 3, 3   x
92                                             d
93                                              x
94 (%t6)                          mcs        = ---
95                                   1, 4, 4   2 d
97                                               x
98 (%t7)                          mcs        = - -
99                                   2, 2, 1     a
101                                            cos(y)
102 (%t8)                         mcs        = ------
103                                  2, 3, 3   sin(y)
105                                                2
106                                           x sin (y)
107 (%t9)                      mcs        = - ---------
108                               3, 3, 1         a
110 (%t10)                   mcs        = - cos(y) sin(y)
111                             3, 3, 2
113                                             d
114                                              x
115 (%t11)                         mcs        = ---
116                                   4, 4, 1   2 a
117 (%o11)                               done
119 @end example
121 @c end concepts ctensor
122 @node Funções e Variáveis Definidas para ctensor,  , Introdução a ctensor, ctensor
124 @section Funções e Variáveis Definidas para ctensor
126 @subsection Inicialização e configuração
128 @deffn {Função} csetup ()
129 É uma função no pacote @code{ctensor} (component tensor)
130 que inicializa o pacote e permite ao usuário inserir uma métrica
131 interativamente. Veja @code{ctensor} para mais detalhes.
132 @end deffn
134 @deffn {Função} cmetric (@var{dis})
135 @deffnx {Função} cmetric ()
136 É uma função no pacote @code{ctensor}
137 que calcula o inverso da métrica e prepara o pacote para
138 cálculos adiante.
140 Se @code{cframe_flag} for @code{false}, a função calcula a métrica inversa
141 @code{ug} a partir da matriz @code{lg} (definida pelo usuário). O determinante da métrica é
142 também calculado e armazenado na variável @code{gdet}. Mais adiante, o
143 pacote determina se a métrica é diagonal e escolhe o valor
144 de @code{diagmetric} conforme a determinação. Se o argumento opcional @var{dis}
145 estiver presente e não for @code{false}, a saída é mostrada ao usuário pela linha de comando para que ele possa ver
146 o inverso da métrica.
148 Se @code{cframe_flag} for @code{true}, a função espera que o valor de
149 @code{fri} (a matriz moldura inversa) e @code{lfg} (a métrica da moldura) sejam
150 definidas. A partir dessas, a matriz da moldura @code{fr} e a métrica da moldura
151 inversa @code{ufg} são calculadas.
153 @end deffn
155 @deffn {Função} ct_coordsys (@var{sistema_de_coordenadas}, @var{extra_arg})
156 @deffnx {Função} ct_coordsys (@var{sistema_de_coordenadas})
157 Escolhe um sistema de coordenadas predefinido e uma métrica. O argumento
158 @var{sistema_de_coordenadas} pode ser um dos seguintes símbolos:
160 @example
162   SYMBOL               Dim Coordenadas       Descrição/comentários
163   --------------------------------------------------------------------------
164   cartesian2d           2  [x,y]             Sist. de coord. cartesianas 2D
165   polar                 2  [r,phi]           Sist. de coord. Polare
166   elliptic              2  [u,v]
167   confocalelliptic      2  [u,v]
168   bipolar               2  [u,v]
169   parabolic             2  [u,v]
170   cartesian3d           3  [x,y,z]           Sist. de coord. cartesianas 3D
171   polarcylindrical      3  [r,theta,z]
172   ellipticcylindrical   3  [u,v,z]           Elíptica 2D com Z cilíndrico
173   confocalellipsoidal   3  [u,v,w]
174   bipolarcylindrical    3  [u,v,z]           Bipolar 2D com Z cilíndrico
175   paraboliccylindrical  3  [u,v,z]           Parabólico 2D com Z cilíndrico
176   paraboloidal          3  [u,v,phi]
177   conical               3  [u,v,w]
178   toroidal              3  [u,v,phi]
179   spherical             3  [r,theta,phi]     Sist. de coord. Esféricas
180   oblatespheroidal      3  [u,v,phi]
181   oblatespheroidalsqrt  3  [u,v,phi]
182   prolatespheroidal     3  [u,v,phi]
183   prolatespheroidalsqrt 3  [u,v,phi]
184   ellipsoidal           3  [r,theta,phi]
185   cartesian4d           4  [x,y,z,t]         Sist. de coord. 4D
186   spherical4d           4  [r,theta,eta,phi]
187   exteriorschwarzschild 4  [t,r,theta,phi]   Métrica de Schwarzschild
188   interiorschwarzschild 4  [t,z,u,v]        Métrica de Schwarzschild Interior
189   kerr_newman           4  [t,r,theta,phi]   Métrica simétrica axialmente alterada
191 @end example
193 @code{sistema_de_coordenadas} pode também ser uma lista de funções de transformação,
194 seguida por uma lista contendo as varáveis coordenadas. Por exemplo,
195 você pode especificar uma métrica esférica como segue:
197 @example
199 (%i1) load("ctensor");
200 (%o1)       /share/tensor/ctensor.mac
201 (%i2) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
202       r*sin(theta),[r,theta,phi]]);
203 (%o2)                                done
204 (%i3) lg:trigsimp(lg);
205                            [ 1  0         0        ]
206                            [                       ]
207                            [     2                 ]
208 (%o3)                      [ 0  r         0        ]
209                            [                       ]
210                            [         2    2        ]
211                            [ 0  0   r  cos (theta) ]
212 (%i4) ct_coords;
213 (%o4)                           [r, theta, phi]
214 (%i5) dim;
215 (%o5)                                  3
217 @end example
219 Funções de transformação podem também serem usadas quando @code{cframe_flag} for @code{true}:
221 @example
223 (%i1) load("ctensor");
224 (%o1)       /share/tensor/ctensor.mac
225 (%i2) cframe_flag:true;
226 (%o2)                                true
227 (%i3) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
228       r*sin(theta),[r,theta,phi]]);
229 (%o3)                                done
230 (%i4) fri;
231       [ cos(phi) cos(theta)  - cos(phi) r sin(theta)  - sin(phi) r cos(theta) ]
232       [                                                                       ]
233 (%o4) [ sin(phi) cos(theta)  - sin(phi) r sin(theta)   cos(phi) r cos(theta)  ]
234       [                                                                       ]
235       [     sin(theta)            r cos(theta)                   0            ]
236 (%i5) cmetric();
237 (%o5)                                false
238 (%i6) lg:trigsimp(lg);
239                            [ 1  0         0        ]
240                            [                       ]
241                            [     2                 ]
242 (%o6)                      [ 0  r         0        ]
243                            [                       ]
244                            [         2    2        ]
245                            [ 0  0   r  cos (theta) ]
247 @end example
249 O argumento opcional @var{extra_arg} pode ser qualquer um dos seguintes:
250 @c LOOKING AT share/tensor/ctensor.mac CIRCA LINE 837, misner IS RECOGNIZED ALSO; WHAT EFFECT DOES IT HAVE ??
252 @code{cylindrical} diz a @code{ct_coordsys} para anexar uma coordenada adicional cilíndrica.
254 @code{minkowski} diz a @code{ct_coordsys} para anexar uma coordenada com assinatura métrica negativa.
256 @code{all} diz a @code{ct_coordsys} para chamar @code{cmetric} e @code{christof(false)} após escolher a métrica.
258 @c GLOBAL VARIABLE verbose IS USED IN ctensor.mac IN JUST THIS ONE CONTEXT
259 Se a variável global @code{verbose} for escolhida para @code{true}, @code{ct_coordsys} mostra os valores de @code{dim}, @code{ct_coords}, e ou @code{lg} ou @code{lfg} e @code{fri}, dependendo do valor de @code{cframe_flag}.
261 @end deffn
263 @deffn {Função} init_ctensor ()
264 Inicializa o pacote @code{ctensor}.
266 A função @code{init_ctensor} reinicializa o pacote @code{ctensor}. Essa função remove todos os arrays e matrizes usados por @code{ctensor}, coloca todos os sinalizadores de volta a seus valores padrão, retorna @code{dim} para 4, e retorna a métrica da moldura para a métrica da moldura de Lorentz.
268 @end deffn
271 @subsection Os tensores do espaço curvo
273 O principal propósito do pacote @code{ctensor} é calcular os tensores
274 do espaç(tempo) curvo, mais notavelmente os tensores usados na relatividade
275 geral.
277 Quando uma base métrica é usada, @code{ctensor} pode calcular os seguintes tensores:
279 @example
281  lg  -- ug
282    \      \
283     lcs -- mcs -- ric -- uric 
284               \      \       \
285                \      tracer - ein -- lein
286                 \
287                  riem -- lriem -- weyl
288                      \
289                       uriem
292 @end example
294 @code{ctensor} pode também usar molduras móveis. Quando @code{cframe_flag} for
295 escolhida para @code{true}, os seguintes tensores podem ser calculados:
297 @example
299  lfg -- ufg
300      \
301  fri -- fr -- lcs -- mcs -- lriem -- ric -- uric
302       \                       |  \      \       \
303        lg -- ug               |   weyl   tracer - ein -- lein
304                               |\
305                               | riem
306                               |
307                               \uriem
309 @end example
311 @deffn {Função} christof (@var{dis})
312 Uma função no pacote @code{ctensor}.
313 Essa função calcula os símbolos de Christoffel de ambos
314 os tipos.  O argumento @var{dis} determina quais resultados são para serem imediatamente
315 mostrados.  Os símbolos de Christoffel de primeiro e de segundo tipo são
316 armazenados nos arrays @code{lcs[i,j,k]} e @code{mcs[i,j,k]} respectivamente e
317 definidos para serem simétricos nos primeiros dois índices. Se o argumento para
318 @code{christof} for @code{lcs} ou for @code{mcs} então o único valor não nulo de @code{lcs[i,j,k]}
319 ou de @code{mcs[i,j,k]}, respectivamente, será mostrado. Se o argumento for @code{all}
320 então o único valor não nulo de @code{lcs[i,j,k]} e o único valor não nulo de  @code{mcs[i,j,k]} serão
321 mostrados.  Se o argumento for @code{false} então a exibição dos elementos
322 não acontecerá. Os elementos do array @code{mcs[i,j,k]} são definidos de uma tal
323 maneira que o índice final é contravariante.
324 @end deffn
326 @deffn {Função} ricci (@var{dis})
327 Uma função no pacote @code{ctensor}.
328 @code{ricci} calcula as componentes contravariantes
329 (simétricas) @code{ric[i,j]} do tensor de Ricci.  Se o argumento @var{dis} for @code{true},
330 então as componentes não nulas são mostradas.
331 @end deffn
333 @deffn {Função} uricci (@var{dis})
334 Essa função primeiro calcula as
335 componentes contravariantes @code{ric[i,j]} do tensor de Ricci.
336 Então o tensor misto de Ricci é calculado usando o
337 tensor métrico contravariante.  Se o valor do argumento @var{dis}
338 for @code{true}, então essas componentes mistas, @code{uric[i,j]} (o índice "i" é
339 covariante e o índice "j" é contravariante), serão mostradas
340 diretamente.  De outra forma, @code{ricci(false)} irá simplesmente calcular as entradas
341 do array @code{uric[i,j]} sem mostrar os resultados.
343 @end deffn
344 @deffn {Função} scurvature ()
346 Retorna a curvatura escalar (obtida através da contração
347 do tensor de Ricci) do Riemaniano multiplicado com a métrica dada.
349 @end deffn
350 @deffn {Função} einstein (@var{dis})
351 Uma função no pacote @code{ctensor}.
352 @code{einstein} calcula o tensor misto de Einstein
353 após os símbolos de Christoffel e o tensor de Ricci terem sido obtidos
354 (com as funções @code{christof} e @code{ricci}).  Se o argumento @var{dis} for
355 @code{true}, então os valores não nulos do tensor misto de Einstein @code{ein[i,j]}
356 serão mostrados quando @code{j} for o índice contravariante.
357 A variável @code{rateinstein} fará com que a simplificação racional ocorra sobre
358 esses componentes. Se @code{ratfac} for @code{true} então as componentes irão
359 também ser fatoradas.
361 @end deffn
362 @deffn {Função} leinstein (@var{dis})
363 Tensor covariante de Einstein. @code{leinstein} armazena o valor do tensor covariante de Einstein no array @code{lein}. O tensor covariante de Einstein é calculado a partir tensor misto de Einstein @code{ein} através da multiplicação desse pelo tensor métrico. Se o argumento @var{dis} for @code{true}, então os valores não nulos do tensor covariante de Einstein são mostrados.
365 @end deffn
367 @deffn {Função} riemann (@var{dis})
368 Uma função no pacote @code{ctensor}.
369 @code{riemann} calcula o tensor de curvatura de Riemann
370 a partir da métrica dada e correspondendo aos símbolos de Christoffel. As seguintes
371 convenções de índice são usadas:
373 @example
374                 l      _l       _l       _l   _m    _l   _m
375  R[i,j,k,l] =  R    = |      - |      + |    |   - |    |
376                 ijk     ij,k     ik,j     mk   ij    mj   ik
377 @end example
379 Essa notação é consistente com a notação usada por no pacote
380 @code{itensor} e sua função @code{icurvature}.
381 Se o argumento opcional @var{dis} for @code{true},
382 as componentes não nulas @code{riem[i,j,k,l]} serão mostradas.
383 Como com o tensor de Einstein, vários comutadores escolhidos pelo usuário
384 controlam a simplificação de componentes do tensor de Riemann.
385 Se @code{ratriemann} for @code{true}, então
386 simplificação racional será feita. Se @code{ratfac}
387 for @code{true} então
388 cada uma das componentes irá também ser fatorada.
390 Se a variável @code{cframe_flag} for @code{false}, o tensor de Riemann é
391 calculado diretamente dos símbolos de Christoffel. Se @code{cframe_flag} for
392 @code{true}, o tensor covariante de Riemann é calculado primeiro dos
393 coeficientes de campo da moldura.
395 @end deffn
397 @deffn {Função} lriemann (@var{dis})
398 Tensor covariante de Riemann (@code{lriem[]}).
400 Calcula o tensor covariante de Riemann como o array @code{lriem}. Se o
401 argumento @var{dis} for @code{true}, únicos valores não nulos são mostrados.
403 Se a variável @code{cframe_flag} for @code{true}, o tensor covariante
404 de Riemann é calculado diretamente dos coeficientes de campo da moldura. De outra forma,
405 o tensor (3,1) de Riemann é calculado primeiro.
407 Para informação sobre a ordenação de índice, veja @code{riemann}.
409 @end deffn
411 @deffn {Função} uriemann (@var{dis})
412 Calcula as componentes contravariantes do tensor de curvatura
413  de Riemann como elementos do array @code{uriem[i,j,k,l]}.  Esses são mostrados
414 se @var{dis} for @code{true}.
416 @end deffn
418 @deffn {Função} rinvariant ()
419 Compõe o invariante de Kretchmann (@code{kinvariant}) obtido através da
420 contração dos tensores
422 @example
423 lriem[i,j,k,l]*uriem[i,j,k,l].
424 @end example
426 Esse objeto não é automaticamente simplificado devido ao fato de poder ser muito largo.
428 @end deffn
430 @deffn {Função} weyl (@var{dis})
431 Calcula o tensor conformal de Weyl.  Se o argumento @var{dis} for
432 @code{true}, as componentes não nulas @code{weyl[i,j,k,l]} irão ser mostradas para o
433 usuário.  De outra forma, essas componentes irão simplesmente serem calculadas e armazenadas.
434 Se o comutador @code{ratweyl} é escolhido para @code{true}, então as componentes irão ser
435 racionalmente simplificadas; se @code{ratfac} for @code{true} então os resultados irão ser
436 fatorados também.
438 @end deffn
440 @subsection Expansão das séries de Taylor
442 O pacote @code{ctensor} possui a habilidade para truncar resultados assumindo
443 que eles são aproximações das séries de Taylor. Esse comportamenteo é controlado através
444 da variável @code{ctayswitch}; quando escolhida para @code{true}, @code{ctensor} faz uso
445 internamente da função @code{ctaylor} quando simplifica resultados.
447 A função @code{ctaylor} é invocada pelas seguintes funções de @code{ctensor}:
449 @example
451     Function     Comments
452     ---------------------------------
453     christof()   só para mcs
454     ricci()
455     uricci()
456     einstein()
457     riemann()
458     weyl()
459     checkdiv()
460 @end example
462 @deffn {Função} ctaylor ()
464 A função @code{ctaylor} trunca seus argumentos através da conversão
465 destes para uma série de Taylor usando @code{taylor}, e então chamando
466 @code{ratdisrep}. Isso tem efeito combinado de abandonar termos
467 de ordem mais alta na variável de expansão @code{ctayvar}. A ordem
468 dos termos que podem ser abandonados é definida através de @code{ctaypov}; o
469 ponto em torno do qual a expansão da série é realizada está especificado
470 em @code{ctaypt}.
472 Como um exemplo, considere uma métrica simples que é uma perturbação da
473 métrica de Minkowski. Sem restrições adicionais, mesmo uma métrica
474 diagonal produz expressões para o tensor de Einstein que são de longe muito
475 complexas:
477 @example
479 (%i1) load("ctensor");
480 (%o1)       /share/tensor/ctensor.mac
481 (%i2) ratfac:true;
482 (%o2)                                true
483 (%i3) derivabbrev:true;
484 (%o3)                                true
485 (%i4) ct_coords:[t,r,theta,phi];
486 (%o4)                         [t, r, theta, phi]
487 (%i5) lg:matrix([-1,0,0,0],[0,1,0,0],[0,0,r^2,0],[0,0,0,r^2*sin(theta)^2]);
488                         [ - 1  0  0         0        ]
489                         [                            ]
490                         [  0   1  0         0        ]
491                         [                            ]
492 (%o5)                   [          2                 ]
493                         [  0   0  r         0        ]
494                         [                            ]
495                         [              2    2        ]
496                         [  0   0  0   r  sin (theta) ]
497 (%i6) h:matrix([h11,0,0,0],[0,h22,0,0],[0,0,h33,0],[0,0,0,h44]);
498                             [ h11   0    0    0  ]
499                             [                    ]
500                             [  0   h22   0    0  ]
501 (%o6)                       [                    ]
502                             [  0    0   h33   0  ]
503                             [                    ]
504                             [  0    0    0   h44 ]
505 (%i7) depends(l,r);
506 (%o7)                               [l(r)]
507 (%i8) lg:lg+l*h;
508          [ h11 l - 1      0          0                 0            ]
509          [                                                          ]
510          [     0      h22 l + 1      0                 0            ]
511          [                                                          ]
512 (%o8)    [                        2                                 ]
513          [     0          0      r  + h33 l            0            ]
514          [                                                          ]
515          [                                    2    2                ]
516          [     0          0          0       r  sin (theta) + h44 l ]
517 (%i9) cmetric(false);
518 (%o9)                                done
519 (%i10) einstein(false);
520 (%o10)                               done
521 (%i11) ntermst(ein);
522 [[1, 1], 62] 
523 [[1, 2], 0] 
524 [[1, 3], 0] 
525 [[1, 4], 0] 
526 [[2, 1], 0] 
527 [[2, 2], 24] 
528 [[2, 3], 0] 
529 [[2, 4], 0] 
530 [[3, 1], 0] 
531 [[3, 2], 0] 
532 [[3, 3], 46] 
533 [[3, 4], 0] 
534 [[4, 1], 0] 
535 [[4, 2], 0] 
536 [[4, 3], 0] 
537 [[4, 4], 46] 
538 (%o12)                               done
540 @end example
542 Todavia, se nós recalcularmos esse exemplo como uma aproximação que é
543 linear na variável @code{l}, pegamos expressões muito simples:
545 @example
547 (%i14) ctayswitch:true;
548 (%o14)                               true
549 (%i15) ctayvar:l;
550 (%o15)                                 l
551 (%i16) ctaypov:1;
552 (%o16)                                 1
553 (%i17) ctaypt:0;
554 (%o17)                                 0
555 (%i18) christof(false);
556 (%o18)                               done
557 (%i19) ricci(false);
558 (%o19)                               done
559 (%i20) einstein(false);
560 (%o20)                               done
561 (%i21) ntermst(ein);
562 [[1, 1], 6] 
563 [[1, 2], 0] 
564 [[1, 3], 0] 
565 [[1, 4], 0] 
566 [[2, 1], 0] 
567 [[2, 2], 13] 
568 [[2, 3], 2] 
569 [[2, 4], 0] 
570 [[3, 1], 0] 
571 [[3, 2], 2] 
572 [[3, 3], 9] 
573 [[3, 4], 0] 
574 [[4, 1], 0] 
575 [[4, 2], 0] 
576 [[4, 3], 0] 
577 [[4, 4], 9] 
578 (%o21)                               done
579 (%i22) ratsimp(ein[1,1]);
580                          2      2  4               2     2
581 (%o22) - (((h11 h22 - h11 ) (l )  r  - 2 h33 l    r ) sin (theta)
582                               r               r r
584                                 2               2      4    2
585                   - 2 h44 l    r  - h33 h44 (l ) )/(4 r  sin (theta))
586                            r r                r
590 @end example
592 Essa compatibilidade pode ser útil, por exemplo, quando trabalhamos no limite
593 do campo fraco longe de uma fonte gravitacional.
595 @end deffn
596     
598 @subsection Campos de moldura
600 Quando a variável @code{cframe_flag} for escolhida para @code{true}, o pacote @code{ctensor}
601 executa seus cálculos usando uma moldura móvel.
603 @deffn {Função} frame_bracket (@var{fr}, @var{fri}, @var{diagframe})
604 O delimitador da moldura (@code{fb[]}).
606 Calcula o delimitador da moldura conforme a seguinte definição:
608 @example
609    c          c         c        d     e
610 ifb   = ( ifri    - ifri    ) ifr   ifr
611    ab         d,e       e,d      a     b
612 @end example
614 @end deffn
616 @subsection Classificação Algébrica
618 Um novo recurso (a partir de November de 2004) de @code{ctensor} é sua habilidade para
619 calcular a classificação de Petrov de uma métrica espaço tempo tetradimensional.
620 Para uma demonstração dessa compatibilidade, veja o arquivo
621 @code{share/tensor/petrov.dem}.
623 @deffn {Função} nptetrad ()
624 Calcula um tetrad nulo de Newman-Penrose (@code{np}) e seus índices ascendentes
625 em contrapartida (@code{npi}). Veja @code{petrov} para um exemplo.
627 O tetrad nulo é construído assumindo que uma moldura métrica ortonormal
628 tetradimensional com assinatura métrica (-,+,+,+) está sendo usada.
629 As componentes do tetrad nulo são relacionadas para a matriz moldura inversa
630 como segue:
632 @example
634 np  = (fri  + fri ) / sqrt(2)
635   1       1      2
637 np  = (fri  - fri ) / sqrt(2)
638   2       1      2
640 np  = (fri  + %i fri ) / sqrt(2)
641   3       3         4
643 np  = (fri  - %i fri ) / sqrt(2)
644   4       3         4
646 @end example
648 @end deffn
650 @deffn {Função} psi (@var{dis})
651 Calcula os cinco coeficientes de Newman-Penrose @code{psi[0]}...@code{psi[4]}.
652 Se @code{psi} for escolhida para @code{true}, os coeficientes são mostrados.
653 Veja @code{petrov} para um exemplo.
655 Esses coeficientes são calculados a partir do tensor de Weyl em uma base de coordenada.
656 Se uma base de moldura for usada,o tensor de Weyl é primeiro convertido para a base de
657 coordenada, que pode ser um procedimento computacional expansível. Por essa razão,
658 em alguns casos pode ser mais vantajoso usar uma base de coordenada em
659 primeiro lugar antes que o tensor de Weyl seja calculado. Note todavia, que
660 para a construção de um tetrad nulo de Newman-Penrose é necessário uma base de moldura. Portanto,
661 uma seq@"{u}ência de cálculo expressiva pode começar com uma base de moldura, que
662 é então usada para calcular @code{lg} (calculada automaticamente através de @code{cmetric})
663 e em seguida calcula @code{ug}. Nesse ponto, você pode comutar de volta para uma base de coordenada
664 escolhendo @code{cframe_flag} para @code{false} antes de começar a calcular os
665 símbolos de Christoffel. Mudando para uma base de moldura em um estágio posterior pode retornar
666 resultados inconsistentes, já que você pode terminar com um grande mistura de tensores, alguns
667 calculados em uma base de moldura, alguns em uma base de coordenada, sem nenhum modo para
668 disting@"{u}ir entre os dois tipos.
670 @end deffn
672 @deffn {Função} petrov ()
673 Calcula a classificação de petrov da métrica caracterizada através de @code{psi[0]}...@code{psi[4]}.
675 Por exemplo, o seguinte demonstra como obter a classificação de Petrov
676 da métrica de Kerr:
678 @example
679 (%i1) load("ctensor");
680 (%o1)       /share/tensor/ctensor.mac
681 (%i2) (cframe_flag:true,gcd:spmod,ctrgsimp:true,ratfac:true);
682 (%o2)                                true
683 (%i3) ct_coordsys(exteriorschwarzschild,all);
684 (%o3)                                done
685 (%i4) ug:invert(lg)$
686 (%i5) weyl(false);
687 (%o5)                                done
688 (%i6) nptetrad(true);
689 (%t6) np = 
691        [  sqrt(r - 2 m)           sqrt(r)                                     ]
692        [ ---------------   ---------------------      0             0         ]
693        [ sqrt(2) sqrt(r)   sqrt(2) sqrt(r - 2 m)                              ]
694        [                                                                      ]
695        [  sqrt(r - 2 m)            sqrt(r)                                    ]
696        [ ---------------  - ---------------------     0             0         ]
697        [ sqrt(2) sqrt(r)    sqrt(2) sqrt(r - 2 m)                             ]
698        [                                                                      ]
699        [                                              r      %i r sin(theta)  ]
700        [        0                    0             -------   ---------------  ]
701        [                                           sqrt(2)       sqrt(2)      ]
702        [                                                                      ]
703        [                                              r       %i r sin(theta) ]
704        [        0                    0             -------  - --------------- ]
705        [                                           sqrt(2)        sqrt(2)     ]
707                              sqrt(r)          sqrt(r - 2 m)
708 (%t7) npi = matrix([- ---------------------, ---------------, 0, 0], 
709                       sqrt(2) sqrt(r - 2 m)  sqrt(2) sqrt(r)
711           sqrt(r)            sqrt(r - 2 m)
712 [- ---------------------, - ---------------, 0, 0], 
713    sqrt(2) sqrt(r - 2 m)    sqrt(2) sqrt(r)
715            1               %i
716 [0, 0, ---------, --------------------], 
717        sqrt(2) r  sqrt(2) r sin(theta)
719            1                 %i
720 [0, 0, ---------, - --------------------])
721        sqrt(2) r    sqrt(2) r sin(theta)
723 (%o7)                                done
724 (%i7) psi(true);
725 (%t8)                              psi  = 0
726                                       0
728 (%t9)                              psi  = 0
729                                       1
731                                           m
732 (%t10)                             psi  = --
733                                       2    3
734                                           r
736 (%t11)                             psi  = 0
737                                       3
739 (%t12)                             psi  = 0
740                                       4
741 (%o12)                               done
742 (%i12) petrov();
743 (%o12)                                 D
745 @end example
747 A função de classificação Petrov é baseada no algorítmo publicado em
748 "Classifying geometries in general relativity: III Classification in practice"
749 por Pollney, Skea, e d'Inverno, Class. Quant. Grav. 17 2885-2902 (2000).
750 Exceto para alguns casos de teste simples, a implementação não está testada até
751 19 de Dezembro de 2004, e é provável que contenha erros.
753 @end deffn
756 @subsection Torsão e não metricidade
758 @code{ctensor} possui a habilidade de calcular e incluir coeficientes de torsão e não
759 metricidade nos coeficientes de conecção.
761 Os coeficientes de torsão são calculados a partir de um tensor fornecido pelo usuário
762 @code{tr}, que pode ser um tensor de categoria (2,1).  A partir disso, os coeficientes de
763 torsão @code{kt} são calculados de acordo com a seguinte fórmula:
765 @example
767               m          m      m
768        - g  tr   - g   tr   - tr   g
769           im  kj    jm   ki     ij  km
770 kt   = -------------------------------
771   ijk                 2
774   k     km
775 kt   = g   kt
776   ij         ijm
778 @end example
780 Note que somente o tensor de índice misto é calculao e armazenado no
781 array @code{kt}.
783 Os coeficientes de não metricidade são calculados a partir  do vetor de não metricidade
784 fornecido pelo usuário @code{nm}. A partir disso, os coeficientes de não metricidade
785 @code{nmc} são calculados como segue:
787 @example
789              k    k        km
790        -nm  D  - D  nm  + g   nm  g
791    k      i  j    i   j         m  ij
792 nmc  = ------------------------------
793    ij                2
795 @end example
797 onde D simboliza o delta de Kronecker.
799 Quando @code{ctorsion_flag} for escolhida para @code{true}, os valores de @code{kt}
800 são subtraídos dos coeficientes de conecção indexados mistos calculados através de
801 @code{christof} e armazenados em @code{mcs}. Similarmente, se @code{cnonmet_flag}
802 for escolhida para @code{true}, os valores de @code{nmc} são subtraídos dos
803 coeficientes de conecção indexados mistos.
805 Se necessário, @code{christof} chama as funções @code{contortion} e
806 @code{nonmetricity} com o objetivo de calcular @code{kt} e @code{nm}.
808 @deffn {Função} contortion (@var{tr})
810 Calcula os coeficientes de contorsão de categoria (2,1) a partir do tensor de torsão @var{tr}.
812 @end deffn
814 @deffn {Função} nonmetricity (@var{nm})
816 Calcula o coeficiente de não metricidade de categoria (2,1) a partir do vetor de
817 não metricidade @var{nm}.
819 @end deffn
823 @subsection Recursos diversos
825 @deffn {Função} ctransform (@var{M})
826 Uma função no pacote @code{ctensor}
827 que irá executar uma transformação de coordenadas
828 sobre uma matriz simétrica quadrada arbitrária @var{M}. O usuário deve informar as
829 funçãoes que definem a transformação.  (Formalmente chamada @code{transform}.)
831 @end deffn
833 @deffn {Função} findde (@var{A}, @var{n})
835 Retorna uma lista de equações diferenciais únicas (expressões)
836 correspondendo aos elementos do array quadrado @var{n} dimensional
837 @var{A}. Atualmente, @var{n} pode ser 2 ou 3. @code{deindex} é uma lista global
838 contendo os índices de @var{A} correspondendo a essas únicas
839 equações diferenciais. Para o tensor de Einstein (@code{ein}), que
840 é um array dimensional, se calculado para a métrica no exemplo
841 abaixo, @code{findde} fornece as seguintes equações diferenciais independentes:
844 @example
845 (%i1) load("ctensor");
846 (%o1)       /share/tensor/ctensor.mac
847 (%i2) derivabbrev:true;
848 (%o2)                                true
849 (%i3) dim:4;
850 (%o3)                                  4
851 (%i4) lg:matrix([a,0,0,0],[0,x^2,0,0],[0,0,x^2*sin(y)^2,0],[0,0,0,-d]);
852                           [ a  0       0        0  ]
853                           [                        ]
854                           [     2                  ]
855                           [ 0  x       0        0  ]
856 (%o4)                     [                        ]
857                           [         2    2         ]
858                           [ 0  0   x  sin (y)   0  ]
859                           [                        ]
860                           [ 0  0       0       - d ]
861 (%i5) depends([a,d],x);
862 (%o5)                            [a(x), d(x)]
863 (%i6) ct_coords:[x,y,z,t];
864 (%o6)                            [x, y, z, t]
865 (%i7) cmetric();
866 (%o7)                                done
867 (%i8) einstein(false);
868 (%o8)                                done
869 (%i9) findde(ein,2);
870                                             2
871 (%o9) [d  x - a d + d, 2 a d d    x - a (d )  x - a  d d  x + 2 a d d
872         x                     x x         x        x    x            x
874                                                         2          2
875                                                 - 2 a  d , a  x + a  - a]
876                                                      x      x
877 (%i10) deindex;
878 (%o10)                     [[1, 1], [2, 2], [4, 4]]
880 @end example
883 @end deffn
884 @deffn {Função} cograd ()
885 Calcula o gradiente covariante de uma função escalar permitindo ao
886 usuário escolher o nome do vetor correspondente como o exemplo sob
887 @code{contragrad} ilustra.
888 @end deffn
889 @deffn {Função} contragrad ()
891 Calcula o gradiente contravariante de uma função escalar permitindo
892 @c "vector^F2name^F*" LOOKS LIKE IT NEEDS TO BE FIXED UP, NOT SURE HOW THOUGH
893 ao usuário escolher o nome do vetor correspondente como o exemplo
894 abaixo como ilustra a métrica de Schwarzschild:
896 @example
898 (%i1) load("ctensor");
899 (%o1)       /share/tensor/ctensor.mac
900 (%i2) derivabbrev:true;
901 (%o2)                                true
902 (%i3) ct_coordsys(exteriorschwarzschild,all);
903 (%o3)                                done
904 (%i4) depends(f,r);
905 (%o4)                               [f(r)]
906 (%i5) cograd(f,g1);
907 (%o5)                                done
908 (%i6) listarray(g1);
909 (%o6)                            [0, f , 0, 0]
910                                       r
911 (%i7) contragrad(f,g2);
912 (%o7)                                done
913 (%i8) listarray(g2);
914                                f  r - 2 f  m
915                                 r        r
916 (%o8)                      [0, -------------, 0, 0]
917                                      r
919 @end example
921 @end deffn
922 @deffn {Função} dscalar ()
923 Calcula o tensor d'Alembertiano da função escalar assim que
924 as dependências tiverem sido declaradas sobre a função. Po exemplo:
926 @example
927 (%i1) load("ctensor");
928 (%o1)       /share/tensor/ctensor.mac
929 (%i2) derivabbrev:true;
930 (%o2)                                true
931 (%i3) ct_coordsys(exteriorschwarzschild,all);
932 (%o3)                                done
933 (%i4) depends(p,r);
934 (%o4)                               [p(r)]
935 (%i5) factor(dscalar(p));
936                           2
937                     p    r  - 2 m p    r + 2 p  r - 2 m p
938                      r r           r r        r          r
939 (%o5)               --------------------------------------
940                                        2
941                                       r
942 @end example
944 @end deffn
945 @deffn {Função} checkdiv ()
947 Calcula a divergência covariante do tensor de segunda categoria misto
948 (cujo primeiro índice deve ser covariante) imprimindo as
949 correspondentes n componentes do campo do vetor (a divergência) onde
950 n = @code{dim}. Se o argumento para a função for @code{g} então a
951 divergência do tensor de Einstein será formada e pode ser zero.
952 Adicionalmente, a divergência (vetor) é dada no array chamado @code{div}.
953 @end deffn
955 @deffn {Função} cgeodesic (@var{dis})
956 Uma função no pacote @code{ctensor}.
957 @code{cgeodesic} calcula as equações geodésicas de
958 movimento para uma dada métrica.  Elas são armazenadas no array @code{geod[i]}.  Se
959 o argumento @var{dis} for @code{true} então essas equações são mostradas.
961 @end deffn
964 @deffn {Função} bdvac (@var{f})
966 Gera as componentes covariantes das equações de campo de vácuo da
967 teoria de gravitação de Brans-Dicke. O campo escalar é especificado
968 através do argumento @var{f}, que pode ser um nome de função (com apóstrofo)
969 com dependências funcionais, e.g., @code{'p(x)}.
971 As componentes de segunda categoria do tensor campo covariante são as componentes de segunda categoria
972 representadas pelo array @code{bd}.
974 @end deffn
976 @deffn {Função} invariant1 ()
978 Gera o tensor misto de Euler-Lagrange (equações de campo) para a
979 densidade invariante de R^2. As equações de campo são componentes de um
980 array chamado @code{inv1}.
982 @end deffn
984 @deffn {Função} invariant2 ()
986 *** NOT YET IMPLEMENTED ***
988 Gera o tensor misto de Euler-Lagrange (equações de campo) para a
989 densidade invariante de @code{ric[i,j]*uriem[i,j]}. As equações de campo são as
990 componentes de um array chamado @code{inv2}.
993 @end deffn
994 @deffn {Função} bimetric ()
996 *** NOT YET IMPLEMENTED ***
998 Gera as euauações de campo da teoria bimétrica de Rosen. As equações
999 de campo são as componentes de um array chamado @code{rosen}.
1001 @end deffn
1003 @subsection Funções utilitárias
1005 @deffn {Função} diagmatrixp (@var{M})
1007 Retorna @code{true} se @var{M} for uma matriz diagonal ou um array (2D).
1009 @end deffn
1011 @deffn {Função} symmetricp (@var{M})
1013 Retorna @code{true} se @var{M} for uma matriz simétrica ou um array (2D).
1015 @end deffn
1017 @deffn {Função} ntermst (@var{f})
1018 Fornece ao usuário um rápido quadro do "tamanho" do tensor duplamente
1019 subscrito (array) @var{f}.  Imprime uma lista de dois elementos onde o segundo
1020 elemento corresponde a N-TERMOS de componentes especificadas através dos primeiros
1021 elementos.  Nesse caminho, é possível rapidamente encontrar as expressões
1022 não nulas e tentar simplificação.
1024 @end deffn
1026 @deffn {Função} cdisplay (@var{ten})
1027 Mostra todos os elementos do tensor @var{ten}, como representados por
1028 um array multidimensional. Tensores de categoria 0 e 1, assim como outros tipos de
1029 variáveis, são mostrados com @code{ldisplay}. Tensores de categoria 2 são
1030 mostrados como matrizes bidimensionais, enquanto tensores de alta categoria são mostrados
1031 como uma lista de matrizes bidimensionais. Por exemplo, o tensor de Riemann da
1032 métrica de Schwarzschild pode ser visto como:
1034 @example
1035 (%i1) load("ctensor");
1036 (%o1)       /share/tensor/ctensor.mac
1037 (%i2) ratfac:true;
1038 (%o2)                                true
1039 (%i3) ct_coordsys(exteriorschwarzschild,all);
1040 (%o3)                                done
1041 (%i4) riemann(false);
1042 (%o4)                                done
1043 (%i5) cdisplay(riem);
1044                [ 0               0                    0            0      ]
1045                [                                                          ]
1046                [                              2                           ]
1047                [      3 m (r - 2 m)   m    2 m                            ]
1048                [ 0  - ------------- + -- - ----       0            0      ]
1049                [            4          3     4                            ]
1050                [           r          r     r                             ]
1051                [                                                          ]
1052     riem     = [                                 m (r - 2 m)              ]
1053         1, 1   [ 0               0               -----------       0      ]
1054                [                                      4                   ]
1055                [                                     r                    ]
1056                [                                                          ]
1057                [                                              m (r - 2 m) ]
1058                [ 0               0                    0       ----------- ]
1059                [                                                   4      ]
1060                [                                                  r       ]
1062                                 [    2 m (r - 2 m)       ]
1063                                 [ 0  -------------  0  0 ]
1064                                 [          4             ]
1065                                 [         r              ]
1066                      riem     = [                        ]
1067                          1, 2   [ 0        0        0  0 ]
1068                                 [                        ]
1069                                 [ 0        0        0  0 ]
1070                                 [                        ]
1071                                 [ 0        0        0  0 ]
1073                                 [         m (r - 2 m)    ]
1074                                 [ 0  0  - -----------  0 ]
1075                                 [              4         ]
1076                                 [             r          ]
1077                      riem     = [                        ]
1078                          1, 3   [ 0  0        0        0 ]
1079                                 [                        ]
1080                                 [ 0  0        0        0 ]
1081                                 [                        ]
1082                                 [ 0  0        0        0 ]
1084                                 [            m (r - 2 m) ]
1085                                 [ 0  0  0  - ----------- ]
1086                                 [                 4      ]
1087                                 [                r       ]
1088                      riem     = [                        ]
1089                          1, 4   [ 0  0  0        0       ]
1090                                 [                        ]
1091                                 [ 0  0  0        0       ]
1092                                 [                        ]
1093                                 [ 0  0  0        0       ]
1095                                [       0         0  0  0 ]
1096                                [                         ]
1097                                [       2 m               ]
1098                                [ - ------------  0  0  0 ]
1099                     riem     = [    2                    ]
1100                         2, 1   [   r  (r - 2 m)          ]
1101                                [                         ]
1102                                [       0         0  0  0 ]
1103                                [                         ]
1104                                [       0         0  0  0 ]
1106                    [     2 m                                         ]
1107                    [ ------------  0        0               0        ]
1108                    [  2                                              ]
1109                    [ r  (r - 2 m)                                    ]
1110                    [                                                 ]
1111                    [      0        0        0               0        ]
1112                    [                                                 ]
1113         riem     = [                         m                       ]
1114             2, 2   [      0        0  - ------------        0        ]
1115                    [                     2                           ]
1116                    [                    r  (r - 2 m)                 ]
1117                    [                                                 ]
1118                    [                                         m       ]
1119                    [      0        0        0         - ------------ ]
1120                    [                                     2           ]
1121                    [                                    r  (r - 2 m) ]
1123                                 [ 0  0       0        0 ]
1124                                 [                       ]
1125                                 [            m          ]
1126                                 [ 0  0  ------------  0 ]
1127                      riem     = [        2              ]
1128                          2, 3   [       r  (r - 2 m)    ]
1129                                 [                       ]
1130                                 [ 0  0       0        0 ]
1131                                 [                       ]
1132                                 [ 0  0       0        0 ]
1134                                 [ 0  0  0       0       ]
1135                                 [                       ]
1136                                 [               m       ]
1137                                 [ 0  0  0  ------------ ]
1138                      riem     = [           2           ]
1139                          2, 4   [          r  (r - 2 m) ]
1140                                 [                       ]
1141                                 [ 0  0  0       0       ]
1142                                 [                       ]
1143                                 [ 0  0  0       0       ]
1145                                       [ 0  0  0  0 ]
1146                                       [            ]
1147                                       [ 0  0  0  0 ]
1148                                       [            ]
1149                            riem     = [ m          ]
1150                                3, 1   [ -  0  0  0 ]
1151                                       [ r          ]
1152                                       [            ]
1153                                       [ 0  0  0  0 ]
1155                                       [ 0  0  0  0 ]
1156                                       [            ]
1157                                       [ 0  0  0  0 ]
1158                                       [            ]
1159                            riem     = [    m       ]
1160                                3, 2   [ 0  -  0  0 ]
1161                                       [    r       ]
1162                                       [            ]
1163                                       [ 0  0  0  0 ]
1165                                [   m                      ]
1166                                [ - -   0   0       0      ]
1167                                [   r                      ]
1168                                [                          ]
1169                                [        m                 ]
1170                                [  0   - -  0       0      ]
1171                     riem     = [        r                 ]
1172                         3, 3   [                          ]
1173                                [  0    0   0       0      ]
1174                                [                          ]
1175                                [              2 m - r     ]
1176                                [  0    0   0  ------- + 1 ]
1177                                [                 r        ]
1179                                     [ 0  0  0    0   ]
1180                                     [                ]
1181                                     [ 0  0  0    0   ]
1182                                     [                ]
1183                          riem     = [            2 m ]
1184                              3, 4   [ 0  0  0  - --- ]
1185                                     [             r  ]
1186                                     [                ]
1187                                     [ 0  0  0    0   ]
1189                                 [       0        0  0  0 ]
1190                                 [                        ]
1191                                 [       0        0  0  0 ]
1192                                 [                        ]
1193                      riem     = [       0        0  0  0 ]
1194                          4, 1   [                        ]
1195                                 [      2                 ]
1196                                 [ m sin (theta)          ]
1197                                 [ -------------  0  0  0 ]
1198                                 [       r                ]
1200                                 [ 0        0        0  0 ]
1201                                 [                        ]
1202                                 [ 0        0        0  0 ]
1203                                 [                        ]
1204                      riem     = [ 0        0        0  0 ]
1205                          4, 2   [                        ]
1206                                 [         2              ]
1207                                 [    m sin (theta)       ]
1208                                 [ 0  -------------  0  0 ]
1209                                 [          r             ]
1211                               [ 0  0          0          0 ]
1212                               [                            ]
1213                               [ 0  0          0          0 ]
1214                               [                            ]
1215                    riem     = [ 0  0          0          0 ]
1216                        4, 3   [                            ]
1217                               [                2           ]
1218                               [         2 m sin (theta)    ]
1219                               [ 0  0  - ---------------  0 ]
1220                               [                r           ]
1222                  [        2                                             ]
1223                  [   m sin (theta)                                      ]
1224                  [ - -------------         0                0         0 ]
1225                  [         r                                            ]
1226                  [                                                      ]
1227                  [                         2                            ]
1228                  [                    m sin (theta)                     ]
1229       riem     = [        0         - -------------         0         0 ]
1230           4, 4   [                          r                           ]
1231                  [                                                      ]
1232                  [                                          2           ]
1233                  [                                   2 m sin (theta)    ]
1234                  [        0                0         ---------------  0 ]
1235                  [                                          r           ]
1236                  [                                                      ]
1237                  [        0                0                0         0 ]
1239 (%o5)                                done
1241 @end example
1242 @end deffn
1244 @deffn {Função} deleten (@var{L}, @var{n})
1245 Retorna uma nova lista consistindo de @var{L} com o @var{n}'ésimo elemento
1246 apagado.
1247 @end deffn
1249 @subsection Variáveis usadas por @code{ctensor}
1252 @defvr {Variável de opção} dim
1253 Valor padrão: 4
1255 Uma opção no pacote @code{ctensor}.
1256 @code{dim} é a dimensão de multiplicação com o
1257 padrão 4. O comando @code{dim: n} irá escolher a dimensão para qualquer outro
1258 valor @code{n}.
1260 @end defvr
1262 @defvr {Variável de opção} diagmetric
1263 Valor padrão: @code{false}
1265 Uma opção no pacote @code{ctensor}.
1266 Se @code{diagmetric} for @code{true} rotinas especiais calculam
1267 todos os objetos geométricos (que possuem o tensor métrico explicitamente)
1268 levando em consideração a diagonalidade da métrica. Tempo de
1269 execuçào reduzido irá, com certeza, resultar dessa escolha. Nota: essa opção é escolhida
1270 automaticamente por @code{csetup} se uma métrica diagonal for especificada.
1272 @end defvr
1274 @defvr {Variável de opção} ctrgsimp
1276 Faz com que simplificações trigonométricas sejam usadas quando tensores forem calculados. Atualmente,
1277 @code{ctrgsimp} afeta somente cálculos envolvendo uma moldura móvel.
1279 @end defvr
1281 @defvr {Variável de opção} cframe_flag
1283 Faz com que cálculos sejam executados relativamente a uma moldura móvel em oposição a
1284 uma métrica holonômica. A moldura é definida através do array da moldura inversa @code{fri}
1285 e da métrica da moldura @code{lfg}. Para cálculos usando uma moldura Cartesiana,
1286 @code{lfg} pode ser a matriz unitária de dimensão apropriada; para
1287 cálculos em uma moldura de Lorentz, @code{lfg} pode ter a assinatura
1288 apropriada.
1290 @end defvr
1292 @defvr {Variável de opção} ctorsion_flag
1294 Faz com que o tensor de contorsão seja incluído no cálculo dos
1295 coeficientes de conecção. O tensor de contorsão por si mesmo é calculado através de
1296 @code{contortion} a partir do tensor @code{tr} fornecido pelo usuário.
1298 @end defvr
1300 @defvr {Variável de opção} cnonmet_flag
1302 Faz com que os coeficientes de não metricidade sejam incluídos no cálculo dos
1303 coeficientes de conecção. Os coeficientes de não metricidade são calculados
1304 a partir do vetor de não metricidade @code{nm} fornecido pelo usuário através da função
1305 @code{nonmetricity}.
1307 @end defvr
1309 @defvr {Variável de opção} ctayswitch
1311 Se escolhida para @code{true}, faz com que alguns cálculos de @code{ctensor} sejam realizados usando
1312 expansões das séries de Taylor. atualmente, @code{christof}, @code{ricci},
1313 @code{uricci}, @code{einstein}, e @code{weyl} levam em conta essa
1314 escolha.
1316 @end defvr
1318 @defvr {Variável de opção} ctayvar
1320 Variável usada pela expansão de séries de Taylor se @code{ctayswitch} é escolhida para
1321 @code{true}.
1323 @end defvr
1325 @defvr {Variável de opção} ctaypov
1327 Maximo expoente usado em expansões de séries de Taylor quando @code{ctayswitch} for
1328 escolhida para @code{true}.
1330 @end defvr
1332 @defvr {Variável de opção} ctaypt
1334 Ponto em torno do qual expansões de séries de Taylor sao realizadas quando
1335 @code{ctayswitch} for escolhida para @code{true}.
1337 @end defvr
1339 @defvr {Variável de sistema} gdet
1341 O determinante do tensor métrico @code{lg}. Calculado através de @code{cmetric} quando
1342 @code{cframe_flag} for escolhido para @code{false}.
1344 @end defvr
1346 @defvr {Variável de opção} ratchristof
1348 Faz com que simplificações racionais sejam aplicadas através de @code{christof}.
1350 @end defvr
1352 @defvr {Variável de opção} rateinstein
1353 Valor padrão: @code{true}
1355 Se @code{true} simplificação racional será
1356 executada sobre as componentes não nulas de tensores de Einstein; se
1357 @code{ratfac} for @code{true} então as componentes irão também ser fatoradas.
1359 @end defvr
1360 @defvr {Variável de opção} ratriemann
1361 Valor padrão: @code{true}
1363 Um dos comutadores que controlam
1364 simplificações dos tensores de Riemann; se @code{true}, então simplificações
1365 racionais irão ser concluídas; se @code{ratfac} for @code{true} então cada uma das
1366 componentes irá também ser fatorada.
1368 @end defvr
1370 @defvr {Variável de opção} ratweyl
1371 Valor padrão: @code{true}
1373 Se @code{true}, esse comutador faz com que a função de @code{weyl}
1374 aplique simplificações racionais aos valores do tensor de Weyl. Se
1375 @code{ratfac} for @code{true}, então as componentes irão também ser fatoradas.
1376 @end defvr
1378 @defvr {Variável} lfg
1379 A moldura métrica covariante. Por padrão, é inicializada para a moldura tetradimensional de Lorentz com assinatura (+,+,+,-). Usada quando @code{cframe_flag} for @code{true}.
1380 @end defvr
1382 @defvr {Variável} ufg
1383 A métrica da moldura inversa. Calculada de @code{lfg} quando @code{cmetric} for chamada enquanto @code{cframe_flag} for escolhida para @code{true}.
1384 @end defvr
1386 @defvr {Variável} riem
1387 O tensor de categoria (3,1) de Riemann. Calculado quando a função @code{riemann} é invocada. Para informação sobre ordenação de índices, veja a descrição de @code{riemann}.
1389 Se @code{cframe_flag} for @code{true}, @code{riem} é calculado a partir do tensor covariante de Riemann @code{lriem}.
1391 @end defvr
1393 @defvr {Variável} lriem
1395 O tensor covariante de Riemann. Calculado através de @code{lriemann}.
1397 @end defvr
1399 @defvr {Variável} uriem
1401 O tensor contravariante de Riemann. Calculado através de @code{uriemann}.
1403 @end defvr
1405 @defvr {Variável} ric
1407 O tensor misto de Ricci. Calculado através de @code{ricci}.
1409 @end defvr
1411 @defvr {Variável} uric
1413 O tensor contravariante de Ricci. Calculado através de @code{uricci}.
1415 @end defvr
1417 @defvr {Variável} lg
1419 O tensor métrico. Esse tensor deve ser especificado (como uma @code{dim} através da matriz @code{dim})
1420 antes que outro cálculo possa ser executado.
1422 @end defvr
1424 @defvr {Variável} ug
1426 O inverso do tensor métrico. Calculado através de @code{cmetric}.
1428 @end defvr
1430 @defvr {Variável} weyl
1432 O tensor de Weyl. Calculado através de @code{weyl}.
1434 @end defvr
1436 @defvr {Variável} fb
1438 Coeficientes delimitadores da moldura, como calculado através de @code{frame_bracket}.
1440 @end defvr
1442 @defvr {Variável} kinvariant
1444 O invariante de Kretchmann. Calculado através de @code{rinvariant}.
1446 @end defvr
1448 @defvr {Variável} np
1450 Um tetrad nulo de Newman-Penrose. Calculado através de @code{nptetrad}.
1452 @end defvr
1454 @defvr {Variável} npi
1456 O índice ascendente do tetrad nulo de Newman-Penrose. Calculado através de @code{nptetrad}.
1457 Definido como @code{ug.np}. O produto @code{np.transpose(npi)} é constante:
1459 @example
1460 (%i39) trigsimp(np.transpose(npi));
1461                               [  0   - 1  0  0 ]
1462                               [                ]
1463                               [ - 1   0   0  0 ]
1464 (%o39)                        [                ]
1465                               [  0    0   0  1 ]
1466                               [                ]
1467                               [  0    0   1  0 ]
1468 @end example
1470 @end defvr
1472 @defvr {Variável} tr
1474 Tensor de categoria 3 fornecido pelo usuário representando torsão. Usado por @code{contortion}.
1475 @end defvr
1477 @defvr {Variável} kt
1479 O tensor de contorsão, calculado a partir de @code{tr} através de @code{contortion}.
1480 @end defvr
1482 @defvr {Variável} nm
1484 Vetor de não metrcidade fornecido pelo usuário. Usado por @code{nonmetricity}.
1485 @end defvr
1487 @defvr {Variável} nmc
1489 Os coeficientes de não metricidade, calculados a partir de @code{nm} por @code{nonmetricity}.
1491 @end defvr
1493 @defvr {Variável de sistema} tensorkill
1495 Variável indicando se o pacote tensor foi inicializado. Escolhida e usada por
1496 @code{csetup}, retornada ao seu valor original através de @code{init_ctensor}.
1498 @end defvr
1500 @defvr {Variável de opção} ct_coords
1501 Valor padrão: @code{[]}
1503 Uma opção no pacote @code{ctensor}.
1504 @code{ct_coords} contém uma lista de coordenadas.
1505 Enquanto normalmente definida quando a função @code{csetup} for chamada,
1506 se pode redefinir as coordenadas com a atribuição
1507 @code{ct_coords: [j1, j2, ..., jn]} onde os j's são os novos nomes de coordenadas.
1508 Veja também @code{csetup}.
1510 @end defvr
1512 @subsection Nomes reservados
1514 Os seguintes nomes são usados internamente pelo pacote @code{ctensor} e
1515 não devem ser redefinidos:
1517 @example
1518   Name         Description
1519   ---------------------------------------
1520   _lg()        Avalia para @code{lfg} se a moldura métrica for usada,
1521                     para @code{lg} de outra forma
1522   _ug()        Avalia para @code{ufg} se a moldura métrica for usada,
1523                     para @code{ug} de outra forma
1524   cleanup()    Remove ítens da lista @code{deindex}
1525   contract4()  Usado por psi()
1526   filemet()    Usado por csetup() quando lendo a métrica de um arquivo
1527   findde1()    Usado por findde()
1528   findde2()    Usado por findde()
1529   findde3()    Usado por findde()
1530   kdelt()      Delta de Kronecker (não generalizado)
1531   newmet()     Usado por csetup() para escolher uma métrica
1532                     interativamente
1533   setflags()   Usado por init_ctensor()
1534   readvalue()
1535   resimp()
1536   sermet()     Usado por csetup() para informar uma métricacom série
1537                     de Taylor
1538   txyzsum()
1539   tmetric()    Moldura métrica, usado por cmetric() quando
1540                     cframe_flag:true
1541   triemann()   Tensor de Riemann em base de moldura, usado quando
1542                     cframe_flag:true
1543   tricci()     Tensor de Ricci em base de moldura, usada quando
1544                     cframe_flag:true
1545   trrc()       Coeficientes de rotação de Ricci, usado por
1546                     christof()
1547   yesp()
1548 @end example
1551 @subsection Modificações
1553 Em Novembro de 2004, o pacote @code{ctensor} foi extensivamente reescrito.
1554 Muitas funções e variáveis foram renomeadas com o objetivo de tornar o
1555 pacote com a versão comercial do Macsyma.
1558 @example
1559   Novo Nome    Nome Antigo     Descrição
1560   --------------------------------------------------------------------
1561   ctaylor()    DLGTAYLOR()     Expansão da série de Taylor de uma
1562   -----------------------------expressão
1563   lgeod[]      EM              Equações geodésicas
1564   ein[]        G[]             Tensor misto de Einstein
1565   ric[]        LR[]            Tensor misto de Ricci
1566   ricci()      LRICCICOM()     Calcula o tensor misto de Ricci
1567   ctaypov      MINP            Maximo expoente em expansões de séries de
1568   -----------------------------Taylor
1569   cgeodesic()  MOTION          Calcula as equações geodésicas
1570   ct_coords    OMEGA           Coordenadas métricas
1571   ctayvar      PARAM           Variável de expansão de séries de
1572   -----------------------------Taylor
1573   lriem[]      R[]             Tensor covariante de Riemann
1574   uriemann()   RAISERIEMANN()  Calcula o tensor contravariante de
1575   -----------------------------Riemann
1576   ratriemann   RATRIEMAN       Simplificação racional do tensor de
1577   -----------------------------Riemann
1578   uric[]       RICCI[]         Tensor de Ricci contravariante
1579   uricci()     RICCICOM()      Calcula o tensor de Ricci contravariante
1580   cmetric()    SETMETRIC()     Escolhe a métrica
1581   ctaypt       TAYPT           Ponto para expansões de séries de Taylor
1582   ctayswitch   TAYSWITCH       Escolhe o comutador de séries de Taylor
1583   csetup()     TSETUP()        Inicia sessão interativa de configuração
1584   ctransform() TTRANSFORM()    Transformação de coordenadas interativa
1585   uriem[]      UR[]            Tensor contravariante de Riemann 
1586   weyl[]       W[]             Tensor (3,1) de Weyl
1588 @end example