Lorene::Sym_tensor_tt Class Reference
[Tensorial fields]

Transverse and traceless symmetric tensors of rank 2. More...

#include <sym_tensor.h>

Inheritance diagram for Lorene::Sym_tensor_tt:
Lorene::Sym_tensor_trans Lorene::Sym_tensor Lorene::Tensor_sym Lorene::Tensor

List of all members.

Public Member Functions

 Sym_tensor_tt (const Map &map, const Base_vect &triad_i, const Metric &met)
 Standard constructor.
 Sym_tensor_tt (const Sym_tensor_tt &)
 Copy constructor.
 Sym_tensor_tt (const Map &map, const Base_vect &triad_i, const Metric &met, FILE *fich)
 Constructor from a file (see Tensor::sauve(FILE*) ).
virtual ~Sym_tensor_tt ()
 Destructor.
virtual void operator= (const Sym_tensor_tt &a)
 Assignment to another Sym_tensor_tt.
virtual void operator= (const Sym_tensor_trans &a)
 Assignment to a Sym_tensor_trans.
virtual void operator= (const Sym_tensor &a)
 Assignment to a Sym_tensor.
virtual void operator= (const Tensor_sym &a)
 Assignment to a Tensor_sym.
virtual void operator= (const Tensor &a)
 Assignment to a Tensor.
void set_rr_eta_mu (const Scalar &hrr, const Scalar &eta_i, const Scalar &mu_i)
 Sets the component $h^{rr}$, as well as the angular potentials $\eta$ and $\mu$ (see members p_eta and p_mu ).
void set_rr_mu (const Scalar &hrr, const Scalar &mu_i)
 Sets the component $h^{rr}$, as well as the angular potential $\mu$ (see member p_mu ).
void set_khi_eta_mu (const Scalar &khi_i, const Scalar &eta_i, const Scalar &mu_i)
 Sets the component $\chi$, as well as the angular potentials $\eta$ and $\mu$ (see members p_khi , p_eta and p_mu ).
void set_khi_mu (const Scalar &khi_i, const Scalar &mu_i, int dzp=0, Param *par1=0x0, Param *par2=0x0, Param *par3=0x0)
 Sets the component $\chi$, as well as the angular potential $\mu$ (see member p_khi and p_mu ).
void set_A_tildeB (const Scalar &a_in, const Scalar &tb_in, Param *par_bc=0x0, Param *par_mat=0x0)
 Assigns the derived members A and $\tilde{B}$.
const Scalarkhi () const
 Gives the field $\chi$ such that the component $h^{rr} = \frac{\chi}{r^2}$.
virtual const Scalareta (Param *par=0x0) const
 Gives the field $\eta$ (see member p_eta ).
Sym_tensor_tt poisson (int dzfin=2) const
 Computes the solution of a tensorial TT Poisson equation with *this $= S^{ij}$ as a source:

\[ \Delta h^{ij} = S^{ij} *\]

.

const Metricget_met_div () const
 Returns the metric with respect to which the divergence and the trace are defined.
void set_tt_trace (const Sym_tensor_tt &a, const Scalar &h, Param *par=0x0)
 Assigns the derived members p_tt and p_trace and updates the components accordingly.
const Scalarthe_trace () const
 Returns the trace of the tensor with respect to metric *met_div.
const Sym_tensor_tttt_part (Param *par=0x0) const
 Returns the transverse traceless part of the tensor, the trace being defined with respect to metric *met_div.
void sol_Dirac_Abound (const Scalar &aaa, Scalar &tilde_mu, Scalar &x_new, Scalar bound_mu, const Param *par_bc)
 Same resolution as sol_Dirac_A, but with inner boundary conditions added.
void sol_Dirac_A2 (const Scalar &aaa, Scalar &tilde_mu, Scalar &x_new, Scalar bound_mu, const Param *par_bc)
 Same resolution as sol_Dirac_Abound, but here the boundary conditions are the degenerate elliptic conditions encontered when solving the Kerr problem.
void sol_Dirac_BC2 (const Scalar &bb, const Scalar &cc, const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Scalar &ww, Scalar bound_eta, double dir, double neum, double rhor, Param *par_bc, Param *par_mat)
 Same resolution as sol_Dirac_tilde_B, but with inner boundary conditions added.
void sol_Dirac_BC3 (const Scalar &bb, const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Scalar &ww, Scalar bound_hrr, Scalar bound_eta, Param *par_bc, Param *par_mat)
 Same resolution as sol_Dirac_Abound, but here the boundary conditions are the degenerate elliptic conditions encontered when solving the Kerr problem.
void sol_Dirac_l01_bound (const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Scalar &bound_hrr, Scalar &bound_eta, Param *par_mat)
void sol_Dirac_l01_2 (const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Param *par_mat)
void trace_from_det_one (const Sym_tensor_tt &htt, double precis=1.e-14, int it_max=100)
 Assigns the derived member p_tt and computes the trace so that *this + the flat metric has a determinant equal to 1.
void set_hrr_mu_det_one (const Scalar &hrr, const Scalar &mu_in, double precis=1.e-14, int it_max=100)
 Assigns the rr component and the derived member $\mu$.
void set_tt_part_det_one (const Sym_tensor_tt &hijtt, const Scalar *h_prev=0x0, Param *par_mat=0x0, double precis=1.e-14, int it_max=100)
 Assignes the TT-part of the tensor.
void set_AtBtt_det_one (const Scalar &a_in, const Scalar &tbtt_in, const Scalar *h_prev=0x0, Param *par_bc=0x0, Param *par_mat=0x0, double precis=1.e-14, int it_max=100)
 Assigns the derived member A and computes $\tilde{B}$ from its TT-part (see Sym_tensor::compute_tilde_B_tt() ).
void set_AtB_trace (const Scalar &a_in, const Scalar &tb_in, const Scalar &trace, Param *par_bc=0x0, Param *par_mat=0x0)
 Assigns the derived members A , $\tilde{B}$ and the trace.
Sym_tensor_trans poisson (const Scalar *h_guess=0x0) const
 Computes the solution of a tensorial transverse Poisson equation with *this $= S^{ij}$ as a source:

\[ \Delta h^{ij} = S^{ij}. *\]

In particular, it makes an iteration on the trace of the result, using Sym_tensor::set_WX_det_one.

void set_longit_trans (const Vector &v, const Sym_tensor_trans &a)
 Assigns the derived members p_longit_pot and p_transverse and updates the components accordingly.
void set_auxiliary (const Scalar &trr, const Scalar &eta_over_r, const Scalar &mu_over_r, const Scalar &www, const Scalar &xxx, const Scalar &ttt)
 Assigns the component $ T^{rr} $ and the derived members p_eta , p_mu , p_www, p_xxx and p_ttt , fro, their values and $ \eta / r$, $\mu / r $.
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 ).
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 ).
const Vectordivergence (const Metric &) const
 Returns the divergence of this with respect to a Metric .
Sym_tensor derive_lie (const Vector &v) const
 Computes the Lie derivative of this with respect to some vector field v.
const Sym_tensor_transtransverse (const Metric &gam, Param *par=0x0, int method_poisson=6) const
 Computes the transverse part ${}^t T^{ij}$ of the tensor with respect to a given metric, transverse meaning divergence-free with respect to that metric.
const Vectorlongit_pot (const Metric &gam, Param *par=0x0, int method_poisson=6) const
 Computes the vector potential $W^i$ of longitudinal part of the tensor (see documentation of method transverse() above).
const Scalarmu (Param *par=0x0) const
 Gives the field $\mu$ (see member p_mu ).
const Scalarwww () const
 Gives the field W (see member p_www ).
const Scalarxxx () const
 Gives the field X (see member p_xxx ).
const Scalarttt () const
 Gives the field T (see member p_ttt ).
const Scalarcompute_A (bool output_ylm=true, Param *par=0x0) const
 Gives the field A (see member p_aaa ).
const Scalarcompute_tilde_B (bool output_ylm=true, Param *par=0x0) const
 Gives the field $\tilde{B}$ (see member p_tilde_b ).
Scalar compute_tilde_B_tt (bool output_ylm=true, Param *par=0x0) const
 Gives the field $\tilde{B}$ (see member p_tilde_b ) associated with the TT-part of the Sym_tensor .
const Scalarcompute_tilde_C (bool output_ylm=true, Param *par=0x0) const
 Gives the field $\tilde{C}$ (see member p_tilde_c ).
int sym_index1 () const
 Number of the first symmetric index (0<= id_sym1 < valence ).
int sym_index2 () const
 Number of the second symmetric index (id_sym1 < id_sym2 < valence ).
virtual int position (const Itbl &ind) const
 Returns the position in the array cmp of a component given by its indices.
virtual Itbl indices (int pos) const
 Returns the indices of a component given by its position in the array cmp .
virtual void sauve (FILE *) const
 Save in a binary file.
const Tensor_symderive_cov (const Metric &gam) const
 Returns the covariant derivative of this with respect to some metric $\gamma$.
const Tensor_symderive_con (const Metric &gam) const
 Returns the "contravariant" derivative of this with respect to some metric $\gamma$, by raising the last index of the covariant derivative (cf.
virtual void set_etat_nondef ()
 Sets the logical state of all components to ETATNONDEF (undefined state).
virtual void set_etat_zero ()
 Sets the logical state of all components to ETATZERO (zero state).
virtual void set_etat_qcq ()
 Sets the logical state of all components to ETATQCQ (ordinary state).
virtual void allocate_all ()
 Performs the memory allocation of all the elements, down to the double arrays of the Tbl s.
virtual 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.
Scalarset (const Itbl &ind)
 Returns the value of a component (read/write version).
Scalarset (int i1, int i2)
 Returns the value of a component for a tensor of valence 2 (read/write version).
Scalarset (int i1, int i2, int i3)
 Returns the value of a component for a tensor of valence 3 (read/write version).
Scalarset (int i1, int i2, int i3, int i4)
 Returns the value of a component for a tensor of valence 4 (read/write version).
void annule_domain (int l)
 Sets the Tensor to zero in a given domain.
virtual void annule (int l_min, int l_max)
 Sets the Tensor to zero in several domains.
void annule_extern_cn (int l_0, int deg)
 Performs a smooth (C^n) transition in a given domain to zero.
virtual void std_spectral_base ()
 Sets the standard spectal bases of decomposition for each component.
virtual void std_spectral_base_odd ()
 Sets the standard odd spectal bases of decomposition for each component.
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).
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).
Tensor up (int ind, const Metric &gam) const
 Computes a new tensor by raising an index of *this.
Tensor down (int ind, const Metric &gam) const
 Computes a new tensor by lowering an index of *this.
Tensor up_down (const Metric &gam) const
 Computes a new tensor by raising or lowering all the indices of *this .
Tensor trace (int ind1, int ind2) const
 Trace on two different type indices.
Tensor trace (int ind1, int ind2, const Metric &gam) const
 Trace with respect to a given metric.
Scalar trace () const
 Trace on two different type indices for a valence 2 tensor.
Scalar trace (const Metric &gam) const
 Trace with respect to a given metric for a valence 2 tensor.
const Mapget_mp () const
 Returns the mapping.
const Base_vectget_triad () const
 Returns the vectorial basis (triad) on which the components are defined.
int get_valence () const
 Returns the valence.
int get_n_comp () const
 Returns the number of stored components.
int get_index_type (int i) const
 Gives the type (covariant or contravariant) of the index number i .
Itbl get_index_type () const
 Returns the types of all the indices.
int & set_index_type (int i)
 Sets the type of the index number i .
Itblset_index_type ()
 Sets the types of all the indices.
const Scalaroperator() (const Itbl &ind) const
 Returns the value of a component (read-only version).
const Scalaroperator() (int i1, int i2) const
 Returns the value of a component for a tensor of valence 2 (read-only version).
const Scalaroperator() (int i1, int i2, int i3) const
 Returns the value of a component for a tensor of valence 3 (read-only version).
const Scalaroperator() (int i1, int i2, int i3, int i4) const
 Returns the value of a component for a tensor of valence 4 (read-only version).
void operator+= (const Tensor &)
 += Tensor
void operator-= (const Tensor &)
 -= Tensor
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.

Protected Member Functions

virtual void del_deriv () const
 Deletes the derived quantities.
void set_der_0x0 () const
 Sets the pointers on derived quantities to 0x0.
void update (int dzp, Param *par1=0x0, Param *par2=0x0)
 Computes the components $h^{r\theta}$, $h^{r\varphi}$, $h^{\theta\theta}$, $h^{\theta\varphi}$ and $h^{\varphi\varphi}$, from $h^{rr}$ and the potentials $\eta$ and $\mu$.
void sol_Dirac_A (const Scalar &aaa, Scalar &tilde_mu, Scalar &xxx, const Param *par_bc=0x0) const
 Solves a system of two coupled first-order PDEs obtained from the divergence-free condition (Dirac gauge) and the requirement that the potential A (see Sym_tensor::p_aaa ) has a given value.
void sol_Dirac_tilde_B (const Scalar &tilde_b, const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Scalar &www, Param *par_bc=0x0, Param *par_mat=0x0) const
 Solves a system of three coupled first-order PDEs obtained from divergence-free conditions (Dirac gauge) and the requirement that the potential $\tilde{B}$ (see Sym_tensor::p_tilde_b ) has a given value.
void sol_Dirac_l01 (const Scalar &hh, Scalar &hrr, Scalar &tilde_eta, Param *par_mat) const
 Solves the same system as Sym_tensor_trans::sol_Dirac_tilde_B but only for $\ell=0,1$.
virtual void del_derive_met (int i) const
 Logical destructor of the derivatives depending on the i-th element of met_depend specific to the class Sym_tensor (p_transverse , etc.
void set_der_met_0x0 (int i) const
 Sets all the i-th components of met_depend specific to the class Sym_tensor (p_transverse , etc.
Scalar get_tilde_B_from_TT_trace (const Scalar &tilde_B_tt_in, const Scalar &trace) const
 Computes $\tilde{B}$ (see Sym_tensor::p_tilde_b ) from its transverse-traceless part and the trace.
Sym_tensorinverse () const
 Returns a pointer on the inverse of the Sym_tensor (seen as a matrix).
void set_dependance (const Metric &) const
 To be used to describe the fact that the derivatives members have been calculated with met .
int get_place_met (const Metric &) const
 Returns the position of the pointer on metre in the array met_depend .
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 ).

Protected Attributes

Scalarp_khi
 Field $\chi$ such that the component $h^{rr} = \frac{\chi}{r^2}$.
const Metric *const met_div
 Metric with respect to which the divergence and the trace are defined.
Scalarp_trace
 Trace with respect to the metric *met_div.
Sym_tensor_ttp_tt
 Traceless part with respect to the metric *met_div.
Sym_tensor_transp_transverse [N_MET_MAX]
 Array of the transverse part ${}^t T^{ij}$ of the tensor with respect to various metrics, transverse meaning divergence-free with respect to a metric.
Vectorp_longit_pot [N_MET_MAX]
 Array of the vector potential of the longitudinal part of the tensor with respect to various metrics (see documentation of member p_transverse.
Scalarp_eta
 Field $\eta$ such that the components $(T^{r\theta}, T^{r\varphi})$ of the tensor are written (has only meaning with spherical components!):

\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} - {1\over\sin\theta} {\partial \mu \over \partial\varphi} \right) *\]

\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta} {\partial \eta \over \partial\varphi} + {\partial \mu \over \partial\theta} \right) *\]

.

Scalarp_mu
 Field $\mu$ such that the components $(T^{r\theta}, T^{r\varphi})$ of the tensor are written (has only meaning with spherical components!):

\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} - {1\over\sin\theta} {\partial \mu \over \partial\varphi} \right) *\]

\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta} {\partial \eta \over \partial\varphi} + {\partial \mu \over \partial\theta} \right) *\]

.

Scalarp_www
 Field W such that the components $T^{\theta\theta}, T^{\varphi\varphi}$ and $T^{\theta\varphi}$ of the tensor are written (has only meaning with spherical components!):

\[ \frac{1}{2}\left(T^{\theta\theta} - T^{\varphi\varphi} \right) = \frac{\partial^2 W}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial W}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 W}{\partial \varphi^2} - 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial X}{\partial \varphi} \right) , *\]

\[ T^{\theta\varphi} = \frac{\partial^2 X}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial X}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 X}{\partial \varphi^2} + 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial W}{\partial \varphi} \right) . *\]

.

Scalarp_xxx
 Field X such that the components $T^{\theta\theta}, T^{\varphi\varphi}$ and $T^{\theta\varphi}$ of the tensor are written (has only meaning with spherical components!):

\[ \frac{1}{2}\left(T^{\theta\theta} - T^{\varphi\varphi} \right) = \frac{\partial^2 W}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial W}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 W}{\partial \varphi^2} - 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial X}{\partial \varphi} \right) , *\]

\[ T^{\theta\varphi} = \frac{\partial^2 X}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial X}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 X}{\partial \varphi^2} + 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial W}{\partial \varphi} \right) . *\]

.

Scalarp_ttt
 Field T defined as $ T = T^{\theta\theta} + T^{\varphi\varphi} $.
Scalarp_aaa
 Field A defined from X and $\mu$ insensitive to the longitudinal part of the Sym_tensor (only for $\ell \geq 2$).
Scalarp_tilde_b
 Field $ \tilde{B}$ defined from $ h^{rr}, \eta, W$ and h insensitive to the longitudinal part of the Sym_tensor.
Scalarp_tilde_c
 Field $ \tilde{C}$ defined from $ h^{rr}, \eta, W$ and h insensitive to the longitudinal part of the Sym_tensor.
int id_sym1
 Number of the first symmetric index (0<= id_sym1 < valence ).
int id_sym2
 Number of the second symmetric index (id_sym1 < id_sym2 < valence ).
const Map *const mp
 Mapping on which the numerical values at the grid points are defined.
int valence
 Valence of the tensor (0 = scalar, 1 = vector, etc...).
const Base_vecttriad
 Vectorial basis (triad) with respect to which the tensor components are defined.
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.
int n_comp
 Number of stored components, depending on the symmetry.
Scalar ** cmp
 Array of size n_comp of pointers onto the components.
const Metricmet_depend [N_MET_MAX]
 Array on the Metric 's which were used to compute derived quantities, like p_derive_cov , etc.
Tensorp_derive_cov [N_MET_MAX]
 Array of pointers on the covariant derivatives of this with respect to various metrics.
Tensorp_derive_con [N_MET_MAX]
 Array of pointers on the contravariant derivatives of this with respect to various metrics.
Tensorp_divergence [N_MET_MAX]
 Array of pointers on the divergence of this with respect to various metrics.

Friends

class Metric
class Sym_tensor
class Tensor_sym
Tensor_sym operator* (const Tensor &, const Tensor_sym &)
Tensor_sym operator* (const Tensor_sym &, const Tensor &)
Tensor operator* (const Tensor &, const Tensor &)
Tensor_sym operator* (const Tensor &, const Tensor_sym &)
Tensor_sym operator* (const Tensor_sym &, const Tensor &)
Tensor_sym operator* (const Tensor_sym &, const Tensor_sym &)
 Tensorial product of two symmetric tensors.
class Scalar
class Vector
ostream & operator<< (ostream &, const Tensor &)
Scalar operator+ (const Tensor &, const Scalar &)
Scalar operator+ (const Scalar &, const Tensor &)
Scalar operator- (const Tensor &, const Scalar &)
Scalar operator- (const Scalar &, const Tensor &)

Detailed Description

Transverse and traceless symmetric tensors of rank 2.

This class is designed to store transverse (divergence-free) and transverse symmetric contravariant tensors of rank 2, with the component expressed in an orthonormal spherical basis $(e_r,e_\theta,e_\varphi)$.()

Definition at line 933 of file sym_tensor.h.


Constructor & Destructor Documentation

Lorene::Sym_tensor_tt::Sym_tensor_tt ( const Map map,
const Base_vect triad_i,
const Metric met 
)

Standard constructor.

Parameters:
map the mapping
triad_i vectorial basis (triad) with respect to which the tensor components are defined
met the metric with respect to which the divergence is defined

Definition at line 78 of file sym_tensor_tt.C.

References set_der_0x0().

Lorene::Sym_tensor_tt::Sym_tensor_tt ( const Sym_tensor_tt source  ) 

Copy constructor.

Definition at line 88 of file sym_tensor_tt.C.

References p_khi, and set_der_0x0().

Lorene::Sym_tensor_tt::Sym_tensor_tt ( const Map map,
const Base_vect triad_i,
const Metric met,
FILE *  fich 
)

Constructor from a file (see Tensor::sauve(FILE*) ).

Parameters:
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.
met the metric with respect to which the divergence is defined
fich file which has been used by the function sauve(FILE*) .

Definition at line 100 of file sym_tensor_tt.C.

References set_der_0x0().

Lorene::Sym_tensor_tt::~Sym_tensor_tt (  )  [virtual]

Destructor.

Definition at line 111 of file sym_tensor_tt.C.

References del_deriv().


Member Function Documentation

void Lorene::Tensor::allocate_all (  )  [virtual, inherited]

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 511 of file tensor.C.

References Lorene::Scalar::allocate_all(), Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.

void Lorene::Tensor::annule ( int  l_min,
int  l_max 
) [virtual, inherited]

Sets the Tensor to zero in several domains.

Parameters:
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 674 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().

void Lorene::Tensor::annule_domain ( int  l  )  [inherited]

Sets the Tensor to zero in a given domain.

Parameters:
l [input] Index of the domain in which the Tensor will be set (logically) to zero.

Definition at line 669 of file tensor.C.

References Lorene::Tensor::annule().

void Lorene::Tensor::annule_extern_cn ( int  l_0,
int  deg 
) [inherited]

Performs a smooth (C^n) transition in a given domain to zero.

Parameters:
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 693 of file tensor.C.

References Lorene::Scalar::allocate_all(), Lorene::Scalar::annule(), Lorene::Itbl::annule_hard(), Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Map::get_mg(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::pow(), Lorene::Map::r, Lorene::Tbl::set(), Lorene::Itbl::set(), Lorene::Scalar::set_domain(), Lorene::Tbl::set_etat_qcq(), Lorene::Scalar::std_spectral_base(), and Lorene::Map::val_r().

void Lorene::Tensor::change_triad ( const Base_vect new_triad  )  [virtual, inherited]
const Scalar & Lorene::Sym_tensor::compute_A ( bool  output_ylm = true,
Param par = 0x0 
) const [inherited]
void Lorene::Tensor::compute_derive_lie ( const Vector v,
Tensor resu 
) const [protected, inherited]
const Scalar & Lorene::Sym_tensor::compute_tilde_B ( bool  output_ylm = true,
Param par = 0x0 
) const [inherited]
Scalar Lorene::Sym_tensor::compute_tilde_B_tt ( bool  output_ylm = true,
Param par = 0x0 
) const [inherited]
const Scalar & Lorene::Sym_tensor::compute_tilde_C ( bool  output_ylm = true,
Param par = 0x0 
) const [inherited]
void Lorene::Tensor::dec_dzpuis ( int  dec = 1  )  [virtual, inherited]

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 811 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.

void Lorene::Sym_tensor_tt::del_deriv (  )  const [protected, virtual]

Deletes the derived quantities.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 124 of file sym_tensor_tt.C.

References p_khi, and set_der_0x0().

void Lorene::Sym_tensor::del_derive_met ( int  i  )  const [protected, virtual, inherited]

Logical destructor of the derivatives depending on the i-th element of met_depend specific to the class Sym_tensor (p_transverse , etc.

..).

Reimplemented from Lorene::Tensor.

Definition at line 323 of file sym_tensor.C.

References Lorene::Tensor::met_depend, Lorene::Sym_tensor::p_longit_pot, Lorene::Sym_tensor::p_transverse, and Lorene::Sym_tensor::set_der_met_0x0().

const Tensor_sym & Lorene::Tensor_sym::derive_con ( const Metric gam  )  const [inherited]

Returns the "contravariant" derivative of this with respect to some metric $\gamma$, by raising the last index of the covariant derivative (cf.

method derive_cov() ) with $\gamma$.

Reimplemented from Lorene::Tensor.

Definition at line 207 of file tensor_sym_calculus.C.

const Tensor_sym & Lorene::Tensor_sym::derive_cov ( const Metric gam  )  const [inherited]

Returns the covariant derivative of this with respect to some metric $\gamma$.

$T$ denoting the tensor represented by this and $\nabla T$ its covariant derivative with respect to the metric $\gamma$, the extra index (with respect to the indices of $T$) of $\nabla T$ is chosen to be the last one. This convention agrees with that of MTW (see Eq. (10.17) of MTW).

Parameters:
gam metric $\gamma$
Returns:
covariant derivative $\nabla T$ of this with respect to the connection $\nabla$ associated with the metric $\gamma$

Reimplemented from Lorene::Tensor.

Definition at line 195 of file tensor_sym_calculus.C.

Sym_tensor Lorene::Sym_tensor::derive_lie ( const Vector v  )  const [inherited]

Computes the Lie derivative of this with respect to some vector field v.

Reimplemented from Lorene::Tensor_sym.

Definition at line 363 of file sym_tensor.C.

References Lorene::Tensor::compute_derive_lie(), Lorene::Tensor::mp, Lorene::Tensor::triad, and Lorene::Tensor::type_indice.

const Vector & Lorene::Sym_tensor::divergence ( const Metric gam  )  const [inherited]

Returns the divergence of this with respect to a Metric .

The indices are assumed to be contravariant.

Reimplemented from Lorene::Tensor.

Definition at line 352 of file sym_tensor.C.

Tensor Lorene::Tensor::down ( int  ind,
const Metric gam 
) const [inherited]

Computes a new tensor by lowering an index of *this.

Parameters:
ind index to be lowered, with the following convention :

  • ind1 = 0 : first index of the tensor
  • ind1 = 1 : second index of the tensor
  • and so on... (ind must be of covariant type (CON )).
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::Tensor::set(), Lorene::Itbl::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.

const Scalar & Lorene::Sym_tensor_tt::eta ( Param par = 0x0  )  const [virtual]
void Lorene::Sym_tensor::exponential_filter_r ( int  lzmin,
int  lzmax,
int  p,
double  alpha = -16. 
) [virtual, inherited]
void Lorene::Sym_tensor::exponential_filter_ylm ( int  lzmin,
int  lzmax,
int  p,
double  alpha = -16. 
) [virtual, inherited]
Itbl Lorene::Tensor::get_index_type (  )  const [inline, inherited]

Returns the types of all the indices.

Returns:
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.

Definition at line 896 of file tensor.h.

References Lorene::Tensor::type_indice.

int Lorene::Tensor::get_index_type ( int  i  )  const [inline, inherited]

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
  • and so on...
Returns:
COV for a covariant index, CON for a contravariant one.

Definition at line 886 of file tensor.h.

References Lorene::Tensor::type_indice.

const Metric& Lorene::Sym_tensor_trans::get_met_div (  )  const [inline, inherited]

Returns the metric with respect to which the divergence and the trace are defined.

Definition at line 672 of file sym_tensor.h.

References Lorene::Sym_tensor_trans::met_div.

const Map& Lorene::Tensor::get_mp (  )  const [inline, inherited]

Returns the mapping.

Definition at line 861 of file tensor.h.

References Lorene::Tensor::mp.

int Lorene::Tensor::get_n_comp (  )  const [inline, inherited]

Returns the number of stored components.

Definition at line 872 of file tensor.h.

References Lorene::Tensor::n_comp.

int Lorene::Tensor::get_place_met ( const Metric metre  )  const [protected, inherited]

Returns the position of the pointer on metre in the array met_depend .

Definition at line 446 of file tensor.C.

References Lorene::Tensor::met_depend.

Scalar Lorene::Sym_tensor::get_tilde_B_from_TT_trace ( const Scalar tilde_B_tt_in,
const Scalar trace 
) const [protected, inherited]
const Base_vect* Lorene::Tensor::get_triad (  )  const [inline, inherited]

Returns the vectorial basis (triad) on which the components are defined.

Definition at line 866 of file tensor.h.

References Lorene::Tensor::triad.

int Lorene::Tensor::get_valence (  )  const [inline, inherited]

Returns the valence.

Definition at line 869 of file tensor.h.

References Lorene::Tensor::valence.

void Lorene::Tensor::inc_dzpuis ( int  inc = 1  )  [virtual, inherited]

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 819 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), and Lorene::Tensor::n_comp.

Itbl Lorene::Tensor_sym::indices ( int  pos  )  const [virtual, inherited]

Returns the indices of a component given by its position in the array cmp .

Parameters:
pos [input] position in the array cmp of the pointer to the Scalar representing a component
Returns:
1-D array of integers (class 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)
  • and so on...

Reimplemented from Lorene::Tensor.

Definition at line 313 of file tensor_sym.C.

References Lorene::Tensor_sym::id_sym1, Lorene::Tensor_sym::id_sym2, Lorene::Tensor::n_comp, Lorene::Itbl::set(), and Lorene::Tensor::valence.

Sym_tensor * Lorene::Sym_tensor::inverse (  )  const [protected, inherited]

Returns a pointer on the inverse of the Sym_tensor (seen as a matrix).

Definition at line 375 of file sym_tensor.C.

References Lorene::Tensor::mp, Lorene::Tensor::operator()(), Lorene::Tensor::set(), Lorene::Sym_tensor::Sym_tensor(), Lorene::Tensor::triad, and Lorene::Tensor::type_indice.

const Scalar & Lorene::Sym_tensor_tt::khi (  )  const

Gives the field $\chi$ such that the component $h^{rr} = \frac{\chi}{r^2}$.

Definition at line 119 of file sym_tensor_tt_etamu.C.

References Lorene::Scalar::mult_r(), p_khi, and Lorene::Tensor::triad.

const Vector & Lorene::Sym_tensor::longit_pot ( const Metric gam,
Param par = 0x0,
int  method_poisson = 6 
) const [inherited]

Computes the vector potential $W^i$ of longitudinal part of the tensor (see documentation of method transverse() above).

Parameters:
gam metric with respect to the transverse decomposition is performed
par parameters for the vector Poisson equation
method_poisson type of method for solving the vector Poisson equation to get the longitudinal part (see method Vector::poisson)

Definition at line 146 of file sym_tensor_decomp.C.

References Lorene::Tensor::dec_dzpuis(), Lorene::Tensor_sym::derive_con(), Lorene::diffrel(), Lorene::Sym_tensor::divergence(), Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::get_place_met(), Lorene::maxabs(), Lorene::Tensor::mp, Lorene::Sym_tensor::p_longit_pot, Lorene::Vector::poisson(), and Lorene::Tensor::set_dependance().

const Scalar & Lorene::Sym_tensor::mu ( Param par = 0x0  )  const [inherited]
const Scalar & Lorene::Tensor::operator() ( int  i1,
int  i2,
int  i3,
int  i4 
) const [inherited]

Returns the value of a component for a tensor of valence 4 (read-only version).

Parameters:
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)
Returns:
reference on the component specified by (i1,i2,i3,i4)

Definition at line 786 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

const Scalar & Lorene::Tensor::operator() ( int  i1,
int  i2,
int  i3 
) const [inherited]

Returns the value of a component for a tensor of valence 3 (read-only version).

Parameters:
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)
Returns:
reference on the component specified by (i1,i2,i3)

Definition at line 774 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

const Scalar & Lorene::Tensor::operator() ( int  i1,
int  i2 
) const [inherited]

Returns the value of a component for a tensor of valence 2 (read-only version).

Parameters:
i1 value of the first index (1, 2 or 3)
i2 value of the second index (1, 2 or 3)
Returns:
reference on the component specified by (i1,i2)

Definition at line 763 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

const Scalar & Lorene::Tensor::operator() ( const Itbl ind  )  const [inherited]

Returns the value of a component (read-only version).

Parameters:
ind 1-D Itbl of size valence containing the values of each index specifing the component, with the following storage convention:

  • ind(0) : value of the first index (1, 2 or 3)
  • ind(1) : value of the second index (1, 2 or 3)
  • and so on...
Returns:
reference on the component specified by ind

Definition at line 801 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Itbl::get_dim(), Lorene::Itbl::get_ndim(), Lorene::Tensor::position(), and Lorene::Tensor::valence.

void Lorene::Tensor::operator+= ( const Tensor t  )  [inherited]
void Lorene::Tensor::operator-= ( const Tensor t  )  [inherited]
void Lorene::Sym_tensor_tt::operator= ( const Tensor a  )  [virtual]

Assignment to a Tensor.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 184 of file sym_tensor_tt.C.

References del_deriv(), and operator=().

void Lorene::Sym_tensor_tt::operator= ( const Tensor_sym a  )  [virtual]

Assignment to a Tensor_sym.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 175 of file sym_tensor_tt.C.

References del_deriv(), and operator=().

void Lorene::Sym_tensor_tt::operator= ( const Sym_tensor a  )  [virtual]

Assignment to a Sym_tensor.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 166 of file sym_tensor_tt.C.

References del_deriv(), and operator=().

void Lorene::Sym_tensor_tt::operator= ( const Sym_tensor_trans a  )  [virtual]

Assignment to a Sym_tensor_trans.

Definition at line 156 of file sym_tensor_tt.C.

References del_deriv(), and operator=().

void Lorene::Sym_tensor_tt::operator= ( const Sym_tensor_tt a  )  [virtual]

Assignment to another Sym_tensor_tt.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 144 of file sym_tensor_tt.C.

References del_deriv(), and p_khi.

Sym_tensor_trans Lorene::Sym_tensor_trans::poisson ( const Scalar h_guess = 0x0  )  const [inherited]
Sym_tensor_tt Lorene::Sym_tensor_tt::poisson ( int  dzfin = 2  )  const
int Lorene::Tensor_sym::position ( const Itbl ind  )  const [virtual, inherited]

Returns the position in the array cmp of a component given by its indices.

Parameters:
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:

  • ind(0) : value of the first index (1, 2 or 3)
  • ind(1) : value of the second index (1, 2 or 3)
  • and so on...
Returns:
position in the array 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(), Lorene::Tensor_sym::id_sym1, Lorene::Tensor_sym::id_sym2, Lorene::Itbl::set(), and Lorene::Tensor::valence.

void Lorene::Tensor_sym::sauve ( FILE *  fd  )  const [virtual, inherited]

Save in a binary file.

Reimplemented from Lorene::Tensor.

Definition at line 375 of file tensor_sym.C.

References Lorene::fwrite_be(), Lorene::Tensor_sym::id_sym1, and Lorene::Tensor_sym::id_sym2.

Scalar & Lorene::Tensor::set ( int  i1,
int  i2,
int  i3,
int  i4 
) [inherited]

Returns the value of a component for a tensor of valence 4 (read/write version).

Parameters:
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)
Returns:
modifiable reference on the component specified by (i1,i2,i3,i4)

Definition at line 640 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

Scalar & Lorene::Tensor::set ( int  i1,
int  i2,
int  i3 
) [inherited]

Returns the value of a component for a tensor of valence 3 (read/write version).

Parameters:
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)
Returns:
modifiable reference on the component specified by (i1,i2,i3)

Definition at line 624 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

Scalar & Lorene::Tensor::set ( int  i1,
int  i2 
) [inherited]

Returns the value of a component for a tensor of valence 2 (read/write version).

Parameters:
i1 value of the first index (1, 2 or 3)
i2 value of the second index (1, 2 or 3)
Returns:
modifiable reference on the component specified by (i1,i2)

Definition at line 609 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::position(), Lorene::Itbl::set(), and Lorene::Tensor::valence.

Scalar & Lorene::Tensor::set ( const Itbl ind  )  [inherited]

Returns the value of a component (read/write version).

Parameters:
ind 1-D Itbl of size valence containing the values of each index specifing the component, with the following storage convention:

  • ind(0) : value of the first index (1, 2 or 3)
  • ind(1) : value of the second index (1, 2 or 3)
  • and so on...
Returns:
modifiable reference on the component specified by ind

Definition at line 657 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.

void Lorene::Sym_tensor_tt::set_A_tildeB ( const Scalar a_in,
const Scalar tb_in,
Param par_bc = 0x0,
Param par_mat = 0x0 
)

Assigns the derived members A and $\tilde{B}$.

Other derived members are deduced from the divergence-and trace-free conditions.

Parameters:
a_in the A potential (see Sym_tensor::p_aaa )
tb_in the $\tilde{B}$ potential (see Sym_tensor::p_tilde_b )

Definition at line 490 of file sym_tensor_tt_etamu.C.

References Lorene::Tensor::mp, Lorene::Sym_tensor_trans::set_AtB_trace(), and Lorene::Scalar::set_etat_zero().

void Lorene::Sym_tensor_trans::set_AtB_trace ( const Scalar a_in,
const Scalar tb_in,
const Scalar trace,
Param par_bc = 0x0,
Param par_mat = 0x0 
) [inherited]

Assigns the derived members A , $\tilde{B}$ and the trace.

Other derived members are deduced from the divergence-free condition.

Parameters:
a_in the A potential (see Sym_tensor::p_aaa )
tb_in the $\tilde{B}$ potential (see Sym_tensor::p_tilde_b )
trace the trace of the Sym_tensor.

Definition at line 305 of file sym_tensor_trans_aux.C.

References Lorene::Scalar::check_dzpuis(), Lorene::Tensor::mp, Lorene::Sym_tensor::p_aaa, Lorene::Sym_tensor::p_tilde_b, Lorene::Sym_tensor::set_auxiliary(), Lorene::Sym_tensor_trans::sol_Dirac_A(), Lorene::Sym_tensor_trans::sol_Dirac_tilde_B(), and Lorene::Tensor::triad.

void Lorene::Sym_tensor_trans::set_AtBtt_det_one ( const Scalar a_in,
const Scalar tbtt_in,
const Scalar h_prev = 0x0,
Param par_bc = 0x0,
Param par_mat = 0x0,
double  precis = 1.e-14,
int  it_max = 100 
) [inherited]

Assigns the derived member A and computes $\tilde{B}$ from its TT-part (see Sym_tensor::compute_tilde_B_tt() ).

Other derived members are deduced from the divergence-free condition. Finally, it computes the trace so that *this + the flat metric has a determinant equal to 1. It then updates the components accordingly. This function makes an iteration until the relative difference in the trace between two steps is lower than precis .

Parameters:
a_in the A potential (see Sym_tensor::p_aaa )
tbtt_in the TT-part of $\tilde{B}$ potential (see Sym_tensor::p_tilde_b and Sym_tensor::compute_tilde_B_tt() )
h_prev a pointer on a guess for the trace of *this; if null, then the iteration starts from 0.
precis relative difference in the trace computation to end the iteration.
it_max maximal number of iterations.

Definition at line 140 of file sym_tensor_trans_aux.C.

References Lorene::abs(), Lorene::Scalar::check_dzpuis(), Lorene::Scalar::get_spectral_base(), Lorene::Sym_tensor::get_tilde_B_from_TT_trace(), Lorene::Tensor::inc_dzpuis(), Lorene::max(), Lorene::Sym_tensor_trans::met_div, Lorene::Tensor::mp, Lorene::Sym_tensor::p_aaa, Lorene::Sym_tensor::p_tilde_b, Lorene::Sym_tensor_trans::p_trace, Lorene::Sym_tensor_trans::p_tt, Lorene::Sym_tensor::set_auxiliary(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_spectral_base(), Lorene::Sym_tensor_trans::sol_Dirac_A(), Lorene::Sym_tensor_trans::sol_Dirac_tilde_B(), and Lorene::Tensor::triad.

void Lorene::Sym_tensor::set_auxiliary ( const Scalar trr,
const Scalar eta_over_r,
const Scalar mu_over_r,
const Scalar www,
const Scalar xxx,
const Scalar ttt 
) [inherited]
void Lorene::Tensor::set_dependance ( const Metric met  )  const [protected, inherited]

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 456 of file tensor.C.

References Lorene::Tensor::met_depend, and Lorene::Metric::tensor_depend.

void Lorene::Sym_tensor_tt::set_der_0x0 (  )  const [protected]

Sets the pointers on derived quantities to 0x0.

Reimplemented from Lorene::Sym_tensor_trans.

Definition at line 134 of file sym_tensor_tt.C.

References p_khi.

void Lorene::Sym_tensor::set_der_met_0x0 ( int  i  )  const [protected, inherited]

Sets all the i-th components of met_depend specific to the class Sym_tensor (p_transverse , etc.

..) to 0x0.

Reimplemented from Lorene::Tensor.

Definition at line 338 of file sym_tensor.C.

References Lorene::Sym_tensor::p_longit_pot, and Lorene::Sym_tensor::p_transverse.

void Lorene::Tensor::set_etat_nondef (  )  [virtual, inherited]

Sets the logical state of all components to ETATNONDEF (undefined state).

Reimplemented in Lorene::Scalar.

Definition at line 492 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_nondef().

void Lorene::Tensor::set_etat_qcq (  )  [virtual, inherited]

Sets the logical state of all components to ETATQCQ (ordinary state).

Reimplemented in Lorene::Scalar.

Definition at line 484 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_qcq().

void Lorene::Tensor::set_etat_zero (  )  [virtual, inherited]

Sets the logical state of all components to ETATZERO (zero state).

Reimplemented in Lorene::Scalar.

Definition at line 500 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::del_deriv(), Lorene::Tensor::n_comp, and Lorene::Scalar::set_etat_zero().

void Lorene::Sym_tensor_trans::set_hrr_mu_det_one ( const Scalar hrr,
const Scalar mu_in,
double  precis = 1.e-14,
int  it_max = 100 
) [inherited]

Assigns the rr component and the derived member $\mu$.

Other derived members are deduced from the divergence-free condition. Finally, it computes T (Sym_tensor::p_ttt ) so that *this + the flat metric has a determinant equal to 1. It then updates the components accordingly. This function makes an iteration until the relative difference in T between two steps is lower than precis .

Parameters:
hrr the rr component of the tensor,
mu_in the $\mu$ potential,
precis relative difference in the trace computation to end the iteration.
it_max maximal number of iterations.

Definition at line 120 of file sym_tensor_trans_aux.C.

References Lorene::Scalar::check_dzpuis(), Lorene::Tensor::dec_dzpuis(), Lorene::Tensor::inc_dzpuis(), Lorene::Sym_tensor_trans::met_div, Lorene::Tensor::mp, Lorene::Sym_tensor::p_mu, set_rr_mu(), Lorene::Sym_tensor_trans::trace_from_det_one(), and Lorene::Tensor::triad.

Itbl& Lorene::Tensor::set_index_type (  )  [inline, inherited]

Sets the types of all the indices.

Returns:
a reference on the 1-D array of integers (class Itbl ) of size valence that can be modified (COV for a covariant one and CON for a contravariant one)

Definition at line 918 of file tensor.h.

References Lorene::Tensor::type_indice.

int& Lorene::Tensor::set_index_type ( int  i  )  [inline, inherited]

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
  • and so on...
Returns:
reference on the type that can be modified (COV for a covariant index, CON for a contravariant one)

Definition at line 909 of file tensor.h.

References Lorene::Itbl::set(), and Lorene::Tensor::type_indice.

void Lorene::Sym_tensor_tt::set_khi_eta_mu ( const Scalar khi_i,
const Scalar eta_i,
const Scalar mu_i 
)

Sets the component $\chi$, as well as the angular potentials $\eta$ and $\mu$ (see members p_khi , p_eta and p_mu ).

The components are updated consistently by a call to the method update() .

Parameters:
khi_i [input] value of $\chi$
eta_i [input] angular potential $\eta$
mu_i [input] angular potential $\mu$

Definition at line 263 of file sym_tensor_tt_etamu.C.

References Lorene::Scalar::get_dzpuis(), Lorene::Sym_tensor::p_eta, p_khi, Lorene::Sym_tensor::p_mu, Lorene::Tensor::triad, and update().

void Lorene::Sym_tensor_tt::set_khi_mu ( const Scalar khi_i,
const Scalar mu_i,
int  dzp = 0,
Param par1 = 0x0,
Param par2 = 0x0,
Param par3 = 0x0 
)

Sets the component $\chi$, as well as the angular potential $\mu$ (see member p_khi and p_mu ).

The angular potential $\eta$ (member p_eta ) is deduced from the divergence free condition. The tensor components are updated consistently by a call to the method update() .

Parameters:
khi_i [input] value of $\chi$
mu_i [input] angular potential $\mu$
dzp [input] dzpuis parameter of the resulting tensor components

Definition at line 291 of file sym_tensor_tt_etamu.C.

References Lorene::Scalar::check_dzpuis(), eta(), Lorene::Tensor::mp, p_khi, Lorene::Sym_tensor::p_mu, Lorene::Tensor::triad, and update().

void Lorene::Sym_tensor::set_longit_trans ( const Vector v,
const Sym_tensor_trans a 
) [inherited]

Assigns the derived members p_longit_pot and p_transverse and updates the components accordingly.

(see the documentation of these derived members for details)

Definition at line 91 of file sym_tensor_decomp.C.

References Lorene::Tensor::dec_dzpuis(), Lorene::Sym_tensor::del_deriv(), Lorene::Tensor::get_index_type(), Lorene::Sym_tensor_trans::get_met_div(), Lorene::Tensor::get_place_met(), Lorene::Vector::ope_killing(), Lorene::Sym_tensor::p_longit_pot, Lorene::Sym_tensor::p_transverse, and Lorene::Tensor::set_dependance().

void Lorene::Sym_tensor_tt::set_rr_eta_mu ( const Scalar hrr,
const Scalar eta_i,
const Scalar mu_i 
)

Sets the component $h^{rr}$, as well as the angular potentials $\eta$ and $\mu$ (see members p_eta and p_mu ).

The other components are updated consistently by a call to the method update() .

Parameters:
hrr [input] value of $h^{rr}$
eta_i [input] angular potential $\eta$
mu_i [input] angular potential $\mu$

Definition at line 218 of file sym_tensor_tt_etamu.C.

References Lorene::Scalar::get_dzpuis(), Lorene::Sym_tensor::p_eta, Lorene::Sym_tensor::p_mu, Lorene::Tensor::triad, and update().

void Lorene::Sym_tensor_tt::set_rr_mu ( const Scalar hrr,
const Scalar mu_i 
)

Sets the component $h^{rr}$, as well as the angular potential $\mu$ (see member p_mu ).

The angular potential $\eta$ (member p_eta ) is deduced from the divergence free condition. The other tensor components are updated consistently by a call to the method update() .

Parameters:
hrr [input] value of $h^{rr}$
mu_i [input] angular potential $\mu$

Definition at line 241 of file sym_tensor_tt_etamu.C.

References eta(), Lorene::Scalar::get_dzpuis(), Lorene::Sym_tensor::p_mu, Lorene::Tensor::triad, and update().

void Lorene::Tensor::set_triad ( const Base_vect new_triad  )  [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 522 of file tensor.C.

References Lorene::Tensor::triad.

void Lorene::Sym_tensor_trans::set_tt_part_det_one ( const Sym_tensor_tt hijtt,
const Scalar h_prev = 0x0,
Param par_mat = 0x0,
double  precis = 1.e-14,
int  it_max = 100 
) [inherited]

Assignes the TT-part of the tensor.

The trace is deduced from the divergence-free condition, through the Dirac system on $ \tilde{B} $, so that *this + the flat metric has a determinant equal to 1. It then updates the components accordingly. This function makes an iteration until the relative difference in the trace between two steps is lower than precis .

Parameters:
hijtt the TT part for this.
h_prev a pointer on a guess for the trace of *this; if null, then the iteration starts from 0.
precis relative difference in the trace computation to end the iteration.
it_max maximal number of iterations.

Definition at line 229 of file sym_tensor_trans_aux.C.

References Lorene::abs(), Lorene::Scalar::div_r(), eta(), Lorene::Scalar::get_spectral_base(), Lorene::Sym_tensor::get_tilde_B_from_TT_trace(), Lorene::Tensor::inc_dzpuis(), Lorene::max(), Lorene::Tensor::mp, Lorene::Sym_tensor::mu(), Lorene::Sym_tensor_trans::p_trace, Lorene::Sym_tensor_trans::p_tt, Lorene::Sym_tensor::set_auxiliary(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_spectral_base(), Lorene::Sym_tensor_trans::sol_Dirac_tilde_B(), Lorene::Tensor::triad, Lorene::Sym_tensor::www(), and Lorene::Sym_tensor::xxx().

void Lorene::Sym_tensor_trans::set_tt_trace ( const Sym_tensor_tt a,
const Scalar h,
Param par = 0x0 
) [inherited]
void Lorene::Sym_tensor_trans::sol_Dirac_A ( const Scalar aaa,
Scalar tilde_mu,
Scalar xxx,
const Param par_bc = 0x0 
) const [protected, inherited]

Solves a system of two coupled first-order PDEs obtained from the divergence-free condition (Dirac gauge) and the requirement that the potential A (see Sym_tensor::p_aaa ) has a given value.

The system reads:

\begin{eqnarray*} \frac{\partial \tilde{\mu}}{\partial r} + \frac{3\tilde{\mu}}{r} + \left( \Delta_{\theta\varphi } + 2\right) X &=& 0;\\ \frac{\partial X}{\partial r} - \frac{\tilde{\mu}}{r} &=& A. \end{eqnarray*}

Note that this is solved only for $\ell \geq 2$ and that $\tilde{\mu} = \mu / r$ (see Sym_tensor::p_mu ).

Parameters:
aaa [input] the source A
tilde_mu [output] the solution $\tilde{\mu}$
xxx [output] the solution X
par_bc [input] Param to control the boundary conditions

Definition at line 85 of file sym_tensor_trans_dirac.C.

References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Diff_id::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_r(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Base_val::mult_x(), R_CHEBP, Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Matrice::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Sym_tensor_trans::sol_Dirac_A2 ( const Scalar aaa,
Scalar tilde_mu,
Scalar x_new,
Scalar  bound_mu,
const Param par_bc 
) [inherited]

Same resolution as sol_Dirac_Abound, but here the boundary conditions are the degenerate elliptic conditions encontered when solving the Kerr problem.

Definition at line 86 of file sym_tensor_trans_dirac_boundfree.C.

References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_r(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Base_val::mult_x(), Lorene::Tbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Sym_tensor_trans::sol_Dirac_Abound ( const Scalar aaa,
Scalar tilde_mu,
Scalar x_new,
Scalar  bound_mu,
const Param par_bc 
) [inherited]

Same resolution as sol_Dirac_A, but with inner boundary conditions added.

For now, only Robyn-type boundary conditions on $\frac {\mu} {r} $ can be imposed.

Definition at line 84 of file sym_tensor_trans_dirac_bound2.C.

References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_r(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Base_val::mult_x(), Lorene::Tbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Sym_tensor_trans::sol_Dirac_BC2 ( const Scalar bb,
const Scalar cc,
const Scalar hh,
Scalar hrr,
Scalar tilde_eta,
Scalar ww,
Scalar  bound_eta,
double  dir,
double  neum,
double  rhor,
Param par_bc,
Param par_mat 
) [inherited]

Same resolution as sol_Dirac_tilde_B, but with inner boundary conditions added.

The difference is here, one has to put B and C values in (and not only $\tilde{B}$). For now, only Robyn-type boundary conditions on $ h^{rr} $ can be imposed.

Definition at line 583 of file sym_tensor_trans_dirac_bound2.C.

References Lorene::Param::add_int_mod(), Lorene::Param::add_itbl_mod(), Lorene::Param::add_matrice_mod(), Lorene::Param::add_tbl_mod(), Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Itbl::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Scalar::annule_l(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Scalar::check_dzpuis(), Lorene::Param::clean_all(), Lorene::Valeur::coef_i(), Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::dsdr(), Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Param::get_int_mod(), Lorene::Param::get_itbl_mod(), Lorene::Diff_id::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Param::get_matrice_mod(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_int_mod(), Lorene::Param::get_n_itbl_mod(), Lorene::Param::get_n_matrice_mod(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_p(), Lorene::Mg3d::get_type_r(), Lorene::Mg3d::get_type_t(), Lorene::Base_val::give_lmax(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Scalar::mult_r_dzpuis(), R_CHEBP, Lorene::Matrice::set(), Lorene::Tbl::set(), Lorene::Itbl::set(), Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Sym_tensor_trans::sol_Dirac_l01(), Lorene::Scalar::std_spectral_base(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Sym_tensor_trans::sol_Dirac_BC3 ( const Scalar bb,
const Scalar hh,
Scalar hrr,
Scalar tilde_eta,
Scalar ww,
Scalar  bound_hrr,
Scalar  bound_eta,
Param par_bc,
Param par_mat 
) [inherited]

Same resolution as sol_Dirac_Abound, but here the boundary conditions are the degenerate elliptic conditions encontered when solving the Kerr problem.

Definition at line 606 of file sym_tensor_trans_dirac_boundfree.C.

References Lorene::Param::add_int_mod(), Lorene::Param::add_itbl_mod(), Lorene::Param::add_matrice_mod(), Lorene::Param::add_tbl_mod(), Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Itbl::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_l(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Scalar::check_dzpuis(), Lorene::Param::clean_all(), Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::dsdr(), Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Param::get_int_mod(), Lorene::Param::get_itbl_mod(), Lorene::Diff_id::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Param::get_matrice_mod(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_int_mod(), Lorene::Param::get_n_itbl_mod(), Lorene::Param::get_n_matrice_mod(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_p(), Lorene::Mg3d::get_type_r(), Lorene::Mg3d::get_type_t(), Lorene::Base_val::give_lmax(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Scalar::mult_r_dzpuis(), R_CHEBP, Lorene::Mtbl_cf::set(), Lorene::Matrice::set(), Lorene::Tbl::set(), Lorene::Itbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Sym_tensor_trans::sol_Dirac_l01 ( const Scalar hh,
Scalar hrr,
Scalar tilde_eta,
Param par_mat 
) const [protected, inherited]
void Lorene::Sym_tensor_trans::sol_Dirac_tilde_B ( const Scalar tilde_b,
const Scalar hh,
Scalar hrr,
Scalar tilde_eta,
Scalar www,
Param par_bc = 0x0,
Param par_mat = 0x0 
) const [protected, inherited]

Solves a system of three coupled first-order PDEs obtained from divergence-free conditions (Dirac gauge) and the requirement that the potential $\tilde{B}$ (see Sym_tensor::p_tilde_b ) has a given value.

The system reads:

\begin{eqnarray*} \frac{\partial T^{rr}}{r} + \frac{3T^{rr}}{r} +\frac{1}{r} \Delta_{\theta\varphi } \tilde{\eta} &=& \frac{h}{r};\\ \frac{\partial \tilde{\eta}}{\partial r} + \frac{3\tilde{\eta}}{r} - \frac{T^{rr}}{2r} + \left( \Delta_{\theta\varphi } + 2\right) \frac{W}{r} &=& -\frac{h}{2r};\\ (\ell + 2) \frac{\partial W}{\partial r} + \ell(\ell + 2) \frac{W}{r} - \frac{2\tilde{\eta}}{r} + \frac{(\ell +2)T}{2r(\ell + 1)} + \frac{1}{2(\ell + 1)} \frac{\partial T}{\partial r} - \frac{T^{rr}} {(\ell + 1)r} &=& \tilde{B} - \frac{1}{2(\ell +1)} \frac{\partial h} {\partial r} - \frac{\ell +2}{\ell +1} \frac{h}{2r}.\end{eqnarray*}

Note that $\tilde{\eta} = \eta / r$ (for definitions, see derived members of Sym_tensor).

Parameters:
tilde_b [input] the source $\tilde{B}$
hh [input] the trace of the tensor
hrr [output] the rr component of the result
tilde_eta [output] the solution $\tilde{\eta}$
www [output] the solution W
par_bc [input] Param to control the boundary conditions
par_mat [input/output] Param in which the operator matrix is stored.

Definition at line 586 of file sym_tensor_trans_dirac.C.

References Lorene::Param::add_int_mod(), Lorene::Param::add_itbl_mod(), Lorene::Param::add_matrice_mod(), Lorene::Param::add_tbl_mod(), Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Itbl::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_l(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Scalar::check_dzpuis(), Lorene::Param::clean_all(), Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::dsdr(), Lorene::Mtbl_cf::dsdx(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Param::get_int(), Lorene::Param::get_int_mod(), Lorene::Param::get_itbl_mod(), Lorene::Diff_id::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_dsdx::get_matrice(), Lorene::Param::get_matrice_mod(), Lorene::Map::get_mg(), Lorene::Param::get_n_int(), Lorene::Param::get_n_int_mod(), Lorene::Param::get_n_itbl_mod(), Lorene::Param::get_n_matrice_mod(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_va(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_p(), Lorene::Mg3d::get_type_r(), Lorene::Mg3d::get_type_t(), Lorene::Base_val::give_lmax(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Scalar::mult_r(), Lorene::Scalar::mult_r_dzpuis(), Lorene::Base_val::mult_x(), R_CHEBP, Lorene::Mtbl_cf::set(), Lorene::Matrice::set(), Lorene::Tbl::set(), Lorene::Itbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Sym_tensor_trans::sol_Dirac_l01(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().

void Lorene::Tensor::spectral_display ( const char *  comment = 0x0,
double  threshold = 1.e-7,
int  precision = 4,
ostream &  ostr = cout 
) const [virtual, inherited]

Displays the spectral coefficients and the associated basis functions of each component.

This function shows only the values greater than a given threshold.

Parameters:
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 877 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Tensor::indices(), Lorene::Tensor::n_comp, Lorene::Scalar::spectral_display(), and Lorene::Tensor::valence.

void Lorene::Tensor::std_spectral_base (  )  [virtual, inherited]
void Lorene::Tensor::std_spectral_base_odd (  )  [virtual, inherited]

Sets the standard odd spectal bases of decomposition for each component.

Currently only implemented for a scalar.

Reimplemented in Lorene::Scalar.

Definition at line 985 of file tensor.C.

References Lorene::Tensor::cmp, Lorene::Scalar::std_spectral_base_odd(), and Lorene::Tensor::valence.

int Lorene::Tensor_sym::sym_index1 (  )  const [inline, inherited]

Number of the first symmetric index (0<= id_sym1 < valence ).

Definition at line 1149 of file tensor.h.

References Lorene::Tensor_sym::id_sym1.

int Lorene::Tensor_sym::sym_index2 (  )  const [inline, inherited]

Number of the second symmetric index (id_sym1 < id_sym2 < valence ).

Definition at line 1154 of file tensor.h.

References Lorene::Tensor_sym::id_sym2.

const Scalar & Lorene::Sym_tensor_trans::the_trace (  )  const [inherited]

Returns the trace of the tensor with respect to metric *met_div.

Definition at line 273 of file sym_tensor_trans.C.

References Lorene::Sym_tensor_trans::met_div, Lorene::Sym_tensor_trans::p_trace, Lorene::Tensor::trace(), and Lorene::Tensor::type_indice.

Scalar Lorene::Tensor::trace ( const Metric gam  )  const [inherited]

Trace with respect to a given metric for a valence 2 tensor.

Parameters:
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.

Scalar Lorene::Tensor::trace (  )  const [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.

Tensor Lorene::Tensor::trace ( int  ind1,
int  ind2,
const Metric gam 
) const [inherited]

Trace with respect to a given metric.

Parameters:
ind1 first index for the contraction, with the following convention :

  • ind1 = 0 : first index of the tensor
  • ind1 = 1 : second index of the tensor
  • and so on...
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.

Tensor Lorene::Tensor::trace ( int  ind1,
int  ind2 
) const [inherited]

Trace on two different type indices.

Parameters:
ind1 first index for the contraction, with the following convention :

  • ind1 = 0 : first index of the tensor
  • ind1 = 1 : second index of the tensor
  • and so on...
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::Tensor::set(), Lorene::Itbl::set(), Lorene::Scalar::set_etat_zero(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.

void Lorene::Sym_tensor_trans::trace_from_det_one ( const Sym_tensor_tt htt,
double  precis = 1.e-14,
int  it_max = 100 
) [inherited]

Assigns the derived member p_tt and computes the trace so that *this + the flat metric has a determinant equal to 1.

It then updates the components accordingly, with a dzpuis = 2. This function makes an iteration until the relative difference in the trace between two steps is lower than precis .

Parameters:
htt the transverse traceless part; all components must have dzpuis = 2.
precis relative difference in the trace computation to end the iteration.
it_max maximal number of iterations.

Definition at line 318 of file sym_tensor_trans.C.

References Lorene::abs(), Lorene::Scalar::check_dzpuis(), Lorene::Tensor::cmp, Lorene::Scalar::dec_dzpuis(), Lorene::Sym_tensor_trans::get_met_div(), Lorene::Tensor::get_n_comp(), Lorene::max(), Lorene::Sym_tensor_trans::met_div, Lorene::Tensor::mp, Lorene::Scalar::set_etat_zero(), and Lorene::Sym_tensor_trans::set_tt_trace().

const Sym_tensor_trans & Lorene::Sym_tensor::transverse ( const Metric gam,
Param par = 0x0,
int  method_poisson = 6 
) const [inherited]

Computes the transverse part ${}^t T^{ij}$ of the tensor with respect to a given metric, transverse meaning divergence-free with respect to that metric.

Denoting *this by $T^{ij}$, we then have

\[ T^{ij} = {}^t T^{ij} + \nabla^i W^j + \nabla^j W^i \qquad\mbox{with}\quad \nabla_j {}^t T^{ij} = 0 *\]

where $\nabla_i$ denotes the covariant derivative with respect to the given metric and $W^i$ is the vector potential of the longitudinal part of $T^{ij}$ (function longit_pot() below)

Parameters:
gam metric with respect to the transverse decomposition is performed
par parameters for the vector Poisson equation
method_poisson type of method for solving the vector Poisson equation to get the longitudinal part (see method Vector::poisson)

Definition at line 113 of file sym_tensor_decomp.C.

References Lorene::Tensor::cmp, Lorene::Tensor::get_place_met(), Lorene::Tensor::inc_dzpuis(), Lorene::Sym_tensor::longit_pot(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Vector::ope_killing(), Lorene::Sym_tensor::p_transverse, Lorene::Tensor::set_dependance(), Lorene::Tensor::triad, and Lorene::Tensor::type_indice.

const Sym_tensor_tt & Lorene::Sym_tensor_trans::tt_part ( Param par = 0x0  )  const [inherited]
const Scalar & Lorene::Sym_tensor::ttt (  )  const [inherited]

Gives the field T (see member p_ttt ).

Definition at line 193 of file sym_tensor_aux.C.

References Lorene::Sym_tensor::p_ttt, and Lorene::Tensor::triad.

Tensor Lorene::Tensor::up ( int  ind,
const Metric gam 
) const [inherited]

Computes a new tensor by raising an index of *this.

Parameters:
ind index to be raised, with the following convention :

  • ind1 = 0 : first index of the tensor
  • ind1 = 1 : second index of the tensor
  • and so on... (ind must be of covariant type (COV )).
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::Tensor::set(), Lorene::Itbl::set(), Lorene::Tensor::triad, Lorene::Tensor::type_indice, and Lorene::Tensor::valence.

Tensor Lorene::Tensor::up_down ( const Metric gam  )  const [inherited]

Computes a new tensor by raising or lowering all the indices of *this .

Parameters:
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.

void Lorene::Sym_tensor_tt::update ( int  dzp,
Param par1 = 0x0,
Param par2 = 0x0 
) [protected]
const Scalar & Lorene::Sym_tensor::www (  )  const [inherited]
const Scalar & Lorene::Sym_tensor::xxx (  )  const [inherited]

Friends And Related Function Documentation

Tensor_sym operator* ( const Tensor_sym a,
const Tensor_sym b 
) [friend, inherited]

Tensorial product of two symmetric tensors.

NB: the output is an object of class Tensor_sym , with the two symmetric indices corresponding to the symmetric indices of tensor a . This means that the symmetries of tensor b indices are not used in the storage, since there is currently no class in Lorene to manage tensors with more than two symmetric indices.

Definition at line 154 of file tensor_sym_calculus.C.


Member Data Documentation

Scalar** Lorene::Tensor::cmp [protected, inherited]

Array of size n_comp of pointers onto the components.

Definition at line 315 of file tensor.h.

int Lorene::Tensor_sym::id_sym1 [protected, inherited]

Number of the first symmetric index (0<= id_sym1 < valence ).

Definition at line 1044 of file tensor.h.

int Lorene::Tensor_sym::id_sym2 [protected, inherited]

Number of the second symmetric index (id_sym1 < id_sym2 < valence ).

Definition at line 1049 of file tensor.h.

const Metric* Lorene::Tensor::met_depend[N_MET_MAX] [mutable, protected, inherited]

Array on the Metric 's which were used to compute derived quantities, like p_derive_cov , etc.

.. The i-th element of this array is the Metric used to compute the i-th element of p_derive_cov , etc..

Definition at line 327 of file tensor.h.

const Metric* const Lorene::Sym_tensor_trans::met_div [protected, inherited]

Metric with respect to which the divergence and the trace are defined.

Definition at line 617 of file sym_tensor.h.

const Map* const Lorene::Tensor::mp [protected, inherited]

Mapping on which the numerical values at the grid points are defined.

Definition at line 295 of file tensor.h.

int Lorene::Tensor::n_comp [protected, inherited]

Number of stored components, depending on the symmetry.

Definition at line 312 of file tensor.h.

Scalar* Lorene::Sym_tensor::p_aaa [mutable, protected, inherited]

Field A defined from X and $\mu$ insensitive to the longitudinal part of the Sym_tensor (only for $\ell \geq 2$).

Its definition reads

\[ A = \frac{\partial X}{\partial r} - \frac{\mu}{r^2}. \]

Definition at line 325 of file sym_tensor.h.

Tensor* Lorene::Tensor::p_derive_con[N_MET_MAX] [mutable, protected, inherited]

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.

Definition at line 343 of file tensor.h.

Tensor* Lorene::Tensor::p_derive_cov[N_MET_MAX] [mutable, protected, inherited]

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.

Definition at line 335 of file tensor.h.

Tensor* Lorene::Tensor::p_divergence[N_MET_MAX] [mutable, protected, inherited]

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.

Definition at line 351 of file tensor.h.

Scalar* Lorene::Sym_tensor::p_eta [mutable, protected, inherited]

Field $\eta$ such that the components $(T^{r\theta}, T^{r\varphi})$ of the tensor are written (has only meaning with spherical components!):

\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} - {1\over\sin\theta} {\partial \mu \over \partial\varphi} \right) *\]

\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta} {\partial \eta \over \partial\varphi} + {\partial \mu \over \partial\theta} \right) *\]

.

Definition at line 263 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor_tt::p_khi [mutable, protected]

Field $\chi$ such that the component $h^{rr} = \frac{\chi}{r^2}$.

Definition at line 941 of file sym_tensor.h.

Vector* Lorene::Sym_tensor::p_longit_pot[N_MET_MAX] [mutable, protected, inherited]

Array of the vector potential of the longitudinal part of the tensor with respect to various metrics (see documentation of member p_transverse.

Definition at line 249 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_mu [mutable, protected, inherited]

Field $\mu$ such that the components $(T^{r\theta}, T^{r\varphi})$ of the tensor are written (has only meaning with spherical components!):

\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} - {1\over\sin\theta} {\partial \mu \over \partial\varphi} \right) *\]

\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta} {\partial \eta \over \partial\varphi} + {\partial \mu \over \partial\theta} \right) *\]

.

Definition at line 277 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_tilde_b [mutable, protected, inherited]

Field $ \tilde{B}$ defined from $ h^{rr}, \eta, W$ and h insensitive to the longitudinal part of the Sym_tensor.

It is defined for each multipolar momentum $\ell \geq 2$ by

\[ \tilde{B} = (\ell + 2) \frac{\partial W}{\partial r} + \ell(\ell + 2) \frac{W}{r} - \frac{2\eta}{r^2} + \frac{(\ell +2)T}{2r(\ell + 1)} + \frac{1}{2(\ell + 1)} \frac{\partial T}{\partial r} - \frac{h^{rr}} {(\ell + 1)r}. \]

Definition at line 337 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_tilde_c [mutable, protected, inherited]

Field $ \tilde{C}$ defined from $ h^{rr}, \eta, W$ and h insensitive to the longitudinal part of the Sym_tensor.

It is defined for each multipolar momentum $\ell \geq 2$ by

\[ \tilde{C} = - (\ell - 1) \frac{\partial W}{\partial r} + (\ell + 1)(\ell - 1) \frac{W}{r} - \frac{2\eta}{r^2} + \frac{(\ell - 1)T}{2r\ell} - \frac{1}{2 \ell } \frac{\partial T}{\partial r} - \frac{h^{rr}} {\ell r}. \]

Definition at line 349 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor_trans::p_trace [mutable, protected, inherited]

Trace with respect to the metric *met_div.

Definition at line 620 of file sym_tensor.h.

Sym_tensor_trans* Lorene::Sym_tensor::p_transverse[N_MET_MAX] [mutable, protected, inherited]

Array of the transverse part ${}^t T^{ij}$ of the tensor with respect to various metrics, transverse meaning divergence-free with respect to a metric.

Denoting *this by $T^{ij}$, we then have

\[ T^{ij} = {}^t T^{ij} + \nabla^i W^j + \nabla^j W^i \qquad\mbox{with}\quad \nabla_j {}^t T^{ij} = 0 *\]

where $\nabla_i$ denotes the covariant derivative with respect to the given metric and $W^i$ is the vector potential of the longitudinal part of $T^{ij}$ (member p_longit_pot below)

Definition at line 242 of file sym_tensor.h.

Sym_tensor_tt* Lorene::Sym_tensor_trans::p_tt [mutable, protected, inherited]

Traceless part with respect to the metric *met_div.

Definition at line 623 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_ttt [mutable, protected, inherited]

Field T defined as $ T = T^{\theta\theta} + T^{\varphi\varphi} $.

Definition at line 318 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_www [mutable, protected, inherited]

Field W such that the components $T^{\theta\theta}, T^{\varphi\varphi}$ and $T^{\theta\varphi}$ of the tensor are written (has only meaning with spherical components!):

\[ \frac{1}{2}\left(T^{\theta\theta} - T^{\varphi\varphi} \right) = \frac{\partial^2 W}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial W}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 W}{\partial \varphi^2} - 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial X}{\partial \varphi} \right) , *\]

\[ T^{\theta\varphi} = \frac{\partial^2 X}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial X}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 X}{\partial \varphi^2} + 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial W}{\partial \varphi} \right) . *\]

.

Definition at line 296 of file sym_tensor.h.

Scalar* Lorene::Sym_tensor::p_xxx [mutable, protected, inherited]

Field X such that the components $T^{\theta\theta}, T^{\varphi\varphi}$ and $T^{\theta\varphi}$ of the tensor are written (has only meaning with spherical components!):

\[ \frac{1}{2}\left(T^{\theta\theta} - T^{\varphi\varphi} \right) = \frac{\partial^2 W}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial W}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 W}{\partial \varphi^2} - 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial X}{\partial \varphi} \right) , *\]

\[ T^{\theta\varphi} = \frac{\partial^2 X}{\partial\theta^2} - \frac{1}{\tan \theta} \frac{\partial X}{\partial \theta} - \frac{1}{\sin^2 \theta} \frac{\partial^2 X}{\partial \varphi^2} + 2\frac{\partial}{\partial \theta} \left( \frac{1}{\sin \theta} \frac{\partial W}{\partial \varphi} \right) . *\]

.

Definition at line 315 of file sym_tensor.h.

const Base_vect* Lorene::Tensor::triad [protected, inherited]

Vectorial basis (triad) with respect to which the tensor components are defined.

Definition at line 303 of file tensor.h.

Itbl Lorene::Tensor::type_indice [protected, inherited]

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.

Definition at line 310 of file tensor.h.

int Lorene::Tensor::valence [protected, inherited]

Valence of the tensor (0 = scalar, 1 = vector, etc...).

Definition at line 298 of file tensor.h.


The documentation for this class was generated from the following files:

Generated on 7 Dec 2019 for LORENE by  doxygen 1.6.1