LORENE
|
Tensor handling *** DEPRECATED : use class Tensor
instead ***.
More...
#include <tenseur.h>
Public Member Functions | |
Tenseur (const Map &map, const Metrique *met=0x0, double weight=0) | |
Constructor for a scalar field. | |
Tenseur (const Cmp &cmp, const Metrique *met=0x0, double weight=0) | |
Constructor for a scalar field and from a Cmp . | |
Tenseur (const Map &map, int val, const Itbl &tipe, const Base_vect &triad_i, const Metrique *met=0x0, double weight=0) | |
Standard constructor. | |
Tenseur (const Map &map, int val, const Itbl &tipe, const Base_vect *triad_i, const Metrique *met=0x0, double weight=0) | |
Standard constructor with the triad passed as a pointer. | |
Tenseur (const Map &map, int val, int tipe, const Base_vect &triad_i, const Metrique *met=0x0, double weight=0) | |
Standard constructor when all the indices are of the same type. | |
Tenseur (const Tenseur &) | |
Copy constructor. | |
Tenseur (const Tenseur_sym &) | |
Constructor from a symmetric tensor. | |
Tenseur (const Map &map, const Base_vect &triad_i, FILE *fich, const Metrique *met=0x0) | |
Constructor from a file (see sauve(FILE*) ). | |
Tenseur (const Map &map, FILE *fich, const Metrique *met=0x0) | |
Constructor from a file for a scalar field (see sauve(FILE*) ). | |
virtual | ~Tenseur () |
Destructor. | |
void | set_etat_nondef () |
Sets the logical state to ETATNONDEF (undefined state). | |
void | set_etat_zero () |
Sets the logical state to ETATZERO (zero state). | |
void | set_etat_qcq () |
Sets the logical state to ETATQCQ (ordinary state). | |
void | allocate_all () |
Sets the logical state to ETATQCQ (ordinary state) and performs the memory allocation of all the elements, down to the double arrays of the Tbl s. | |
void | change_triad (const Base_vect &new_triad) |
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly. | |
void | set_triad (const Base_vect &new_triad) |
Assigns a new vectorial basis (triad) of decomposition. | |
void | set_poids (double weight) |
Sets the weight for a tensor density. | |
void | set_metric (const Metrique &met) |
Sets the pointer on the metric for a tensor density. | |
virtual void | operator= (const Tenseur &tens) |
Assignment to another Tenseur . | |
void | operator= (const Cmp &field) |
Assignment to a Cmp (scalar field only) | |
void | operator= (double) |
Assignment to a double (scalar field only, except for zero) | |
void | operator= (int) |
Assignment to a int (scalar field only, except for zero) | |
Cmp & | set () |
Read/write for a scalar (see also operator= (const Cmp& ) ). | |
Cmp & | set (int) |
Read/write for a vector. | |
Cmp & | set (int, int) |
Read/write for a tensor of valence 2. | |
Cmp & | set (int, int, int) |
Read/write for a tensor of valence 3. | |
Cmp & | set (const Itbl &) |
Read/write in the general case. | |
void | annule (int l) |
Sets the Tenseur to zero in a given domain. | |
void | annule (int l_min, int l_max) |
Sets the Tenseur to zero in several domains. | |
void | set_std_base () |
Set the standard spectal basis of decomposition for each component. | |
void | dec_dzpuis () |
dzpuis -= 1 ; | |
void | inc_dzpuis () |
dzpuis += 1 ; | |
void | dec2_dzpuis () |
dzpuis -= 2 ; | |
void | inc2_dzpuis () |
dzpuis += 2 ; | |
void | mult_r_zec () |
Multiplication by r in the external zone. | |
Tenseur | inverse_poisson_vect (double lambda) const |
Compute ![]() *this , *this being of valence 1. | |
virtual int | donne_place (const Itbl &idx) const |
Returns the position in the Cmp 1-D array c of a component given by its indices. | |
virtual Itbl | donne_indices (int place) const |
Returns the indices of a component given by its position in the Cmp 1-D array c . | |
const Map * | get_mp () const |
Returns pointer on the mapping. | |
const Base_vect * | get_triad () const |
Returns the vectorial basis (triad) on which the components are defined. | |
int | get_etat () const |
Returns the logical state. | |
int | get_valence () const |
Returns the valence. | |
int | get_n_comp () const |
Returns the number of components. | |
int | get_type_indice (int i) const |
Returns the type of the index number i . | |
Itbl | get_type_indice () const |
Returns the types of all the indices. | |
double | get_poids () const |
Returns the weight. | |
const Metrique * | get_metric () const |
Returns a pointer on the metric defining the conformal factor for tensor densities. | |
const Cmp & | operator() () const |
Read only for a scalar. | |
const Cmp & | operator() (int) const |
Read only for a vector. | |
const Cmp & | operator() (int, int) const |
Read only for a tensor of valence 2. | |
const Cmp & | operator() (int, int, int) const |
Read only for a tensor of valence 3. | |
const Cmp & | operator() (const Itbl &) const |
Read only in the general case. | |
void | sauve (FILE *) const |
Save in a file. | |
const Tenseur & | gradient () const |
Returns the gradient of *this (Cartesian coordinates) | |
const Tenseur & | gradient_spher () const |
Returns the gradient of *this (Spherical coordinates) (scalar field only). | |
const Tenseur & | derive_cov (const Metrique &met) const |
Returns the covariant derivative of *this , with respect to met . | |
const Tenseur & | derive_con (const Metrique &) const |
Returns the contravariant derivative of *this , with respect to met . | |
const Tenseur & | carre_scal (const Metrique &) const |
Returns the scalar square of *this , with respect to met . | |
void | poisson_vect (double lambda, Param &par, Tenseur &shift, Tenseur &vect, Tenseur &scal) const |
Solves the vectorial Poisson equation : ![]() | |
void | poisson_vect_tau (double lambda, Param &par, Tenseur &shift, Tenseur &vect, Tenseur &scal) const |
void | poisson_vect_falloff (double lambda, Param &par, Tenseur &shift, Tenseur &vect, Tenseur &scal, int *k_falloff) const |
void | poisson_vect_ylm (double lambda, Param ¶, Tenseur &shift, Tenseur &vecteur, Tenseur &scalaire, int nylm, double *intvec) const |
Tenseur | poisson_vect (double lambda, Tenseur &vect, Tenseur &scal) const |
Solves the vectorial Poisson equation ![]() | |
Tenseur | poisson_vect_tau (double lambda, Tenseur &vect, Tenseur &scal) const |
Tenseur | poisson_vect_falloff (double lambda, Tenseur &vect, Tenseur &scal, int *k_falloff) const |
Tenseur | poisson_vect_ylm (double lambda, Tenseur &vecteur, Tenseur &scalaire, int nylm, double *intvec) const |
void | poisson_vect_oohara (double lambda, Param &par, Tenseur &shift, Tenseur &scal) const |
Solves the vectorial Poisson equation ![]() | |
void | poisson_vect_oohara_tau (double lambda, Param &par, Tenseur &shift, Tenseur &scal) const |
Tenseur | poisson_vect_oohara (double lambda, Tenseur &scal) const |
Solves the vectorial Poisson equation ![]() | |
Tenseur | poisson_vect_oohara_tau (double lambda, Tenseur &scal) const |
void | poisson_vect_regu (int k_div, int nzet, double unsgam1, double lambda, Param &par, Tenseur &shift, Tenseur &vect, Tenseur &scal) const |
Solves the vectorial Poisson equation : ![]() | |
Protected Member Functions | |
bool | verif () const |
Returns false for a tensor density without a defined metric. | |
void | new_der_met () |
Builds the arrays met_depend , p_derive_cov , p_derive_con and p_carre_scal and fills them with null pointers. | |
Tenseur (const Map &map, int val, const Itbl &tipe, int n_comp, const Base_vect &triad_i, const Metrique *met=0x0, double weight=0) | |
Constructor used by the derived classes. | |
Tenseur (const Map &, int val, int tipe, int n_comp, const Base_vect &triad_i, const Metrique *met=0x0, double weight=0) | |
Constructor used by the derived classes when all the indices are of the same type. | |
void | del_t () |
Logical destructor. | |
void | del_derive_met (int i) const |
Logical destructor of the derivatives depending on the i-th element of *met_depend . | |
void | del_derive () const |
Logical destructor of all the derivatives. | |
void | set_der_met_0x0 (int i) const |
Sets the pointers of the derivatives depending on the i-th element of *met_depend to zero (as well as that i-th element). | |
void | set_der_0x0 () const |
Sets the pointers of all the derivatives to zero. | |
virtual void | fait_gradient () const |
Calculates, if needed, the gradient of *this . | |
void | fait_gradient_spher () const |
Calculates, if needed, the gradient of *this in a spherical orthonormal basis (scalar field only). | |
virtual void | fait_derive_cov (const Metrique &met, int i) const |
Calculates, if needed, the covariant derivative of *this , with respect to met . | |
virtual void | fait_derive_con (const Metrique &, int i) const |
Calculates, if needed, the contravariant derivative of *this , with respect to met . | |
void | fait_carre_scal (const Metrique &, int i) const |
Calculates, if needed, the scalar square of *this , with respect to met . | |
void | set_dependance (const Metrique &met) const |
To be used to describe the fact that the derivatives members have been calculated with met . | |
int | get_place_met (const Metrique &metre) const |
Returns the position of the pointer on metre in the array met_depend . | |
Protected Attributes | |
const Map *const | mp |
Reference mapping. | |
int | valence |
Valence. | |
const Base_vect * | triad |
Vectorial basis (triad) with respect to which the tensor components are defined. | |
Itbl | type_indice |
Array of size valence contening the type of each index, COV for a covariant one and CON for a contravariant one. | |
int | n_comp |
Number of components, depending on the symmetry. | |
int | etat |
Logical state ETATZERO , ETATQCQ or ETATNONDEF . | |
Cmp ** | c |
The components. | |
double | poids |
For tensor densities: the weight. | |
const Metrique * | metric |
For tensor densities: the metric defining the conformal factor. | |
const Metrique ** | met_depend |
Array of pointers on the Metrique 's used to calculate derivatives members. | |
Tenseur * | p_gradient |
Pointer on the gradient of *this . | |
Tenseur * | p_gradient_spher |
Pointer on the gradient of *this in a spherical orthonormal basis (scalar field only). | |
Tenseur ** | p_derive_cov |
Array of pointers on the covariant derivatives of *this with respect to the corresponding metric in *met_depend . | |
Tenseur ** | p_derive_con |
Array of pointers on the contravariant derivatives of *this with respect to the corresponding metric in *met_depend . | |
Tenseur ** | p_carre_scal |
Array of pointers on the scalar squares of *this with respect to the corresponding metric in *met_depend . | |
Friends | |
class | Tenseur_sym |
class | Metrique |
ostream & | operator<< (ostream &, const Tenseur &) |
Tenseur | operator* (const Tenseur &, const Tenseur &) |
Tensorial product. | |
Tenseur | operator% (const Tenseur &, const Tenseur &) |
Tensorial product with desaliasing. | |
Tenseur | contract (const Tenseur &, int id1, int id2) |
Self contraction of two indices of a Tenseur . | |
Tenseur | contract (const Tenseur &, int id1, const Tenseur &, int id2) |
Contraction of two Tenseur . | |
Tenseur | contract_desal (const Tenseur &, int id1, const Tenseur &, int id2) |
Tenseur | flat_scalar_prod (const Tenseur &t1, const Tenseur &t2) |
Scalar product of two Tenseur when the metric is ![]() t1 with the first one of t2 , irrespective of the type of these indices. | |
Tenseur | flat_scalar_prod_desal (const Tenseur &t1, const Tenseur &t2) |
Same as flat_scalar_prod but with desaliasing. | |
Tenseur | manipule (const Tenseur &, const Metrique &, int idx) |
Raise or lower the index idx depending on its type, using the given Metrique . | |
Tenseur | manipule (const Tenseur &, const Metrique &) |
Raise or lower all the indices, depending on their type, using the given Metrique . | |
Tenseur | skxk (const Tenseur &) |
Contraction of the last index of (*this) with ![]() ![]() | |
Tenseur | lie_derive (const Tenseur &, const Tenseur &, const Metrique *) |
Lie Derivative of t with respect to x . | |
Tensor handling *** DEPRECATED : use class Tensor
instead ***.
()
This class is intended to store the components of a tensorial field in a specific basis. Tensor densities can also be stored. A tensor density
All this is 3D meaning that the indices go from 0 to 2. Moreover, the components are described in orthonormal bases.
When first constructed, the memory for each component is not allocated.
|
explicit |
Constructor for a scalar field.
Definition at line 209 of file tenseur.C.
References c, n_comp, and new_der_met().
Lorene::Tenseur::Tenseur | ( | const Map & | map, |
int | val, | ||
const Itbl & | tipe, | ||
const Base_vect & | triad_i, | ||
const Metrique * | met = 0x0 , |
||
double | weight = 0 |
||
) |
Standard constructor.
map | the mapping |
val | valence of the tensor |
tipe | 1-D 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 |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
weight | for tensor densities: the weight |
Definition at line 246 of file tenseur.C.
References c, n_comp, new_der_met(), valence, and verif().
Lorene::Tenseur::Tenseur | ( | const Map & | map, |
int | val, | ||
const Itbl & | tipe, | ||
const Base_vect * | triad_i, | ||
const Metrique * | met = 0x0 , |
||
double | weight = 0 |
||
) |
Standard constructor with the triad passed as a pointer.
map | the mapping |
val | valence of the tensor |
tipe | 1-D 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 | pointer on the vectorial basis (triad) with respect to which the tensor components are defined (can be set to 0x0 for a scalar field) |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
weight | for tensor densities: the weight |
Definition at line 268 of file tenseur.C.
References c, n_comp, new_der_met(), triad, and valence.
Lorene::Tenseur::Tenseur | ( | const Map & | map, |
int | val, | ||
int | tipe, | ||
const Base_vect & | triad_i, | ||
const Metrique * | met = 0x0 , |
||
double | weight = 0 |
||
) |
Standard constructor when all the indices are of the same type.
map | the mapping |
val | valence of the tensor |
tipe | the type of the indices. |
triad_i | vectorial basis (triad) with respect to which the tensor components are defined. |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
weight | for tensor densities: the weight |
Definition at line 297 of file tenseur.C.
References c, n_comp, new_der_met(), Lorene::Itbl::set_etat_qcq(), type_indice, valence, and verif().
Copy constructor.
Definition at line 318 of file tenseur.C.
References c, donne_indices(), met_depend, n_comp, new_der_met(), p_carre_scal, p_derive_con, p_derive_cov, p_gradient, p_gradient_spher, Lorene::pow(), set_dependance(), and valence.
|
explicit |
Constructor from a symmetric tensor.
Definition at line 366 of file tenseur.C.
References c, donne_indices(), met_depend, n_comp, new_der_met(), p_carre_scal, p_derive_con, p_derive_cov, p_gradient, Lorene::pow(), set_dependance(), valence, and verif().
Lorene::Tenseur::Tenseur | ( | const Map & | map, |
const Base_vect & | triad_i, | ||
FILE * | fich, | ||
const Metrique * | met = 0x0 |
||
) |
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*) . |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
Definition at line 411 of file tenseur.C.
References Lorene::Base_vect::bvect_from_file(), c, etat, Lorene::fread_be(), mp, n_comp, new_der_met(), poids, triad, and valence.
Constructor from a file for a scalar field (see sauve(FILE*)
).
map | the mapping |
fich | file which has been created by the function sauve(FILE*) . |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
Definition at line 448 of file tenseur.C.
References c, etat, Lorene::fread_be(), mp, n_comp, new_der_met(), poids, triad, and valence.
|
protected |
Constructor used by the derived classes.
map | the mapping |
val | valence of the tensor |
tipe | 1-D 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:
|
n_comp | the number of components. |
triad_i | vectorial basis (triad) with respect to which the tensor components are defined |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
weight | for tensor densities: the weight |
Definition at line 485 of file tenseur.C.
References c, n_comp, new_der_met(), and valence.
|
protected |
Constructor used by the derived classes when all the indices are of the same type.
map | the mapping |
val | valence of the tensor |
tipe | the type of the indices. |
n_comp | the number of components. |
triad_i | vectorial basis (triad) with respect to which the tensor components are defined |
met | for tensor densities only: a pointer on the metric defining the conformal factor |
weight | for tensor densities: the weight |
Definition at line 509 of file tenseur.C.
References c, n_comp, new_der_met(), Lorene::Itbl::set_etat_qcq(), type_indice, and valence.
|
virtual |
Destructor.
Definition at line 533 of file tenseur.C.
References c, del_t(), met_depend, p_carre_scal, p_derive_con, and p_derive_cov.
void Lorene::Tenseur::allocate_all | ( | ) |
Sets the logical state to ETATQCQ
(ordinary state) and 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 Tenseur
-> Cmp
-> Valeur
-> Mtbl
-> Tbl
.
Definition at line 657 of file tenseur.C.
References Lorene::Cmp::allocate_all(), c, n_comp, and set_etat_qcq().
Sets the Tenseur
to zero in several domains.
l_min | [input] The Tenseur 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()
.
Definition at line 905 of file tenseur.C.
References Lorene::Cmp::annule(), annule(), c, etat, mp, n_comp, p_carre_scal, p_derive_con, p_derive_cov, p_gradient, p_gradient_spher, and set_etat_zero().
Returns the scalar square of *this
, with respect to met
.
Definition at line 1577 of file tenseur.C.
References fait_carre_scal(), get_place_met(), p_carre_scal, and set_dependance().
void Lorene::Tenseur::dec2_dzpuis | ( | ) |
void Lorene::Tenseur::dec_dzpuis | ( | ) |
|
protected |
Logical destructor of all the derivatives.
Definition at line 573 of file tenseur.C.
References del_derive_met(), p_gradient, p_gradient_spher, and set_der_0x0().
Logical destructor of the derivatives depending on the i-th element of *met_depend
.
Definition at line 554 of file tenseur.C.
References met_depend, p_carre_scal, p_derive_con, p_derive_cov, and set_der_met_0x0().
|
protected |
Logical destructor.
Definition at line 545 of file tenseur.C.
References c, del_derive(), and n_comp.
Returns the contravariant derivative of *this
, with respect to met
.
Definition at line 1568 of file tenseur.C.
References fait_derive_con(), get_place_met(), p_derive_con, and set_dependance().
Returns the covariant derivative of *this
, with respect to met
.
Definition at line 1554 of file tenseur.C.
References fait_derive_cov(), get_place_met(), gradient(), p_derive_cov, set_dependance(), and valence.
Returns the indices of a component given by its position in the Cmp
1-D array c
.
Itbl
) of size valence
giving the value of each index for the component located at the position place
in the Cmp
1-D array c
. Each element of this Itbl
is 0, 1 or 2, which corresponds to spatial indices 1, 2 or 3 respectively. If
(*this) is a scalar the function returns an undefined Itbl
. Reimplemented in Lorene::Tenseur_sym.
Returns the position in the Cmp
1-D array c
of a component given by its indices.
Cmp
1-D array c
idx
. idx
must be a 1-D Itbl
of size valence
, each element of which must be 0, 1 or 2, corresponding to spatial indices 1, 2 or 3 respectively. Reimplemented in Lorene::Tenseur_sym.
Definition at line 690 of file tenseur.C.
References valence.
Calculates, if needed, the contravariant derivative of *this
, with respect to met
.
The result is in *p_derive_con
[i]
Reimplemented in Lorene::Tenseur_sym.
Definition at line 1499 of file tenseur.C.
References contract, derive_cov(), gradient(), p_derive_con, and valence.
Calculates, if needed, the covariant derivative of *this
, with respect to met
.
The result is in *p_derive_cov
[i]
Reimplemented in Lorene::Tenseur_sym.
Definition at line 1429 of file tenseur.C.
References contract, donne_indices(), etat, gradient(), n_comp, p_derive_cov, poids, set(), type_indice, and valence.
|
protectedvirtual |
Calculates, if needed, the gradient of *this
.
The result is in *p_gradient
Reimplemented in Lorene::Tenseur_sym.
Definition at line 1345 of file tenseur.C.
References donne_indices(), etat, metric, mp, n_comp, p_gradient, poids, set(), set_etat_qcq(), set_etat_zero(), type_indice, and valence.
|
protected |
Calculates, if needed, the gradient of *this
in a spherical orthonormal basis (scalar field only).
The result is in *p_gradient_spher
Definition at line 1392 of file tenseur.C.
References c, Lorene::Cmp::dsdr(), etat, metric, mp, p_gradient_spher, poids, set(), set_etat_qcq(), set_etat_zero(), Lorene::Cmp::srdsdt(), Lorene::Cmp::srstdsdp(), and valence.
|
inline |
|
inline |
|
inline |
Returns the position of the pointer on metre
in the array met_depend
.
Definition at line 598 of file tenseur.C.
References met_depend.
|
inline |
|
inline |
Returns the types of all the indices.
Itbl
of size valence
containing the type of each index, COV
for a covariant one and CON
Definition at line 735 of file tenseur.h.
References type_indice.
Returns 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 Definition at line 726 of file tenseur.h.
References type_indice.
|
inline |
Returns the gradient of *this
(Cartesian coordinates)
Definition at line 1542 of file tenseur.C.
References fait_gradient(), and p_gradient.
Returns the gradient of *this
(Spherical coordinates) (scalar field only).
Definition at line 1548 of file tenseur.C.
References fait_gradient_spher(), and p_gradient_spher.
void Lorene::Tenseur::inc2_dzpuis | ( | ) |
void Lorene::Tenseur::inc_dzpuis | ( | ) |
Compute *this
, *this
being of valence 1.
Definition at line 59 of file tenseur_inv_pois_vect.C.
References contract, dec2_dzpuis(), etat, get_triad(), gradient(), metric, mp, poids, set(), set_etat_qcq(), and valence.
void Lorene::Tenseur::mult_r_zec | ( | ) |
|
protected |
Builds the arrays met_depend
, p_derive_cov
, p_derive_con
and p_carre_scal
and fills them with null pointers.
Definition at line 196 of file tenseur.C.
References met_depend, p_carre_scal, p_derive_con, p_derive_cov, and set_der_0x0().
Read only in the general case.
Definition at line 1071 of file tenseur.C.
References c, donne_place(), etat, Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), mp, and valence.
Assignment to a Cmp
(scalar field only)
Definition at line 761 of file tenseur.C.
References c, metric, poids, set_etat_nondef(), set_etat_qcq(), set_etat_zero(), and valence.
Assignment to another Tenseur
.
Reimplemented in Lorene::Tenseur_sym.
Definition at line 718 of file tenseur.C.
References c, donne_indices(), donne_place(), etat, metric, n_comp, poids, set_etat_nondef(), set_etat_qcq(), set_etat_zero(), triad, type_indice, and valence.
Assignment to a double
(scalar field only, except for zero)
Definition at line 792 of file tenseur.C.
References c, metric, poids, set_etat_qcq(), set_etat_zero(), and valence.
Assignment to a int
(scalar field only, except for zero)
Definition at line 807 of file tenseur.C.
References c, metric, poids, set_etat_qcq(), set_etat_zero(), and valence.
void Lorene::Tenseur::poisson_vect | ( | double | lambda, |
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | vect, | ||
Tenseur & | scal | ||
) | const |
Solves the vectorial Poisson equation :
with
*this
must be given with dzpuis
= 4.
It uses the Shibata scheme, where
with
lambda | [input] ![]() |
par | [input/output] see Map::donne_para_poisson_vect. |
shift | [input] solution ![]() |
shift | [output] solution at this step. |
vect | [input/output] the same thing than for shift but for ![]() |
scal | [input/output] the same thing than for shift but for ![]() |
Definition at line 118 of file tenseur_pde.C.
References etat, get_type_indice(), get_valence(), mp, set(), set_etat_qcq(), set_etat_zero(), set_triad(), skxk, triad, type_indice, and valence.
Solves the vectorial Poisson equation
with
*this
must be given with dzpuis
= 4.
It uses the Shibata scheme, where
with
This version is to be used only with an affine mapping.
lambda | [input] ![]() |
vect | [input] ![]() |
vect | [output] ![]() |
scal | [input/output] the same thing than for shift but for ![]() |
Definition at line 200 of file tenseur_pde.C.
References metric, mp, poids, poisson_vect(), triad, type_indice, and valence.
void Lorene::Tenseur::poisson_vect_falloff | ( | double | lambda, |
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | vect, | ||
Tenseur & | scal, | ||
int * | k_falloff | ||
) | const |
Definition at line 61 of file tenseur_pde_falloff.C.
Tenseur Lorene::Tenseur::poisson_vect_falloff | ( | double | lambda, |
Tenseur & | vect, | ||
Tenseur & | scal, | ||
int * | k_falloff | ||
) | const |
Definition at line 141 of file tenseur_pde_falloff.C.
void Lorene::Tenseur::poisson_vect_oohara | ( | double | lambda, |
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | scal | ||
) | const |
Solves the vectorial Poisson equation
with
*this
must be given with dzpuis
= 3 or 4 and be continuous.
It uses the Oohara scheme, where
with
lambda | [input] ![]() |
par | [input/output] see Map::donne_para_poisson_vect. |
shift | [input] solution ![]() |
shift | [output] solution at this step. |
scal | [input/output] the same thing than for shift but for ![]() |
Definition at line 218 of file tenseur_pde.C.
References contract, etat, get_etat(), get_type_indice(), get_valence(), gradient(), mp, set(), set_etat_qcq(), set_etat_zero(), set_triad(), type_indice, and valence.
Solves the vectorial Poisson equation
with
*this
must be given with dzpuis
= 3 or 4 and be continuous.
This version is to be used only with an affine mapping.
It uses the Oohara scheme, where
with
This version is to be used only with an affine mapping.
lambda | [input] ![]() |
scal | [input] ![]() |
scal | [output] ![]() |
Definition at line 290 of file tenseur_pde.C.
References metric, mp, poids, poisson_vect_oohara(), triad, type_indice, and valence.
void Lorene::Tenseur::poisson_vect_oohara_tau | ( | double | lambda, |
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | scal | ||
) | const |
Definition at line 406 of file tenseur_pde.C.
Definition at line 476 of file tenseur_pde.C.
void Lorene::Tenseur::poisson_vect_regu | ( | int | k_div, |
int | nzet, | ||
double | unsgam1, | ||
double | lambda, | ||
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | vect, | ||
Tenseur & | scal | ||
) | const |
Solves the vectorial Poisson equation :
with
*this
must be given with dzpuis
= 4.
It uses the Shibata scheme, where
with
k_div | [input] regularization degree. |
nzet | [input] number of domains covering a star. |
unsgam1 | [input] ![]() |
lambda | [input] ![]() |
par | [input/output] see Map::donne_para_poisson_vect. |
shift | [input] solution ![]() |
shift | [output] solution at this step. |
vect | [input/output] the same thing than for shift but for ![]() |
scal | [input/output] the same thing than for shift but for ![]() |
Definition at line 71 of file tenseur_pde_regu.C.
References etat, get_type_indice(), get_valence(), metric, mp, poids, set(), set_etat_qcq(), set_etat_zero(), set_triad(), skxk, triad, type_indice, and valence.
void Lorene::Tenseur::poisson_vect_tau | ( | double | lambda, |
Param & | par, | ||
Tenseur & | shift, | ||
Tenseur & | vect, | ||
Tenseur & | scal | ||
) | const |
Definition at line 306 of file tenseur_pde.C.
Definition at line 388 of file tenseur_pde.C.
void Lorene::Tenseur::poisson_vect_ylm | ( | double | lambda, |
Param & | para, | ||
Tenseur & | shift, | ||
Tenseur & | vecteur, | ||
Tenseur & | scalaire, | ||
int | nylm, | ||
double * | intvec | ||
) | const |
Definition at line 58 of file tenseur_pde_ylm.C.
Tenseur Lorene::Tenseur::poisson_vect_ylm | ( | double | lambda, |
Tenseur & | vecteur, | ||
Tenseur & | scalaire, | ||
int | nylm, | ||
double * | intvec | ||
) | const |
Definition at line 149 of file tenseur_pde_ylm.C.
Save in a file.
Definition at line 1325 of file tenseur.C.
References c, etat, Lorene::fwrite_be(), n_comp, poids, Lorene::Itbl::sauve(), sauve(), triad, type_indice, and valence.
Cmp & Lorene::Tenseur::set | ( | ) |
Read/write in the general case.
Definition at line 884 of file tenseur.C.
References c, del_derive(), donne_place(), etat, Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), and valence.
Read/write for a tensor of valence 2.
Definition at line 845 of file tenseur.C.
References c, del_derive(), donne_place(), etat, and valence.
Read/write for a tensor of valence 3.
Definition at line 864 of file tenseur.C.
References c, del_derive(), donne_place(), etat, Lorene::Itbl::set(), Lorene::Itbl::set_etat_qcq(), and valence.
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 608 of file tenseur.C.
References met_depend.
|
protected |
Sets the pointers of all the derivatives to zero.
Definition at line 591 of file tenseur.C.
References p_gradient, p_gradient_spher, and set_der_met_0x0().
Sets the pointers of the derivatives depending on the i-th element of *met_depend
to zero (as well as that i-th element).
Definition at line 583 of file tenseur.C.
References met_depend, p_carre_scal, p_derive_con, and p_derive_cov.
void Lorene::Tenseur::set_etat_nondef | ( | ) |
void Lorene::Tenseur::set_etat_qcq | ( | ) |
void Lorene::Tenseur::set_etat_zero | ( | ) |
void Lorene::Tenseur::set_std_base | ( | ) |
Set the standard spectal basis of decomposition for each component.
To be used only with valence
strictly lower than 3.
Definition at line 1170 of file tenseur.C.
References c, donne_indices(), etat, mp, n_comp, Lorene::Itbl::set_etat_qcq(), Lorene::Cmp::std_base_scal(), triad, Lorene::Cmp::va, and valence.
Assigns a new vectorial basis (triad) of decomposition.
NB: this function modifies only the member triad
and leave unchanged the components (member c
). In order to change them coherently with the new basis, the function change_triad
(const Base_vect&) must be called instead.
Definition at line 674 of file tenseur.C.
References triad.
|
protected |
Contraction of two Tenseur
.
The two indices must be of different type, i.e. covariant and contravariant, or contravariant and covariant.
id1 | [input] number of the index of contraction for the first Tenseur ; id1 must be strictly lower than the valence of the tensor and obeys the following convention:
|
id2 | [input] number of index of contraction for the second one; id2 must be strictly lower than the valence of the tensor and obeys the following convention:
|
Definition at line 348 of file tenseur_operateur.C.
Self contraction of two indices of a Tenseur
.
The two indices must be of different type, i.e. covariant and contravariant, or contravariant and covariant.
id1 | [input] number of the first index for the contraction; id1 must be strictly lower than the valence of the tensor and obeys the following convention:
|
id2 | [input] number of the second index for the contraction; id2 must be strictly lower than the valence of the tensor and obeys the following convention:
|
Definition at line 279 of file tenseur_operateur.C.
Definition at line 428 of file tenseur_operateur.C.
Scalar product of two Tenseur
when the metric is t1
with the first one of t2
, irrespective of the type of these indices.
Definition at line 653 of file tenseur_operateur.C.
Same as flat_scalar_prod
but with desaliasing.
Definition at line 735 of file tenseur_operateur.C.
Lie Derivative of t
with respect to x
.
If no other argument is given, it uses partial derivatives with respect to cartesian coordinates to calculate the result (this is the default). Otherwise, it uses the covariant derivative associated to the metric given as last argument.
Definition at line 816 of file tenseur_operateur.C.
Raise or lower all the indices, depending on their type, using the given Metrique
.
Definition at line 562 of file tenseur_operateur.C.
Raise or lower the index idx
depending on its type, using the given Metrique
.
Definition at line 509 of file tenseur_operateur.C.
Tensorial product with desaliasing.
Definition at line 199 of file tenseur_operateur.C.
Tensorial product.
Definition at line 119 of file tenseur_operateur.C.
Contraction of the last index of (*this) with
The calculation is performed to avoid singularities in the external zone. This is done only for a flat metric.
Definition at line 580 of file tenseur_operateur.C.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |