|
LORENE
|
Symmetric tensors (with respect to two of their arguments). More...
#include <tensor.h>
Public Member Functions | |
| Tensor_sym (const Map &map, int val, const Itbl &tipe, const Base_vect &triad_i, int index_sym1, int index_sym2) | |
| Standard constructor. More... | |
| Tensor_sym (const Map &map, int val, int tipe, const Base_vect &triad_i, int index_sym1, int index_sym2) | |
| Standard constructor when all the indices are of the same type. More... | |
| Tensor_sym (const Map &map, int tipe0, int tipe1, int tipe2, const Base_vect &triad_i, int index_sym1, int index_sym2) | |
| Constructor for a valence 3 symmetric tensor. More... | |
| Tensor_sym (const Tensor_sym &a) | |
| Copy constructor. More... | |
| Tensor_sym (const Map &map, const Base_vect &triad_i, FILE *fich) | |
Constructor from a file (see sauve(FILE*) ). More... | |
| virtual | ~Tensor_sym () |
| Destructor. More... | |
| virtual void | operator= (const Tensor_sym &a) |
Assignment to another Tensor_sym. More... | |
| virtual void | operator= (const Tensor &a) |
Assignment to a Tensor NB: the symmetry about the indices id_sym1 and id_sym2 of the input tensor is assumed but is not checked. More... | |
| int | sym_index1 () const |
Number of the first symmetric index (0<= id_sym1 < valence ) More... | |
| int | sym_index2 () const |
Number of the second symmetric index (id_sym1 < id_sym2 < valence ) More... | |
| virtual int | position (const Itbl &ind) const |
Returns the position in the array cmp of a component given by its indices. More... | |
| virtual Itbl | indices (int pos) const |
Returns the indices of a component given by its position in the array cmp . More... | |
| virtual void | sauve (FILE *) const |
| Save in a binary file. More... | |
| const Tensor_sym & | derive_cov (const Metric &gam) const |
Returns the covariant derivative of this with respect to some metric . More... | |
| const Tensor_sym & | derive_con (const Metric &gam) const |
Returns the "contravariant" derivative of this with respect to some metric , by raising the last index of the covariant derivative (cf. More... | |
| Tensor_sym | derive_lie (const Vector &v) const |
Computes the Lie derivative of this with respect to some vector field v. More... | |
| virtual void | set_etat_nondef () |
Sets the logical state of all components to ETATNONDEF (undefined state). More... | |
| virtual void | set_etat_zero () |
Sets the logical state of all components to ETATZERO (zero state). More... | |
| virtual void | set_etat_qcq () |
Sets the logical state of all components to ETATQCQ (ordinary state). More... | |
| virtual void | allocate_all () |
Performs the memory allocation of all the elements, down to the double arrays of the Tbl s. More... | |
| virtual void | change_triad (const Base_vect &new_triad) |
| Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly. More... | |
| void | set_triad (const Base_vect &new_triad) |
| Assigns a new vectorial basis (triad) of decomposition. More... | |
| Scalar & | set (const Itbl &ind) |
| Returns the value of a component (read/write version). More... | |
| Scalar & | set (int i1, int i2) |
| Returns the value of a component for a tensor of valence 2 (read/write version). More... | |
| Scalar & | set (int i1, int i2, int i3) |
| Returns the value of a component for a tensor of valence 3 (read/write version). More... | |
| Scalar & | set (int i1, int i2, int i3, int i4) |
| Returns the value of a component for a tensor of valence 4 (read/write version). More... | |
| void | annule_domain (int l) |
Sets the Tensor to zero in a given domain. More... | |
| virtual void | annule (int l_min, int l_max) |
Sets the Tensor to zero in several domains. More... | |
| void | annule_extern_cn (int l_0, int deg) |
| Performs a smooth (C^n) transition in a given domain to zero. More... | |
| virtual void | std_spectral_base () |
| Sets the standard spectal bases of decomposition for each component. More... | |
| virtual void | std_spectral_base_odd () |
| Sets the standard odd spectal bases of decomposition for each component. More... | |
| virtual void | dec_dzpuis (int dec=1) |
Decreases by dec units the value of dzpuis and changes accordingly the values in the compactified external domain (CED). More... | |
| virtual void | inc_dzpuis (int inc=1) |
Increases by inc units the value of dzpuis and changes accordingly the values in the compactified external domain (CED). More... | |
| virtual void | exponential_filter_r (int lzmin, int lzmax, int p, double alpha=-16.) |
Applies exponential filters to all components (see Scalar::exponential_filter_r ). More... | |
| virtual void | exponential_filter_ylm (int lzmin, int lzmax, int p, double alpha=-16.) |
Applies exponential filters to all components (see Scalar::exponential_filter_ylm ). More... | |
| virtual void | exponential_filter_ylm_phi (int lzmin, int lzmax, int p_r, int p_tet, int p_phi, double alpha=-16.) |
Applies exponential filters to all components (see Scalar::exponential_filter_ylm_phi ). More... | |
| void | copy_coefs_from_smaller_grid (const Tensor &tens_small_grid) |
Copies the content of the argument Tensor to this defined on a larger grid, with similar mappings. More... | |
| void | copy_coefs_from_larger_grid (const Tensor &tens_large_grid) |
Copies the content of the argument Tensor to this defined on a smaller grid, with similar mappings. More... | |
| const Tensor & | divergence (const Metric &gam) const |
Computes the divergence of this with respect to some metric . More... | |
| Tensor | up (int ind, const Metric &gam) const |
Computes a new tensor by raising an index of *this. More... | |
| Tensor | down (int ind, const Metric &gam) const |
Computes a new tensor by lowering an index of *this. More... | |
| Tensor | up_down (const Metric &gam) const |
Computes a new tensor by raising or lowering all the indices of *this . More... | |
| Tensor | trace (int ind1, int ind2) const |
| Trace on two different type indices. More... | |
| Tensor | trace (int ind1, int ind2, const Metric &gam) const |
| Trace with respect to a given metric. More... | |
| Scalar | trace () const |
| Trace on two different type indices for a valence 2 tensor. More... | |
| Scalar | trace (const Metric &gam) const |
| Trace with respect to a given metric for a valence 2 tensor. More... | |
| const Map & | get_mp () const |
| Returns the mapping. More... | |
| const Base_vect * | get_triad () const |
| Returns the vectorial basis (triad) on which the components are defined. More... | |
| int | get_valence () const |
| Returns the valence. More... | |
| int | get_n_comp () const |
| Returns the number of stored components. More... | |
| int | get_index_type (int i) const |
Gives the type (covariant or contravariant) of the index number i . More... | |
| Itbl | get_index_type () const |
| Returns the types of all the indices. More... | |
| int & | set_index_type (int i) |
Sets the type of the index number i . More... | |
| Itbl & | set_index_type () |
| Sets the types of all the indices. More... | |
| const Scalar & | operator() (const Itbl &ind) const |
| Returns the value of a component (read-only version). More... | |
| const Scalar & | operator() (int i1, int i2) const |
| Returns the value of a component for a tensor of valence 2 (read-only version). More... | |
| const Scalar & | operator() (int i1, int i2, int i3) const |
| Returns the value of a component for a tensor of valence 3 (read-only version). More... | |
| const Scalar & | operator() (int i1, int i2, int i3, int i4) const |
| Returns the value of a component for a tensor of valence 4 (read-only version). More... | |
| void | operator+= (const Tensor &) |
| += Tensor More... | |
| void | operator-= (const Tensor &) |
| -= Tensor More... | |
| virtual void | spectral_display (const char *comment=0x0, double threshold=1.e-7, int precision=4, ostream &ostr=cout) const |
| Displays the spectral coefficients and the associated basis functions of each component. More... | |
Protected Member Functions | |
| virtual void | del_deriv () const |
| Deletes the derived quantities. More... | |
| void | set_der_0x0 () const |
| Sets the pointers on derived quantities to 0x0. More... | |
| virtual void | del_derive_met (int) const |
Logical destructor of the derivatives depending on the i-th element of met_depend . More... | |
| void | set_der_met_0x0 (int) const |
Sets all the i-th components of met_depend , p_derive_cov , etc... More... | |
| void | set_dependance (const Metric &) const |
To be used to describe the fact that the derivatives members have been calculated with met . More... | |
| int | get_place_met (const Metric &) const |
Returns the position of the pointer on metre in the array met_depend . More... | |
| void | compute_derive_lie (const Vector &v, Tensor &resu) const |
Computes the Lie derivative of this with respect to some vector field v (protected method; the public interface is method derive_lie ). More... | |
Protected Attributes | |
| int | id_sym1 |
Number of the first symmetric index (0<= id_sym1 < valence ) More... | |
| int | id_sym2 |
Number of the second symmetric index (id_sym1 < id_sym2 < valence ) More... | |
| const Map *const | mp |
| Mapping on which the numerical values at the grid points are defined. More... | |
| int | valence |
| Valence of the tensor (0 = scalar, 1 = vector, etc...) More... | |
| const Base_vect * | triad |
| Vectorial basis (triad) with respect to which the tensor components are defined. More... | |
| Itbl | type_indice |
1D array of integers (class Itbl ) of size valence containing the type of each index: COV for a covariant one and CON for a contravariant one. More... | |
| int | n_comp |
| Number of stored components, depending on the symmetry. More... | |
| Scalar ** | cmp |
Array of size n_comp of pointers onto the components. More... | |
| const Metric * | met_depend [N_MET_MAX] |
Array on the Metric 's which were used to compute derived quantities, like p_derive_cov , etc... More... | |
| Tensor * | p_derive_cov [N_MET_MAX] |
Array of pointers on the covariant derivatives of this with respect to various metrics. More... | |
| Tensor * | p_derive_con [N_MET_MAX] |
Array of pointers on the contravariant derivatives of this with respect to various metrics. More... | |
| Tensor * | p_divergence [N_MET_MAX] |
Array of pointers on the divergence of this with respect to various metrics. More... | |
Friends | |
| Tensor_sym | operator* (const Tensor &, const Tensor_sym &) |
| Tensorial product with symmetries. More... | |
| Tensor_sym | operator* (const Tensor_sym &, const Tensor &) |
| Tensorial product with symmetries. More... | |
Symmetric tensors (with respect to two of their arguments).
This subclass of Tensor is intended to store the components of a tensorial field with respect to a specific basis (triad), in the case the tensor has a valence at least 2 and is symmetric with respect to two of its arguments (or in other words, the components are symmetric with respect to two of their indices).
()
| Lorene::Tensor_sym::Tensor_sym | ( | const Map & | map, |
| int | val, | ||
| const Itbl & | tipe, | ||
| const Base_vect & | triad_i, | ||
| int | index_sym1, | ||
| int | index_sym2 | ||
| ) |
Standard constructor.
| map | the mapping |
| val | valence of the tensor (must be at least 2) |
| tipe | 1-D array of integers (class Itbl ) of size valence containing the type of each index, COV for a covariant one and CON for a contravariant one, with the following storage convention:
|
| triad_i | vectorial basis (triad) with respect to which the tensor components are defined |
| index_sym1 | number of the first symmetric index (0<= index_sym1 < valence ) |
| index_sym2 | number of the second symmetric index (index_sym1 < index_sym2 < valence ) |
Definition at line 72 of file tensor_sym.C.
References id_sym1, id_sym2, and Lorene::Tensor::valence.
| Lorene::Tensor_sym::Tensor_sym | ( | const Map & | map, |
| int | val, | ||
| int | tipe, | ||
| const Base_vect & | triad_i, | ||
| int | index_sym1, | ||
| int | index_sym2 | ||
| ) |
Standard constructor when all the indices are of the same type.
| map | the mapping |
| val | valence of the tensor (must be at least 2) |
| tipe | the type (COV or CON ) of the indices. |
| triad_i | vectorial basis (triad) with respect to which the tensor components are defined. |
| index_sym1 | number of the first symmetric index (0<= index_sym1 < valence ) |
| index_sym2 | number of the second symmetric index (index_sym1 < index_sym2 < valence ) |
Definition at line 100 of file tensor_sym.C.
References id_sym1, id_sym2, and Lorene::Tensor::valence.
| Lorene::Tensor_sym::Tensor_sym | ( | const Map & | map, |
| int | tipe0, | ||
| int | tipe1, | ||
| int | tipe2, | ||
| const Base_vect & | triad_i, | ||
| int | index_sym1, | ||
| int | index_sym2 | ||
| ) |
Constructor for a valence 3 symmetric tensor.
| map | the mapping |
| tipe0 | type (COV or CON ) of the first index. |
| tipe1 | type (COV or CON ) of the second index. |
| tipe2 | type (COV or CON ) of the third index. |
| triad_i | vectorial basis (triad) with respect to which the tensor components are defined. |
| index_sym1 | number of the first symmetric index (0<= index_sym1 <=2 ) |
| index_sym2 | number of the second symmetric index (index_sym1 < index_sym2 <=2 ) |
Definition at line 123 of file tensor_sym.C.
References id_sym1, id_sym2, Lorene::Itbl::set(), and Lorene::Tensor::type_indice.
| Lorene::Tensor_sym::Tensor_sym | ( | const Tensor_sym & | a | ) |
Copy constructor.
Definition at line 155 of file tensor_sym.C.
References Lorene::Tensor::cmp, indices(), Lorene::Tensor::n_comp, and position().
Constructor from a file (see sauve(FILE*) ).
| map | the mapping |
| triad_i | vectorial basis (triad) with respect to which the tensor components are defined. It will be checked that it coincides with the basis saved in the file. |
| fich | file which has been created by the function sauve(FILE*). |
Definition at line 177 of file tensor_sym.C.
References Lorene::fread_be(), id_sym1, id_sym2, and Lorene::Tensor::type_indice.
|
virtual |
Destructor.
Definition at line 192 of file tensor_sym.C.
|
virtualinherited |
Performs the memory allocation of all the elements, down to the double arrays of the Tbl s.
This function performs in fact recursive calls to set_etat_qcq() on each element of the chain Scalar -> Valeur -> Mtbl -> Tbl .
Reimplemented in Lorene::Scalar.
Definition at line 518 of file tensor.C.
References Lorene::Scalar::allocate_all(), Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.
|
virtualinherited |
Sets the Tensor to zero in several domains.
| l_min | [input] The Tensor will be set (logically) to zero in the domains whose indices are in the range [l_min,l_max] . |
| l_max | [input] see the comments for l_min . |
Note that annule(0,nz-1) , where nz is the total number of domains, is equivalent to set_etat_zero() .
Reimplemented in Lorene::Scalar.
Definition at line 681 of file tensor.C.
References Lorene::Scalar::annule(), Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, and Lorene::Tensor::set_etat_zero().
|
inherited |
Sets the Tensor to zero in a given domain.
| l | [input] Index of the domain in which the Tensor will be set (logically) to zero. |
Definition at line 676 of file tensor.C.
References Lorene::Tensor::annule().
|
inherited |
Performs a smooth (C^n) transition in a given domain to zero.
| l_0 | [input] in the domain of index l0 the tensor is multiplied by the right polynomial (of degree 2n+1), to ensure continuty of the function and its n first derivative at both ends of this domain. The tensor is unchanged in the domains l < l_0 and set to zero in domains l > l_0. |
| deg | [input] the degree n of smoothness of the transition. |
Definition at line 700 of file tensor.C.
References Lorene::Map::get_mg(), Lorene::Mg3d::get_type_r(), and Lorene::Tensor::mp.
|
virtualinherited |
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.
Reimplemented in Lorene::Scalar, and Lorene::Vector.
Definition at line 80 of file tensor_change_triad.C.
References Lorene::Map::comp_p_from_cartesian(), Lorene::Map::comp_r_from_cartesian(), Lorene::Map::comp_t_from_cartesian(), Lorene::Map::comp_x_from_spherical(), Lorene::Map::comp_y_from_spherical(), Lorene::Map::comp_z_from_spherical(), Lorene::Base_vect_cart::get_align(), Lorene::Map::get_bvect_cart(), Lorene::Map::get_bvect_spher(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::mp, Lorene::Tensor::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
protectedinherited |
Computes the Lie derivative of this with respect to some vector field v (protected method; the public interface is method derive_lie ).
Definition at line 342 of file tensor_calculus.C.
References Lorene::Tensor::cmp, Lorene::contract(), Lorene::Scalar::dec_dzpuis(), Lorene::Tensor::derive_cov(), Lorene::Map::flat_met_cart(), Lorene::Map::flat_met_spher(), Lorene::Scalar::get_dzpuis(), Lorene::Tensor::get_n_comp(), Lorene::Tensor::get_triad(), Lorene::Tensor::indices(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Tensor::operator()(), Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
inherited |
Copies the content of the argument Tensor to this defined on a smaller grid, with similar mappings.
It copies the coefficients, discarding the additional ones. Used for de-aliasing purposes.
| tens_small_grid | [input] Tensor to be copied, defined on the larger grid. |
Definition at line 1123 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Scalar::copy_coefs_from_large_grid(), and Lorene::Tensor::n_comp.
|
inherited |
Copies the content of the argument Tensor to this defined on a larger grid, with similar mappings.
It copies the coefficients, setting the additional ones to zero. Used for de-aliasing purposes.
| tens_small_grid | [input] Tensor to be copied, defined on the smaller grid. |
Definition at line 1116 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Scalar::copy_coefs_from_small_grid(), and Lorene::Tensor::n_comp.
|
virtualinherited |
Decreases by dec units the value of dzpuis and changes accordingly the values in the compactified external domain (CED).
Reimplemented in Lorene::Scalar.
Definition at line 818 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.
|
protectedvirtualinherited |
Deletes the derived quantities.
Reimplemented in Lorene::Sym_tensor_tt, Lorene::Vector_divfree, Lorene::Sym_tensor_trans, Lorene::Scalar, Lorene::Sym_tensor, and Lorene::Vector.
Definition at line 408 of file tensor.C.
References Lorene::Tensor::del_derive_met(), and Lorene::Tensor::set_der_0x0().
|
protectedvirtualinherited |
Logical destructor of the derivatives depending on the i-th element of met_depend .
Reimplemented in Lorene::Sym_tensor, and Lorene::Vector.
Definition at line 424 of file tensor.C.
References Lorene::Tensor::met_depend, Lorene::Tensor::p_derive_con, Lorene::Tensor::p_derive_cov, Lorene::Tensor::p_divergence, Lorene::Tensor::set_der_met_0x0(), and Lorene::Metric::tensor_depend.
| const Tensor_sym & Lorene::Tensor_sym::derive_con | ( | const Metric & | gam | ) | const |
Returns the "contravariant" derivative of this with respect to some metric
, by raising the last index of the covariant derivative (cf.
method derive_cov() ) with
.
Definition at line 207 of file tensor_sym_calculus.C.
References Lorene::Tensor::derive_con().
| const Tensor_sym & Lorene::Tensor_sym::derive_cov | ( | const Metric & | gam | ) | const |
Returns the covariant derivative of this with respect to some metric
.
denoting the tensor represented by this and
its covariant derivative with respect to the metric
, the extra index (with respect to the indices of
) of
is chosen to be the last one. This convention agrees with that of MTW (see Eq. (10.17) of MTW).
| gam | metric |
of this with respect to the connection
associated with the metric
Definition at line 195 of file tensor_sym_calculus.C.
References Lorene::Tensor::derive_cov().
| Tensor_sym Lorene::Tensor_sym::derive_lie | ( | const Vector & | v | ) | const |
Computes the Lie derivative of this with respect to some vector field v.
Definition at line 222 of file tensor_sym_calculus.C.
References Lorene::Tensor::compute_derive_lie(), id_sym1, id_sym2, Lorene::Tensor::mp, Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
Computes the divergence of this with respect to some metric
.
The divergence is taken with respect of the last index of this which thus must be contravariant. For instance if the tensor
represented by this is a twice contravariant tensor, whose components w.r.t. the triad
are
:
, the divergence of
w.r.t.
is the vector
where
denotes the connection associated with the metric
.
| gam | metric |
this with respect to
. Definition at line 1065 of file tensor.C.
References Lorene::Metric::connect(), Lorene::Tensor::get_place_met(), Lorene::Connection::p_divergence(), Lorene::Tensor::p_divergence, and Lorene::Tensor::set_dependance().
Computes a new tensor by lowering an index of *this.
| ind | index to be lowered, with the following convention :
|
| gam | metric used to lower the index (contraction with the twice covariant form of the metric on the index ind ). |
Definition at line 268 of file tensor_calculus.C.
References Lorene::contract(), Lorene::Metric::cov(), Lorene::Tensor::indices(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
virtualinherited |
Applies exponential filters to all components (see Scalar::exponential_filter_r ).
Works only for Cartesian components.
Reimplemented in Lorene::Scalar, Lorene::Sym_tensor, and Lorene::Vector.
Definition at line 1076 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Map::get_bvect_cart(), Lorene::Base_vect::identify(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, and Lorene::Tensor::triad.
|
virtualinherited |
Applies exponential filters to all components (see Scalar::exponential_filter_ylm ).
Works only for Cartesian components.
Reimplemented in Lorene::Scalar, Lorene::Sym_tensor, and Lorene::Vector.
Definition at line 1089 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Map::get_bvect_cart(), Lorene::Base_vect::identify(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, and Lorene::Tensor::triad.
|
virtualinherited |
Applies exponential filters to all components (see Scalar::exponential_filter_ylm_phi ).
Works only for Cartesian components.
Reimplemented in Lorene::Scalar.
Definition at line 1102 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Map::get_bvect_cart(), Lorene::Base_vect::identify(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, and Lorene::Tensor::triad.
|
inlineinherited |
Gives the type (covariant or contravariant) of the index number i .
i must be strictly lower than valence and obey the following convention:
i = 0 : first index i = 1 : second index Definition at line 927 of file tensor.h.
References Lorene::Tensor::type_indice.
|
inlineinherited |
Returns the types of all the indices.
Itbl ) of size valence COV for a covariant one and CON Definition at line 937 of file tensor.h.
References Lorene::Tensor::type_indice.
|
inlineinherited |
|
inlineinherited |
Returns the number of stored components.
Definition at line 913 of file tensor.h.
References Lorene::Tensor::n_comp.
|
protectedinherited |
Returns the position of the pointer on metre in the array met_depend .
Definition at line 453 of file tensor.C.
References Lorene::Tensor::met_depend.
|
inlineinherited |
Returns the vectorial basis (triad) on which the components are defined.
Definition at line 907 of file tensor.h.
References Lorene::Tensor::triad.
|
inlineinherited |
|
virtualinherited |
Increases by inc units the value of dzpuis and changes accordingly the values in the compactified external domain (CED).
Reimplemented in Lorene::Scalar.
Definition at line 826 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.
|
virtual |
Returns the indices of a component given by its position in the array cmp .
| pos | [input] position in the array cmp of the pointer to the Scalar representing a component |
Itbl ) of size valence giving the value of each index for the component located at the position pos in the array cmp, with the following storage convention: Itbl(0) : value of the first index (1, 2 or 3) Itbl(1) : value of the second index (1, 2 or 3) Reimplemented from Lorene::Tensor.
Definition at line 313 of file tensor_sym.C.
References id_sym1, id_sym2, Lorene::Tensor::n_comp, Lorene::Itbl::set(), and Lorene::Tensor::valence.
Returns the value of a component (read-only version).
| ind | 1-D Itbl of size valence containing the values of each index specifing the component, with the following storage convention:
|
ind Definition at line 808 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), Lorene::Tensor::position(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 2 (read-only version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
(i1,i2) Definition at line 770 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 3 (read-only version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
| i3 | value of the third index (1, 2 or 3) |
(i1,i2,i3) Definition at line 781 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 4 (read-only version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
| i3 | value of the third index (1, 2 or 3) |
| i4 | value of the fourth index (1, 2 or 3) |
(i1,i2,i3,i4) Definition at line 793 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
inherited |
+= Tensor
Definition at line 581 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::indices(), Lorene::Tensor::n_comp, Lorene::Tensor::position(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
inherited |
-= Tensor
Definition at line 597 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::indices(), Lorene::Tensor::n_comp, Lorene::Tensor::position(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
virtual |
Assignment to another Tensor_sym.
Reimplemented in Lorene::Sym_tensor_tt, Lorene::Sym_tensor_trans, and Lorene::Sym_tensor.
Definition at line 201 of file tensor_sym.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), id_sym1, id_sym2, indices(), Lorene::Tensor::n_comp, position(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
virtual |
Assignment to a Tensor NB: the symmetry about the indices id_sym1 and id_sym2 of the input tensor is assumed but is not checked.
Reimplemented from Lorene::Tensor.
Reimplemented in Lorene::Sym_tensor_tt, Lorene::Sym_tensor_trans, and Lorene::Sym_tensor.
Definition at line 221 of file tensor_sym.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::get_triad(), Lorene::Tensor::get_valence(), id_sym1, id_sym2, indices(), Lorene::Tensor::n_comp, Lorene::Tensor::position(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
virtual |
Returns the position in the array cmp of a component given by its indices.
| ind | [input] 1-D array of integers (class Itbl ) of size valence giving the values of each index specifing the component, with the following storage convention:
|
cmp of the pointer to the Scalar containing the component specified by ind Reimplemented from Lorene::Tensor.
Definition at line 248 of file tensor_sym.C.
References Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), id_sym1, id_sym2, Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
virtual |
Save in a binary file.
Reimplemented from Lorene::Tensor.
Definition at line 375 of file tensor_sym.C.
References Lorene::fwrite_be(), id_sym1, id_sym2, and Lorene::Tensor::sauve().
Returns the value of a component (read/write version).
| ind | 1-D Itbl of size valence containing the values of each index specifing the component, with the following storage convention:
|
ind Definition at line 664 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), Lorene::Tensor::position(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 2 (read/write version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
(i1,i2) Definition at line 616 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 3 (read/write version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
| i3 | value of the third index (1, 2 or 3) |
(i1,i2,i3) Definition at line 631 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
inherited |
Returns the value of a component for a tensor of valence 4 (read/write version).
| i1 | value of the first index (1, 2 or 3) |
| i2 | value of the second index (1, 2 or 3) |
| i3 | value of the third index (1, 2 or 3) |
| i4 | value of the fourth index (1, 2 or 3) |
(i1,i2,i3,i4) Definition at line 647 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.
|
protectedinherited |
To be used to describe the fact that the derivatives members have been calculated with met .
First it sets a null element of met_depend to &met and puts this in the list of the dependancies of met .
Definition at line 463 of file tensor.C.
References Lorene::Tensor::met_depend, and Lorene::Metric::tensor_depend.
|
protectedinherited |
Sets the pointers on derived quantities to 0x0.
Definition at line 417 of file tensor.C.
References Lorene::Tensor::set_der_met_0x0().
|
protectedinherited |
Sets all the i-th components of met_depend , p_derive_cov , etc...
to 0x0.
Definition at line 443 of file tensor.C.
References Lorene::Tensor::met_depend, Lorene::Tensor::p_derive_con, Lorene::Tensor::p_derive_cov, and Lorene::Tensor::p_divergence.
|
virtualinherited |
Sets the logical state of all components to ETATNONDEF
(undefined state).
Reimplemented in Lorene::Scalar.
Definition at line 499 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_nondef().
|
virtualinherited |
Sets the logical state of all components to ETATQCQ
(ordinary state).
Reimplemented in Lorene::Scalar.
Definition at line 491 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_qcq().
|
virtualinherited |
Sets the logical state of all components to ETATZERO
(zero state).
Reimplemented in Lorene::Scalar.
Definition at line 507 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_zero().
|
inlineinherited |
Sets the type of the index number i .
i must be strictly lower than valence and obey the following convention:
i = 0 : first index i = 1 : second index COV for a covariant index, CON for a contravariant one) Definition at line 950 of file tensor.h.
References Lorene::Itbl::set(), and Lorene::Tensor::type_indice.
|
inlineinherited |
Sets the types of all the indices.
Itbl ) of size valence that can be modified (COV for a covariant one and CON for a contravariant one) Definition at line 959 of file tensor.h.
References Lorene::Tensor::type_indice.
|
inherited |
Assigns a new vectorial basis (triad) of decomposition.
NB: this function modifies only the member triad and leave unchanged the components (member cmp ). In order to change them coherently with the new basis, the function change_triad(const Base_vect& ) must be called instead.
Definition at line 529 of file tensor.C.
References Lorene::Tensor::triad.
|
virtualinherited |
Displays the spectral coefficients and the associated basis functions of each component.
This function shows only the values greater than a given threshold.
| comment | comment to be printed at top of the display (default: 0x0 = nothing printed) |
| threshold | [input] Value above which a coefficient is printed (default: 1.e-7) |
| precision | [input] Number of printed digits (default: 4) |
| ostr | [input] Output stream used for the printing (default: cout) |
Reimplemented in Lorene::Scalar.
Definition at line 884 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Tensor::indices(), Lorene::Tensor::n_comp, Lorene::Scalar::spectral_display(), and Lorene::Tensor::valence.
|
virtualinherited |
Sets the standard spectal bases of decomposition for each component.
To be used only with valence lower than or equal 2.
Reimplemented in Lorene::Scalar, and Lorene::Vector.
Definition at line 936 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Map::get_bvect_cart(), Lorene::Map::get_bvect_spher(), Lorene::Map::get_mg(), Lorene::Base_vect::identify(), Lorene::Tensor::indices(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Scalar::set_spectral_base(), Lorene::Mg3d::std_base_vect_cart(), Lorene::Mg3d::std_base_vect_spher(), Lorene::Scalar::std_spectral_base(), Lorene::Tensor::triad, and Lorene::Tensor::valence.
|
virtualinherited |
Sets the standard odd spectal bases of decomposition for each component.
Currently only implemented for a scalar.
Reimplemented in Lorene::Scalar.
Definition at line 992 of file tensor.C.
References Lorene::Tensor::cmp, Lorene::Scalar::std_spectral_base_odd(), and Lorene::Tensor::valence.
|
inline |
|
inline |
|
inherited |
Trace on two different type indices.
| ind1 | first index for the contraction, with the following convention :
|
| ind2 | second index for the contraction |
Definition at line 97 of file tensor_calculus.C.
References Lorene::Tensor::cmp, Lorene::Tensor::get_n_comp(), Lorene::Tensor::indices(), Lorene::Tensor::mp, Lorene::Tensor::position(), Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Scalar::set_etat_zero(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
Trace with respect to a given metric.
| ind1 | first index for the contraction, with the following convention :
|
| ind2 | second index for the contraction |
| gam | metric used to raise or lower ind1 in order that it has a opposite type than ind2 |
Definition at line 156 of file tensor_calculus.C.
References Lorene::Metric::con(), Lorene::contract(), Lorene::Metric::cov(), Lorene::Tensor::trace(), Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
|
inherited |
Trace on two different type indices for a valence 2 tensor.
Definition at line 183 of file tensor_calculus.C.
References Lorene::Tensor::mp, Lorene::Tensor::operator()(), Lorene::Scalar::set_etat_zero(), Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
Trace with respect to a given metric for a valence 2 tensor.
| gam | metric used to raise or lower one of the indices, in order to take the trace |
Definition at line 200 of file tensor_calculus.C.
References Lorene::Metric::con(), Lorene::contract(), Lorene::Metric::cov(), Lorene::Tensor::trace(), Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
Computes a new tensor by raising an index of *this.
| ind | index to be raised, with the following convention :
|
| gam | metric used to raise the index (contraction with the twice contravariant form of the metric on the index ind ). |
Definition at line 228 of file tensor_calculus.C.
References Lorene::Metric::con(), Lorene::contract(), Lorene::Tensor::indices(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.
Computes a new tensor by raising or lowering all the indices of *this .
| gam | metric used to lower the contravariant indices and raising the covariant ones. |
Definition at line 308 of file tensor_calculus.C.
References Lorene::Tensor::down(), Lorene::Tensor::Tensor(), Lorene::Tensor::type_indice, Lorene::Tensor::up(), and Lorene::Tensor::valence.
|
friend |
Tensorial product with symmetries.
Definition at line 111 of file tensor_sym_calculus.C.
|
friend |
Tensorial product with symmetries.
Definition at line 71 of file tensor_sym_calculus.C.
|
protectedinherited |
|
protected |
|
protected |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
Array of pointers on the contravariant derivatives of this with respect to various metrics.
See the comments of met_depend . See also the comments of method derive_con() for a precise definition of a "contravariant" derivative.
|
mutableprotectedinherited |
Array of pointers on the covariant derivatives of this with respect to various metrics.
See the comments of met_depend . See also the comments of method derive_cov() for the index convention of the covariant derivation.
|
mutableprotectedinherited |
Array of pointers on the divergence of this with respect to various metrics.
See the comments of met_depend . See also the comments of method divergence() for a precise definition of a the divergence with respect to a given metric.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |