|
LORENE
|
Transverse symmetric tensors of rank 2. More...
#include <sym_tensor.h>
Public Member Functions | |
| Sym_tensor_trans (const Map &map, const Base_vect &triad_i, const Metric &met) | |
| Standard constructor. | |
| Sym_tensor_trans (const Sym_tensor_trans &) | |
| Copy constructor. | |
| Sym_tensor_trans (const Map &map, const Base_vect &triad_i, const Metric &met, FILE *fich) | |
Constructor from a file (see Tensor::sauve(FILE*) ). | |
| virtual | ~Sym_tensor_trans () |
| Destructor. | |
| const Metric & | get_met_div () const |
| Returns the metric with respect to which the divergence and the trace are defined. | |
| virtual void | operator= (const Sym_tensor_trans &a) |
Assignment to another 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_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 Scalar & | the_trace () const |
Returns the trace of the tensor with respect to metric *met_div. | |
| const Sym_tensor_tt & | tt_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 | sol_elliptic_ABC (Sym_tensor &source, Scalar aaa, Scalar bbb, Scalar ccc) |
| Finds spectral potentials A, B, C of solution of an tensorial TT elliptic equation, given the source. | |
| 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 ![]() | |
| 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 ![]() 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 , ![]() | |
| Sym_tensor_trans | poisson (const Scalar *h_guess=0x0) const |
Computes the solution of a tensorial transverse Poisson equation with *this ![]() | |
| 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 ![]() p_eta , p_mu , p_www, p_xxx and p_ttt , fro, their values and ![]() ![]() | |
| 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 Vector & | divergence (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_trans & | transverse (const Metric &gam, Param *par=0x0, int method_poisson=6) const |
Computes the transverse part ![]() | |
| const Vector & | longit_pot (const Metric &gam, Param *par=0x0, int method_poisson=6) const |
Computes the vector potential ![]() transverse() above). | |
| virtual const Scalar & | eta (Param *par=0x0) const |
Gives the field ![]() p_eta ). | |
| const Scalar & | mu (Param *par=0x0) const |
Gives the field ![]() p_mu ). | |
| const Scalar & | www () const |
Gives the field W (see member p_www ). | |
| const Scalar & | xxx () const |
Gives the field X (see member p_xxx ). | |
| const Scalar & | ttt () const |
Gives the field T (see member p_ttt ). | |
| const Scalar & | compute_A (bool output_ylm=true, Param *par=0x0) const |
Gives the field A (see member p_aaa ). | |
| const Scalar & | compute_tilde_B (bool output_ylm=true, Param *par=0x0) const |
Gives the field ![]() p_tilde_b ). | |
| Scalar | compute_tilde_B_tt (bool output_ylm=true, Param *par=0x0) const |
Gives the field ![]() p_tilde_b ) associated with the TT-part of the Sym_tensor . | |
| const Scalar & | compute_tilde_C (bool output_ylm=true, Param *par=0x0) const |
Gives the field ![]() 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_sym & | derive_cov (const Metric &gam) const |
Returns the covariant derivative of this with respect to some metric ![]() | |
| const Tensor_sym & | derive_con (const Metric &gam) const |
Returns the "contravariant" derivative of this with respect to some metric ![]() | |
| 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. | |
| Scalar & | set (const Itbl &ind) |
| Returns the value of a component (read/write version). | |
| Scalar & | set (int i1, int i2) |
| Returns the value of a component for a tensor of valence 2 (read/write version). | |
| Scalar & | set (int i1, int i2, int i3) |
| Returns the value of a component for a tensor of valence 3 (read/write version). | |
| Scalar & | set (int i1, int i2, int i3, int i4) |
| Returns the value of a component for a tensor of valence 4 (read/write version). | |
| 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 Map & | get_mp () const |
| Returns the mapping. | |
| const Base_vect * | get_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 . | |
| Itbl & | set_index_type () |
| Sets the types of all the indices. | |
| const Scalar & | operator() (const Itbl &ind) const |
| Returns the value of a component (read-only version). | |
| const Scalar & | operator() (int i1, int i2) const |
| Returns the value of a component for a tensor of valence 2 (read-only version). | |
| const Scalar & | operator() (int i1, int i2, int i3) const |
| Returns the value of a component for a tensor of valence 3 (read-only version). | |
| const Scalar & | operator() (int i1, int i2, int i3, int i4) const |
| Returns the value of a component for a tensor of valence 4 (read-only version). | |
| 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 | 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 ![]() 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 ![]() | |
| 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...) to 0x0. | |
| Scalar | get_tilde_B_from_TT_trace (const Scalar &tilde_B_tt_in, const Scalar &trace) const |
Computes ![]() Sym_tensor::p_tilde_b ) from its transverse-traceless part and the trace. | |
| Sym_tensor * | inverse () 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 | |
| const Metric *const | met_div |
| Metric with respect to which the divergence and the trace are defined. | |
| Scalar * | p_trace |
Trace with respect to the metric *met_div. | |
| Sym_tensor_tt * | p_tt |
Traceless part with respect to the metric *met_div. | |
| Sym_tensor_trans * | p_transverse [N_MET_MAX] |
Array of the transverse part ![]() | |
| Vector * | p_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. | |
| Scalar * | p_eta |
Field ![]() ![]() | |
| Scalar * | p_mu |
Field ![]() ![]() | |
| Scalar * | p_www |
Field W such that the components ![]() ![]() | |
| Scalar * | p_xxx |
Field X such that the components ![]() ![]() | |
| Scalar * | p_ttt |
Field T defined as ![]() | |
| Scalar * | p_aaa |
Field A defined from X and ![]() Sym_tensor (only for ![]() | |
| Scalar * | p_tilde_b |
Field ![]() ![]() Sym_tensor. | |
| Scalar * | p_tilde_c |
Field ![]() ![]() 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_vect * | triad |
| 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 Metric * | met_depend [N_MET_MAX] |
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. | |
| Tensor * | p_derive_cov [N_MET_MAX] |
Array of pointers on the covariant derivatives of this with respect to various metrics. | |
| Tensor * | p_derive_con [N_MET_MAX] |
Array of pointers on the contravariant derivatives of this with respect to various metrics. | |
| Tensor * | p_divergence [N_MET_MAX] |
Array of pointers on the divergence of this with respect to various metrics. | |
Transverse symmetric tensors of rank 2.
()
This class is designed to store transverse (divergence-free) symmetric contravariant tensors of rank 2, with the component expressed in an orthonormal spherical basis 
Definition at line 608 of file sym_tensor.h.
| Lorene::Sym_tensor_trans::Sym_tensor_trans | ( | const Map & | map, |
| const Base_vect & | triad_i, | ||
| const Metric & | met ) |
Standard constructor.
| 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 114 of file sym_tensor_trans.C.
References Lorene::Map(), met_div, set_der_0x0(), and Lorene::Sym_tensor::Sym_tensor().
| Lorene::Sym_tensor_trans::Sym_tensor_trans | ( | const Sym_tensor_trans & | source | ) |
Copy constructor.
Definition at line 125 of file sym_tensor_trans.C.
References met_div, p_trace, p_tt, set_der_0x0(), Lorene::Sym_tensor::Sym_tensor(), and Sym_tensor_trans().
| Lorene::Sym_tensor_trans::Sym_tensor_trans | ( | const Map & | map, |
| const Base_vect & | triad_i, | ||
| const Metric & | met, | ||
| FILE * | fich ) |
Constructor from a file (see Tensor::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. |
| 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 139 of file sym_tensor_trans.C.
References Lorene::Map(), met_div, set_der_0x0(), and Lorene::Sym_tensor::Sym_tensor().
|
virtual |
|
inherited |
Gives the field A (see member p_aaa ).
| output_ylm | a flag to control the spectral decomposition base of the result: if true (default) the spherical harmonics base is used. |
Definition at line 316 of file sym_tensor_aux.C.
References Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::div_tant(), Lorene::dsdr(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Tensor::mp, Lorene::Tensor::operator()(), p_aaa, Lorene::Scalar::poisson_angu(), Lorene::Scalar::stdsdp(), Lorene::Tensor::triad, and xxx().
|
inherited |
Gives the field 
p_tilde_b ).
| output_ylm | a flag to control the spectral decomposition base of the result: if true (default) the spherical harmonics base is used. |
Definition at line 362 of file sym_tensor_aux.C.
References Lorene::Scalar::annule_hard(), Lorene::Valeur::c_cf, Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::div_tant(), Lorene::Scalar::dsdr(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Base_val::give_quant_numbers(), Lorene::Tensor::mp, Lorene::Tensor::operator()(), p_tilde_b, Lorene::Scalar::poisson_angu(), Lorene::Scalar::set_spectral_va(), Lorene::Scalar::stdsdp(), Lorene::Tensor::triad, ttt(), www(), and Lorene::Valeur::ylm().
|
inherited |
Gives the field 
p_tilde_b ) associated with the TT-part of the Sym_tensor .
| output_ylm | a flag to control the spectral decomposition base of the result: if true (default) the spherical harmonics base is used. |
Definition at line 478 of file sym_tensor_aux.C.
References Lorene::Scalar::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, compute_tilde_B(), Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::dsdr(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Base_val::give_quant_numbers(), Lorene::Tensor::mp, Lorene::Tensor::operator()(), Lorene::Mtbl_cf::set(), Lorene::Scalar::set_dzpuis(), Lorene::Scalar::set_spectral_va(), ttt(), Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().
|
inherited |
Gives the field 
p_tilde_c ).
| output_ylm | a flag to control the spectral decomposition base of the result: if true (default) the spherical harmonics base is used. |
Definition at line 596 of file sym_tensor_aux.C.
References Lorene::Scalar::annule_hard(), Lorene::Valeur::c_cf, Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::div_tant(), Lorene::Scalar::dsdr(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Base_val::give_quant_numbers(), Lorene::Tensor::mp, Lorene::Tensor::operator()(), p_tilde_c, Lorene::Scalar::poisson_angu(), Lorene::Scalar::set_spectral_va(), Lorene::Scalar::stdsdp(), Lorene::Tensor::triad, ttt(), www(), and Lorene::Valeur::ylm().
|
protectedvirtual |
Deletes the derived quantities.
Reimplemented from Lorene::Sym_tensor.
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 164 of file sym_tensor_trans.C.
References Lorene::Sym_tensor::del_deriv(), p_trace, p_tt, and set_der_0x0().
|
protectedvirtualinherited |
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 320 of file sym_tensor.C.
References Lorene::Tensor::del_derive_met(), Lorene::Tensor::met_depend, p_longit_pot, p_transverse, and set_der_met_0x0().
|
inherited |
Computes the Lie derivative of this with respect to some vector field v.
Definition at line 360 of file sym_tensor.C.
References Lorene::Tensor::compute_derive_lie(), Lorene::Tensor::mp, Sym_tensor(), Lorene::Tensor::triad, and Lorene::Tensor::type_indice.
|
inherited |
Returns the divergence of this with respect to a Metric .
The indices are assumed to be contravariant.
Definition at line 349 of file sym_tensor.C.
References Lorene::Tensor::divergence().
Gives the field 
p_eta ).
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 111 of file sym_tensor_aux.C.
References Lorene::Scalar::div_tant(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Tensor::mp, Lorene::Scalar::mult_r_dzpuis(), Lorene::Tensor::operator()(), p_eta, Lorene::Scalar::poisson_angu(), Lorene::Scalar::stdsdp(), and Lorene::Tensor::triad.
|
virtualinherited |
Applies exponential filters to all components (see Scalar::exponential_filter_r ).
Does a loop for Cartesian components, and works in terms of the rr-component, 

W, X, T for spherical components.
Reimplemented from Lorene::Tensor.
Definition at line 446 of file sym_tensor.C.
References Lorene::Tensor::cmp, Lorene::Scalar::div_r(), eta(), Lorene::Scalar::exponential_filter_r(), exponential_filter_r(), Lorene::Tensor::mp, mu(), Lorene::Tensor::n_comp, Lorene::Tensor::operator()(), set_auxiliary(), Lorene::Tensor::triad, ttt(), www(), and xxx().
|
virtualinherited |
Applies exponential filters to all components (see Scalar::exponential_filter_ylm ).
Does a loop for Cartesian components, and works in terms of the r-component, 

W, X, T for spherical components.
Reimplemented from Lorene::Tensor.
Definition at line 471 of file sym_tensor.C.
References Lorene::Tensor::cmp, Lorene::Scalar::div_r(), eta(), Lorene::Scalar::exponential_filter_ylm(), exponential_filter_ylm(), Lorene::Tensor::mp, mu(), Lorene::Tensor::n_comp, Lorene::Tensor::operator()(), set_auxiliary(), Lorene::Tensor::triad, ttt(), www(), and xxx().
|
inline |
Returns the metric with respect to which the divergence and the trace are defined.
Definition at line 669 of file sym_tensor.h.
References met_div.
|
protectedinherited |
Computes 
Sym_tensor::p_tilde_b ) from its transverse-traceless part and the trace.
Definition at line 531 of file sym_tensor_aux.C.
References Lorene::Scalar::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Scalar::div_r_dzpuis(), Lorene::Scalar::dsdr(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Scalar::get_spectral_base(), Lorene::Scalar::get_spectral_va(), Lorene::Base_val::give_quant_numbers(), Lorene::Tensor::mp, Lorene::Base_val::mult_x(), Lorene::Tensor::operator()(), Lorene::Mtbl_cf::set(), Lorene::Scalar::set_dzpuis(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), Lorene::Tensor::triad, and Lorene::Valeur::ylm().
|
protectedinherited |
Returns a pointer on the inverse of the Sym_tensor
(seen as a matrix).
Definition at line 372 of file sym_tensor.C.
References Lorene::Tensor::mp, Lorene::Tensor::operator()(), Lorene::Tensor::set(), Sym_tensor(), Lorene::Tensor::triad, and Lorene::Tensor::type_indice.
|
inherited |
Computes the vector potential 
transverse() above).
| 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 143 of file sym_tensor_decomp.C.
References Lorene::Tensor::dec_dzpuis(), Lorene::Tensor::derive_con(), Lorene::diffrel(), divergence(), Lorene::Tensor::divergence(), Lorene::Vector::divergence(), Lorene::Tensor::get_place_met(), Lorene::maxabs(), Lorene::Tensor::mp, p_longit_pot, Lorene::Vector::poisson(), and Lorene::Tensor::set_dependance().
Gives the field 
p_mu ).
Definition at line 151 of file sym_tensor_aux.C.
References Lorene::Scalar::div_tant(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Tensor::mp, Lorene::Scalar::mult_r_dzpuis(), Lorene::Tensor::operator()(), p_mu, Lorene::Scalar::poisson_angu(), Lorene::Scalar::stdsdp(), and Lorene::Tensor::triad.
|
virtual |
Assignment to a Sym_tensor.
Reimplemented from Lorene::Sym_tensor.
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 202 of file sym_tensor_trans.C.
References del_deriv(), Lorene::Sym_tensor::operator=(), and Lorene::Sym_tensor::Sym_tensor().
|
virtual |
Assignment to another Sym_tensor_trans.
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 186 of file sym_tensor_trans.C.
References del_deriv(), met_div, Lorene::Sym_tensor::operator=(), p_trace, p_tt, and Sym_tensor_trans().
|
virtual |
Assignment to a Tensor.
Reimplemented from Lorene::Sym_tensor.
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 225 of file sym_tensor_trans.C.
References del_deriv(), and Lorene::Sym_tensor::operator=().
|
virtual |
Assignment to a Tensor_sym.
Reimplemented from Lorene::Sym_tensor.
Reimplemented in Lorene::Sym_tensor_tt.
Definition at line 213 of file sym_tensor_trans.C.
References del_deriv(), and Lorene::Sym_tensor::operator=().
| Sym_tensor_trans Lorene::Sym_tensor_trans::poisson | ( | const Scalar * | h_guess = 0x0 | ) | const |
Computes the solution of a tensorial transverse Poisson equation with *this 
![\[ \Delta h^{ij} = S^{ij}.
*\]](form_849.png)
In particular, it makes an iteration on the trace of the result, using Sym_tensor::set_WX_det_one.
| h_guess | a pointer on a guess for the trace of the result; it is passed to Sym_tensor::set_WX_det_one. |


Definition at line 99 of file sym_tensor_trans_pde.C.
References Lorene::Scalar::allocate_all(), Lorene::Tensor::change_triad(), Lorene::Sym_tensor::compute_A(), Lorene::Sym_tensor::compute_tilde_B_tt(), Lorene::Tensor::dec_dzpuis(), Lorene::Sym_tensor::divergence(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Mg3d::get_non_axi(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_base(), Lorene::Mg3d::get_type_r(), Lorene::maxabs(), met_div, Lorene::Tensor::mp, Lorene::Tensor::operator()(), poisson(), Lorene::Tensor::set(), set_AtBtt_det_one(), Lorene::Scalar::set_dzpuis(), Lorene::Scalar::set_etat_one(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_grid_point(), Lorene::Scalar::set_spectral_base(), Lorene::Tensor::std_spectral_base(), Lorene::Sym_tensor::Sym_tensor(), Sym_tensor_trans(), Lorene::Tensor::triad, and Lorene::Scalar::val_grid_point().
| 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 ) |
Assigns the derived members A , 
Other derived members are deduced from the divergence-free condition.
| a_in | the A potential (see Sym_tensor::p_aaa ) |
| tb_in | the ![]() Sym_tensor::p_tilde_b ) |
| trace | the trace of the Sym_tensor. |
Definition at line 302 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(), sol_Dirac_A(), 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 ) |
Assigns the derived member A and computes 
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 .
| a_in | the A potential (see Sym_tensor::p_aaa ) |
| tbtt_in | the TT-part of ![]() 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 137 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::max(), met_div, Lorene::Tensor::mp, Lorene::Sym_tensor::p_aaa, Lorene::Sym_tensor::p_tilde_b, p_trace, p_tt, Lorene::Sym_tensor::set_auxiliary(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_spectral_base(), sol_Dirac_A(), sol_Dirac_tilde_B(), Sym_tensor_trans(), and Lorene::Tensor::triad.
|
inherited |
Assigns the component 
p_eta , p_mu , p_www, p_xxx and p_ttt , fro, their values and 

It updates the other components accordingly.
Definition at line 266 of file sym_tensor_aux.C.
References Lorene::Scalar::check_dzpuis(), del_deriv(), Lorene::Scalar::dsdt(), Lorene::Scalar::get_dzpuis(), Lorene::Scalar::lapang(), p_eta, p_mu, p_ttt, p_www, p_xxx, Lorene::Tensor::set(), Lorene::Scalar::set_spectral_va(), Lorene::Scalar::stdsdp(), Lorene::Tensor::triad, and Lorene::Valeur::ylm_i().
|
protected |
Sets the pointers on derived quantities to 0x0.
Definition at line 174 of file sym_tensor_trans.C.
|
protectedinherited |
Sets all the i-th components of met_depend specific to the class Sym_tensor (p_transverse , etc...) to 0x0.
Definition at line 335 of file sym_tensor.C.
References p_longit_pot, and p_transverse.
| 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 ) |
Assigns the rr component and the derived member 
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 .
| hrr | the rr component of the tensor, |
| mu_in | the ![]() |
| precis | relative difference in the trace computation to end the iteration. |
| it_max | maximal number of iterations. |
Definition at line 117 of file sym_tensor_trans_aux.C.
References Lorene::Scalar::check_dzpuis(), Lorene::dec_dzpuis(), Lorene::Tensor::inc_dzpuis(), met_div, Lorene::Tensor::mp, Lorene::Sym_tensor::p_mu, Lorene::Sym_tensor_tt::set_rr_mu(), trace_from_det_one(), and Lorene::Tensor::triad.
|
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 88 of file sym_tensor_decomp.C.
References Lorene::dec_dzpuis(), del_deriv(), Lorene::Tensor::get_index_type(), Lorene::Sym_tensor_trans::get_met_div(), Lorene::Tensor::get_place_met(), Lorene::Vector::ope_killing(), p_longit_pot, p_transverse, and Lorene::Tensor::set_dependance().
| 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 ) |
Assignes the TT-part of the tensor.
The trace is deduced from the divergence-free condition, through the Dirac system on 
*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 .
| 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 226 of file sym_tensor_trans_aux.C.
References Lorene::abs(), Lorene::Scalar::div_r(), Lorene::Sym_tensor_tt::eta(), Lorene::Scalar::get_spectral_base(), Lorene::Sym_tensor::get_tilde_B_from_TT_trace(), Lorene::max(), Lorene::Tensor::mp, Lorene::Sym_tensor::mu(), p_trace, p_tt, Lorene::Sym_tensor::set_auxiliary(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_spectral_base(), sol_Dirac_tilde_B(), Sym_tensor_trans(), 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 ) |
Assigns the derived members p_tt and p_trace and updates the components accordingly.
(see the documentation of these derived members for details)
Definition at line 235 of file sym_tensor_trans.C.
References Lorene::Scalar::check_dzpuis(), Lorene::dec_dzpuis(), Lorene::Tensor::dec_dzpuis(), del_deriv(), Lorene::Scalar::derive_con(), get_met_div(), met_div, Lorene::Tensor::mp, p_trace, p_tt, Lorene::Scalar::poisson(), and Lorene::Sym_tensor::Sym_tensor().
|
protected |
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:

Note that this is solved only for 

Sym_tensor::p_mu ).
| aaa | [input] the source A |
| tilde_mu | [output] the solution ![]() |
| xxx | [output] the solution X |
| par_bc | [input] Param to control the boundary conditions |
Definition at line 82 of file sym_tensor_trans_dirac.C.
References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), 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::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::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 ) |
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 83 of file sym_tensor_trans_dirac_boundfree.C.
References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), 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::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::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 ) |
Same resolution as sol_Dirac_A, but with inner boundary conditions added.
For now, only Robyn-type boundary conditions on 
Definition at line 81 of file sym_tensor_trans_dirac_bound2.C.
References Lorene::Tensor::annule_domain(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), 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::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::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 ) |
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 

Definition at line 580 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::Itbl::annule_hard(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Param::get_matrice_mod(), 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::Itbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), 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 ) |
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 603 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::Itbl::annule_hard(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Param::get_matrice_mod(), 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::Itbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::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().
|
protected |
Solves the same system as Sym_tensor_trans::sol_Dirac_tilde_B but only for 
In these particular cases, W =0 the system is simpler and homogeneous solutions are different.
Definition at line 1438 of file sym_tensor_trans_dirac.C.
References Lorene::Param::add_matrice_mod(), Lorene::Itbl::annule_hard(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Valeur::c_cf, Lorene::Scalar::div_r_dzpuis(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Scalar::get_etat(), Lorene::Diff_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Param::get_matrice_mod(), Lorene::Param::get_n_matrice_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::Mg3d::get_type_r(), Lorene::Base_val::give_lmax(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Base_val::mult_x(), R_CHEBP, Lorene::Itbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl_cf::val_in_bound_jk(), Lorene::Mtbl_cf::val_out_bound_jk(), and Lorene::Valeur::ylm().
| void Lorene::Sym_tensor_trans::sol_Dirac_l01_2 | ( | const Scalar & | hh, |
| Scalar & | hrr, | ||
| Scalar & | tilde_eta, | ||
| Param * | par_mat ) |
Definition at line 1559 of file sym_tensor_trans_dirac_bound2.C.
| void Lorene::Sym_tensor_trans::sol_Dirac_l01_bound | ( | const Scalar & | hh, |
| Scalar & | hrr, | ||
| Scalar & | tilde_eta, | ||
| Scalar & | bound_hrr, | ||
| Scalar & | bound_eta, | ||
| Param * | par_mat ) |
Definition at line 1583 of file sym_tensor_trans_dirac_boundfree.C.
|
protected |
Solves a system of three coupled first-order PDEs obtained from divergence-free conditions (Dirac gauge) and the requirement that the potential 
Sym_tensor::p_tilde_b ) has a given value.
The system reads:

Note that 
Sym_tensor).
| tilde_b | [input] the source ![]() |
| hh | [input] the trace of the tensor |
| hrr | [output] the rr component of the result |
| tilde_eta | [output] the solution ![]() |
| 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 583 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::Itbl::annule_hard(), Lorene::Matrice::annule_hard(), Lorene::Mtbl_cf::annule_hard(), Lorene::Scalar::annule_hard(), Lorene::Tbl::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_dsdx::get_matrice(), Lorene::Diff_id::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Param::get_matrice_mod(), 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(), Lorene::Base_val::mult_x(), R_CHEBP, Lorene::Itbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Itbl::set_etat_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Scalar::set_spectral_base(), Lorene::Scalar::set_spectral_va(), 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::Sym_tensor_trans::sol_elliptic_ABC | ( | Sym_tensor & | source, |
| Scalar | aaa, | ||
| Scalar | bbb, | ||
| Scalar | ccc ) |
Finds spectral potentials A, B, C of solution of an tensorial TT elliptic equation, given the source.
References Lorene::Sym_tensor::Sym_tensor(), Sym_tensor_trans(), and Lorene::Tensor::trace().
| const Scalar & Lorene::Sym_tensor_trans::the_trace | ( | ) | const |
Returns the trace of the tensor with respect to metric *met_div.
Definition at line 270 of file sym_tensor_trans.C.
References met_div, p_trace, Lorene::Tensor::trace(), and Lorene::Tensor::type_indice.
| void Lorene::Sym_tensor_trans::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.
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 .
| 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 315 of file sym_tensor_trans.C.
References Lorene::abs(), Lorene::Scalar::check_dzpuis(), Lorene::Tensor::cmp, Lorene::Scalar::dec_dzpuis(), get_met_div(), Lorene::Tensor::get_n_comp(), Lorene::max(), met_div, Lorene::Tensor::mp, Lorene::Scalar::set_etat_zero(), set_tt_trace(), and Sym_tensor_trans().
|
inherited |
Computes the transverse part 
Denoting *this by 
![\[ T^{ij} = {}^t T^{ij} + \nabla^i W^j + \nabla^j W^i
\qquad\mbox{with}\quad \nabla_j {}^t T^{ij} = 0
*\]](form_814.png)
where 


longit_pot() below)
| 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 110 of file sym_tensor_decomp.C.
References Lorene::Tensor::cmp, Lorene::Tensor::get_place_met(), Lorene::Tensor::inc_dzpuis(), longit_pot(), Lorene::Tensor::mp, Lorene::Tensor::n_comp, Lorene::Vector::ope_killing(), p_transverse, Lorene::Tensor::set_dependance(), Sym_tensor(), Lorene::Tensor::triad, and Lorene::Tensor::type_indice.
| const Sym_tensor_tt & Lorene::Sym_tensor_trans::tt_part | ( | Param * | par = 0x0 | ) | const |
Returns the transverse traceless part of the tensor, the trace being defined with respect to metric *met_div.
Definition at line 284 of file sym_tensor_trans.C.
References Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::derive_con(), Lorene::Scalar::get_dzpuis(), Lorene::Tensor::inc_dzpuis(), met_div, Lorene::Tensor::mp, p_tt, Lorene::Scalar::poisson(), Lorene::Sym_tensor::Sym_tensor(), the_trace(), and Lorene::Tensor::triad.
|
inherited |
Gives the field T (see member p_ttt ).
Definition at line 190 of file sym_tensor_aux.C.
References p_ttt, and Lorene::Tensor::triad.
|
inherited |
Gives the field W (see member p_www ).
Definition at line 209 of file sym_tensor_aux.C.
References Lorene::Scalar::div_tant(), Lorene::Scalar::dsdt(), Lorene::Tensor::operator()(), p_www, Lorene::Scalar::poisson_angu(), Lorene::Scalar::stdsdp(), and Lorene::Tensor::triad.
|
inherited |
Gives the field X (see member p_xxx ).
Definition at line 240 of file sym_tensor_aux.C.
References Lorene::Scalar::div_tant(), Lorene::Scalar::dsdt(), Lorene::Tensor::operator()(), p_xxx, Lorene::Scalar::poisson_angu(), Lorene::Scalar::stdsdp(), and Lorene::Tensor::triad.
|
protected |
Metric with respect to which the divergence and the trace are defined.
Definition at line 614 of file sym_tensor.h.
|
mutableprotectedinherited |
Field A defined from X and 
Sym_tensor (only for 
Its definition reads
![\[A = \frac{\partial X}{\partial r} - \frac{\mu}{r^2}.
\]](form_827.png)
Definition at line 322 of file sym_tensor.h.
|
mutableprotectedinherited |
Field 

![\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} -
{1\over\sin\theta} {\partial \mu \over \partial\varphi} \right)
*\]](form_818.png)
![\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta}
{\partial \eta \over \partial\varphi}
+ {\partial \mu \over \partial\theta} \right)
*\]](form_819.png)
Definition at line 260 of file sym_tensor.h.
|
mutableprotectedinherited |
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 246 of file sym_tensor.h.
|
mutableprotectedinherited |
Field 

![\[ T^{r\theta} = {1\over r} \left( {\partial \eta \over \partial\theta} -
{1\over\sin\theta} {\partial \mu \over \partial\varphi} \right)
*\]](form_820.png)
![\[ T^{r\varphi} = {1\over r} \left( {1\over\sin\theta}
{\partial \eta \over \partial\varphi}
+ {\partial \mu \over \partial\theta} \right)
*\]](form_819.png)
Definition at line 274 of file sym_tensor.h.
|
mutableprotectedinherited |
Field 

Sym_tensor.
It is defined for each multipolar momentum 
![\[\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}.
\]](form_830.png)
Definition at line 334 of file sym_tensor.h.
|
mutableprotectedinherited |
Field 

Sym_tensor.
It is defined for each multipolar momentum 
![\[\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}.
\]](form_832.png)
Definition at line 346 of file sym_tensor.h.
|
mutableprotected |
Trace with respect to the metric *met_div.
Definition at line 617 of file sym_tensor.h.
|
mutableprotectedinherited |
Array of the transverse part 
Denoting *this by 
![\[ T^{ij} = {}^t T^{ij} + \nabla^i W^j + \nabla^j W^i
\qquad\mbox{with}\quad \nabla_j {}^t T^{ij} = 0
*\]](form_814.png)
where 


p_longit_pot below)
Definition at line 239 of file sym_tensor.h.
|
mutableprotected |
Traceless part with respect to the metric *met_div.
Definition at line 620 of file sym_tensor.h.
|
mutableprotectedinherited |
Field T defined as 
Definition at line 315 of file sym_tensor.h.
|
mutableprotectedinherited |
Field W such that the 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) ,
*\]](form_823.png)
![\[ 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) .
*\]](form_824.png)
Definition at line 293 of file sym_tensor.h.
|
mutableprotectedinherited |
Field X such that the 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) ,
*\]](form_823.png)
![\[ 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) .
*\]](form_824.png)
Definition at line 312 of file sym_tensor.h.