compute the second partial derivatives of the covariant metric tensor components
d2metric( d1g, coord)
first partials of the covariant metric tensor
list of names representing the coordinate variables
Important: The tensor package has been deprecated. Use the superseding packages DifferentialGeometry and Physics instead.
Given the coordinate variables, coord, and the first partials of the covariant metric tensor, d1g, d2metric( d1g, coord ) computes the second partial derivatives of g, which will be a new tensor_type of rank four and which uses the `d2met` indexing function provided by the tensor package to implement the symmetry in the indices of the second partials.
d1g must be a rank 3 tensor_type with character [-1,-1,-1] and must use the `cf1` indexing function for its component array. It is recommended that d1g be computed using tensor[d1metric].
The extra index due to differentiation is of covariant character, by convention. Thus, the index_char field of the result is [-1, -1, -1, -1].
Indexing Function: The `d2met` indexing function is meant to index the second partials of the covariant metric tensor components. Specifically, it implements the symmetry in the first and second indices (due to the symmetry in the metric components themselves) and the symmetry in the third and fourth indices (due to the symmetry of the mixed partial derivatives) of a four index quantity.
Simplification: This routine uses the `tensor/d2metric/simp` routine for simplification purposes. The simplification routine is applied to each component of result after it is computed. By default, `tensor/d2metric/simp` is initialized to the `tensor/simp` routine. It is recommended that the `tensor/d2metric/simp` routine be customized to suit the needs of the particular problem. For example, if the metric component functions are not fully known but are known to satisfy certain differential equations, the `tensor/d2metric/simp` routine could be used to make substitutions for the partial derivatives of these functions.
For computing the partial derivatives of the components of an arbitrary tensor, use tensor[partial_diff].
This function is part of the tensor package, and so can be used in the form d2metric(..) only after performing the command with(tensor) or with(tensor, d2metric). The function can always be accessed in the long form tensor[d2metric](..).
Define the coordinate variables and the covariant components of the Schwarzchild metric.
coord ≔ t,r,θ,φ:
g_compts ≔ array⁡symmetric,sparse,1..4,1..4:
g_compts1,1 ≔ 1−2⁢mr:g_compts2,2 ≔ −1g_compts1,1:
g_compts3,3 ≔ −r2:g_compts4,4 ≔ −r2⁢sin⁡th2:
g ≔ create⁡−1,−1,eval⁡g_compts
Compute the first partials of g:
d1g ≔ d1metric⁡g,coord:
Compute the second partials of g:
d2g ≔ d2metric⁡d1g,coord:
All indices are covariant
compts ≔ get_compts⁡d2g:
The symmetries in the indices are implemented with indexing:
Extract only the nonzero entries
map( proc(x) if compts[op(x)]<>0 then op(x)=compts[op(x)] else NULL end if end proc,
[ indices(compts) ] );
Download Help Document