sym_tensor.h
/*
* Definition of Lorene class Sym_tensor,
* as well as derived classes Sym_tensor_trans and Sym_tensor_tt
*
*/
/*
* Copyright (c) 2003-2004 Eric Gourgoulhon & Jerome Novak
*
* This file is part of LORENE.
*
* LORENE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* LORENE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LORENE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __SYM_TENSOR_H_
#define __SYM_TENSOR_H_
/*
* $Id: sym_tensor.h,v 1.49 2014/10/13 08:52:36 j_novak Exp $
* $Log: sym_tensor.h,v $
* Revision 1.49 2014/10/13 08:52:36 j_novak
* Lorene classes and functions now belong to the namespace Lorene.
*
* Revision 1.48 2010/10/11 10:23:03 j_novak
* Removed methods Sym_tensor_trans::solve_hrr() and Sym_tensor_trans::set_WX_det_one(), as they are no longer relevant.
*
* Revision 1.47 2008/12/05 08:46:19 j_novak
* New method Sym_tensor_trans_aux::set_tt_part_det_one.
*
* Revision 1.46 2008/12/03 10:18:56 j_novak
* Method 6 is now the default for calls to vector Poisson solver.
*
* Revision 1.45 2008/08/20 14:39:53 n_vasset
* New Dirac solvers handling degenerate elliptic operators on excised spacetimes.
*
* Revision 1.44 2007/12/21 16:06:16 j_novak
* Methods to filter Tensor, Vector and Sym_tensor objects.
*
* Revision 1.43 2007/11/27 15:48:52 n_vasset
* New member p_tilde_c for class Sym_tensor
*
* Revision 1.42 2007/05/04 16:43:50 n_vasset
* adding of functions sol_Dirac_BC2 and sol_Dirac_A2
*
* Revision 1.41 2006/10/24 13:03:17 j_novak
* New methods for the solution of the tensor wave equation. Perhaps, first
* operational version...
*
* Revision 1.40 2006/08/31 12:13:21 j_novak
* Added an argument of type Param to Sym_tensor_trans::sol_ rac_A().
*
* Revision 1.39 2006/06/20 12:07:13 j_novak
* Improved execution speed for sol_Dirac_tildeB...
*
* Revision 1.38 2006/06/14 10:04:19 j_novak
* New methods sol_Dirac_l01, set_AtB_det_one and set_AtB_trace_zero.
*
* Revision 1.37 2006/06/13 13:30:12 j_novak
* New members sol_Dirac_A and sol_Dirac_tildeB (see documentation).
*
* Revision 1.36 2006/06/12 13:37:23 j_novak
* Added bounds in l (multipolar momentum) for Sym_tensor_trans::solve_hrr.
*
* Revision 1.35 2006/06/12 07:42:28 j_novak
* Fields A and tilde{B} are defined only for l>1.
*
* Revision 1.34 2006/06/12 07:27:18 j_novak
* New members concerning A and tilde{B}, dealing with the transverse part of the
* Sym_tensor.
*
* Revision 1.33 2005/11/28 14:45:14 j_novak
* Improved solution of the Poisson tensor equation in the case of a transverse
* tensor.
*
* Revision 1.32 2005/09/16 13:58:10 j_novak
* New Poisson solver for a Sym_tensor_trans.
*
* Revision 1.31 2005/09/07 16:47:42 j_novak
* Removed method Sym_tensor_trans::T_from_det_one
* Modified Sym_tensor::set_auxiliary, so that it takes eta/r and mu/r as
* arguments.
* Modified Sym_tensor_trans::set_hrr_mu.
* Added new protected method Sym_tensor_trans::solve_hrr
*
* Revision 1.30 2005/04/08 08:22:04 j_novak
* New methods set_hrr_mu_det_one() and set_WX_det_one(). Not tested yet...
*
* Revision 1.29 2005/04/06 15:43:58 j_novak
* New method Sym_tensor_trans::T_from_det_one(...).
*
* Revision 1.28 2005/04/04 15:25:22 j_novak
* Added new members www, xxx, ttt and the associated methods.
*
* Revision 1.27 2005/04/01 14:28:31 j_novak
* Members p_eta and p_mu are now defined in class Sym_tensor.
*
* Revision 1.26 2005/01/03 08:34:58 f_limousin
* Come back to the previous version.
*
* Revision 1.25 2005/01/03 08:15:39 f_limousin
* The first argument of the function trace_from_det_one(...) is now
* a Sym_tensor_trans instead of a Sym_tensor_tt (because of a
* compilation error with some compilators).
*
* Revision 1.24 2004/12/28 14:21:46 j_novak
* Added the method Sym_tensor_trans::trace_from_det_one
*
* Revision 1.23 2004/12/28 10:37:22 j_novak
* Better way of enforcing zero divergence.
*
* Revision 1.22 2004/06/14 20:44:44 e_gourgoulhon
* Added argument method_poisson to Sym_tensor::longit_pot and
* Sym_tensor::transverse.
*
* Revision 1.21 2004/05/25 14:57:20 f_limousin
* Add parameters in argument of functions transverse, longit_pot,
* set_tt_trace, tt_part and set_khi_mu for the case of a Map_et.
*
* Revision 1.20 2004/05/24 13:44:54 e_gourgoulhon
* Added parameter dzp to method Sym_tensor_tt::update.
*
* Revision 1.19 2004/04/08 16:37:54 e_gourgoulhon
* Sym_tensor_tt::set_khi_mu: added argument dzp (dzpuis of resulting h^{ij}).
*
* Revision 1.18 2004/03/30 14:01:19 j_novak
* Copy constructors and operator= now copy the "derived" members.
*
* Revision 1.17 2004/03/29 16:13:06 j_novak
* New methods set_longit_trans and set_tt_trace .
*
* Revision 1.16 2004/03/22 13:12:43 j_novak
* Modification of comments to use doxygen instead of doc++
*
* Revision 1.15 2004/03/03 13:54:16 j_novak
* Error in comments corrected.
*
* Revision 1.14 2004/03/03 13:16:20 j_novak
* New potential khi (p_khi) and the functions manipulating it.
*
* Revision 1.13 2004/02/26 22:45:13 e_gourgoulhon
* Added method derive_lie.
*
* Revision 1.12 2004/02/18 18:43:22 e_gourgoulhon
* Method trace() renamed the_trace() in order to avoid
* any confusion with new method Tensor::trace().
*
* Revision 1.11 2004/01/04 20:49:06 e_gourgoulhon
* Sym_tensor is now a derived class of Tensor_sym.
* Suppressed methods Sym_tensor::indices and Sym_tensor::position:
* they are now implemented at the Tensor_sym level.
*
* Revision 1.10 2003/11/27 16:05:11 e_gourgoulhon
* Changed return value of methods transverse( ) and longit_pot( ).
*
* Revision 1.9 2003/11/26 21:56:21 e_gourgoulhon
* Class Sym_tensor: added the members p_transverse and p_longit_pot,
* and the associated methods transverse( ), longit_pot( ),
* del_deriv_met( ) and set_der_met_0x0( ).
*
* Revision 1.8 2003/11/07 16:54:23 e_gourgoulhon
* Added method Sym_tensor_tt::poisson().
*
* Revision 1.7 2003/11/06 14:43:37 e_gourgoulhon
* Gave a name to const arguments in certain method prototypes (e.g.
* constructors) to correct a bug of DOC++.
*
* Revision 1.6 2003/11/05 15:26:31 e_gourgoulhon
* Modif documentation.
*
* Revision 1.5 2003/11/04 22:57:26 e_gourgoulhon
* Class Sym_tensor_tt: method set_eta_mu renamed set_rr_eta_mu
* method update_tp() renamed update()
* added method set_rr_mu.
*
* Revision 1.4 2003/11/03 22:29:54 e_gourgoulhon
* Class Sym_tensor_tt: added functions set_eta_mu and update_tp.
*
* Revision 1.3 2003/11/03 17:09:30 e_gourgoulhon
* Class Sym_tensor_tt: added the methods eta() and mu().
*
* Revision 1.2 2003/10/28 21:22:51 e_gourgoulhon
* Class Sym_tensor_trans: added methods trace() and tt_part().
*
* Revision 1.1 2003/10/27 10:45:19 e_gourgoulhon
* New derived classes Sym_tensor_trans and Sym_tensor_tt.
*
*
* $Header: /cvsroot/Lorene/C++/Include/sym_tensor.h,v 1.49 2014/10/13 08:52:36 j_novak Exp $
*
*/
namespace Lorene {
class Sym_tensor_trans ;
class Sym_tensor_tt ;
//---------------------------------//
// class Sym_tensor //
//---------------------------------//
class Sym_tensor : public Tensor_sym {
// Derived data :
// ------------
protected:
mutable Sym_tensor_trans* p_transverse[N_MET_MAX] ;
mutable Vector* p_longit_pot[N_MET_MAX] ;
mutable Scalar* p_eta ;
mutable Scalar* p_mu ;
mutable Scalar* p_www ;
mutable Scalar* p_xxx ;
mutable Scalar* p_ttt ;
mutable Scalar* p_aaa ;
mutable Scalar* p_tilde_b ;
mutable Scalar* p_tilde_c ;
// Constructors - Destructor :
// -------------------------
public:
Sym_tensor(const Map& map, const Itbl& tipe, const Base_vect& triad_i) ;
Sym_tensor(const Map& map, int tipe, const Base_vect& triad_i) ;
Sym_tensor(const Sym_tensor& a) ;
Sym_tensor(const Tensor& a) ;
Sym_tensor(const Map& map, const Base_vect& triad_i, FILE* fich) ;
virtual ~Sym_tensor() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const;
void set_der_0x0() const ;
virtual void del_derive_met(int i) const ;
void set_der_met_0x0(int i) const ;
// Mutators / assignment
// ---------------------
public:
virtual void operator=(const Sym_tensor& a) ;
virtual void operator=(const Tensor_sym& a) ;
virtual void operator=(const Tensor& a) ;
void set_longit_trans( const Vector& v, const Sym_tensor_trans& a) ;
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 ) ;
virtual void exponential_filter_r(int lzmin, int lzmax, int p,
double alpha= -16.) ;
virtual void exponential_filter_ylm(int lzmin, int lzmax, int p,
double alpha= -16.) ;
// Computation of derived members
// ------------------------------
public:
const Vector& divergence(const Metric&) const ;
Sym_tensor derive_lie(const Vector& v) const ;
const Sym_tensor_trans& transverse(const Metric& gam, Param* par = 0x0,
int method_poisson = 6) const ;
const Vector& longit_pot(const Metric& gam, Param* par = 0x0,
int method_poisson = 6) const ;
virtual const Scalar& eta(Param* par = 0x0) const ;
const Scalar& mu(Param* par = 0x0) const ;
const Scalar& www() const ;
const Scalar& xxx() const ;
const Scalar& ttt() const ;
const Scalar& compute_A(bool output_ylm = true, Param* par = 0x0) const ;
const Scalar& compute_tilde_B(bool output_ylm = true, Param* par = 0x0) const ;
Scalar compute_tilde_B_tt(bool output_ylm = true, Param* par = 0x0) const ;
const Scalar& compute_tilde_C(bool output_ylm = true, Param* par = 0x0) const ;
protected:
Scalar get_tilde_B_from_TT_trace(const Scalar& tilde_B_tt_in, const Scalar&
trace) const ;
// Mathematical operators
// ----------------------
protected:
Sym_tensor* inverse() const ;
// Friend classes
//-----------------
friend class Metric ;
} ;
//---------------------------------//
// class Sym_tensor_trans //
//---------------------------------//
class Sym_tensor_trans: public Sym_tensor {
// Data :
// -----
protected:
const Metric* const met_div ;
mutable Scalar* p_trace ;
mutable Sym_tensor_tt* p_tt ;
// Constructors - Destructor
// -------------------------
public:
Sym_tensor_trans(const Map& map, const Base_vect& triad_i,
const Metric& met) ;
Sym_tensor_trans(const Sym_tensor_trans& ) ;
Sym_tensor_trans(const Map& map, const Base_vect& triad_i,
const Metric& met, FILE* fich) ;
virtual ~Sym_tensor_trans() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const;
void set_der_0x0() const ;
// Accessors
// ---------
public:
const Metric& get_met_div() const {return *met_div ; } ;
// Mutators / assignment
// ---------------------
public:
virtual void operator=(const Sym_tensor_trans& a) ;
virtual void operator=(const Sym_tensor& a) ;
virtual void operator=(const Tensor_sym& a) ;
virtual void operator=(const Tensor& a) ;
void set_tt_trace(const Sym_tensor_tt& a, const Scalar& h,
Param* par = 0x0) ;
// Computational methods
// ---------------------
const Scalar& the_trace() const ;
const Sym_tensor_tt& tt_part(Param* par = 0x0) const ;
protected:
void sol_Dirac_A(const Scalar& aaa, Scalar& tilde_mu, Scalar& xxx,
const Param* par_bc = 0x0) const ;
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 ;
void sol_Dirac_l01(const Scalar& hh, Scalar& hrr, Scalar& tilde_eta,
Param* par_mat) const ;
public:
void sol_Dirac_Abound(const Scalar& aaa, Scalar& tilde_mu, Scalar& x_new,
Scalar bound_mu, const Param* par_bc);
void sol_Dirac_A2(const Scalar& aaa, Scalar& tilde_mu, Scalar& x_new,
Scalar bound_mu, const Param* par_bc);
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);
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);
// Solving the electric system for l=0 and l=1 only (simpler case), with boundary conditions imposed by the degenerate elliptic system.
void sol_Dirac_l01_bound(const Scalar& hh, Scalar& hrr, Scalar& tilde_eta, Scalar& bound_hrr, Scalar& bound_eta, Param* par_mat) ;
// Provisory: just for compilation, to be removed
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) ;
void trace_from_det_one(const Sym_tensor_tt& htt,
double precis = 1.e-14, int it_max = 100) ;
void set_hrr_mu_det_one(const Scalar& hrr, const Scalar& mu_in,
double precis = 1.e-14, int it_max = 100) ;
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) ;
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) ;
void set_AtB_trace(const Scalar& a_in, const Scalar& tb_in, const
Scalar& trace, Param* par_bc = 0x0, Param* par_mat = 0x0) ;
Sym_tensor_trans poisson(const Scalar* h_guess = 0x0) const ;
} ;
//------------------------------//
// class Sym_tensor_tt //
//------------------------------//
class Sym_tensor_tt: public Sym_tensor_trans {
// Data :
// -----
protected:
mutable Scalar* p_khi ;
// Constructors - Destructor
// -------------------------
public:
Sym_tensor_tt(const Map& map, const Base_vect& triad_i,
const Metric& met) ;
Sym_tensor_tt(const Sym_tensor_tt& ) ;
Sym_tensor_tt(const Map& map, const Base_vect& triad_i,
const Metric& met, FILE* fich) ;
virtual ~Sym_tensor_tt() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const;
void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
virtual void operator=(const Sym_tensor_tt& a) ;
virtual void operator=(const Sym_tensor_trans& a) ;
virtual void operator=(const Sym_tensor& a) ;
virtual void operator=(const Tensor_sym& a) ;
virtual void operator=(const Tensor& a) ;
void set_rr_eta_mu(const Scalar& hrr, const Scalar& eta_i,
const Scalar& mu_i) ;
void set_rr_mu(const Scalar& hrr, const Scalar& mu_i) ;
void set_khi_eta_mu(const Scalar& khi_i, const Scalar& eta_i,
const Scalar& mu_i) ;
void set_khi_mu(const Scalar& khi_i, const Scalar& mu_i, int dzp = 0,
Param* par1 = 0x0, Param* par2 = 0x0,
Param* par3 = 0x0) ;
void set_A_tildeB(const Scalar& a_in, const Scalar& tb_in, Param* par_bc = 0x0,
Param* par_mat = 0x0) ;
// Computational methods
// ---------------------
public:
const Scalar& khi() const ;
virtual const Scalar& eta(Param* par = 0x0) const ;
protected:
void update(int dzp, Param* par1 = 0x0, Param* par2 = 0x0) ;
public:
Sym_tensor_tt poisson(int dzfin = 2) const ;
} ;
}
#endif
Lorene::Base_vect
Vectorial bases (triads) with respect to which the tensorial components are defined.
Definition base_vect.h:105
Lorene::Itbl
Basic integer array class.
Definition itbl.h:122
Lorene::Metric
Metric for tensor calculation.
Definition metric.h:90
Lorene::Param
Parameter storage.
Definition param.h:125
Lorene::Scalar
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:387
Lorene::Sym_tensor_trans
Transverse symmetric tensors of rank 2.
Definition sym_tensor.h:608
Lorene::Sym_tensor_trans::p_tt
Sym_tensor_tt * p_tt
Traceless part with respect to the metric *met_div.
Definition sym_tensor.h:620
Lorene::Sym_tensor_trans::set_AtBtt_det_one
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 from its TT-part (see Sym_tensor::compute_tilde_B_tt() ).
Definition sym_tensor_trans_aux.C:137
Lorene::Sym_tensor_trans::sol_Dirac_BC2
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.
Definition sym_tensor_trans_dirac_bound2.C:580
Lorene::Sym_tensor_trans::sol_Dirac_tilde_B
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 gau...
Definition sym_tensor_trans_dirac.C:583
Lorene::Sym_tensor_trans::sol_Dirac_A2
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 con...
Definition sym_tensor_trans_dirac_boundfree.C:83
Lorene::Sym_tensor_trans::Sym_tensor_trans
Sym_tensor_trans(const Map &map, const Base_vect &triad_i, const Metric &met)
Standard constructor.
Definition sym_tensor_trans.C:114
Lorene::Sym_tensor_trans::trace_from_det_one
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 determin...
Definition sym_tensor_trans.C:315
Lorene::Sym_tensor_trans::poisson
Sym_tensor_trans poisson(const Scalar *h_guess=0x0) const
Computes the solution of a tensorial transverse Poisson equation with *this as a source:
Definition sym_tensor_trans_pde.C:99
Lorene::Sym_tensor_trans::met_div
const Metric *const met_div
Metric with respect to which the divergence and the trace are defined.
Definition sym_tensor.h:614
Lorene::Sym_tensor_trans::p_trace
Scalar * p_trace
Trace with respect to the metric *met_div.
Definition sym_tensor.h:617
Lorene::Sym_tensor_trans::sol_Dirac_BC3
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 con...
Definition sym_tensor_trans_dirac_boundfree.C:603
Lorene::Sym_tensor_trans::sol_elliptic_ABC
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,...
Lorene::Sym_tensor_trans::set_AtB_trace
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 , and the trace.
Definition sym_tensor_trans_aux.C:302
Lorene::Sym_tensor_trans::the_trace
const Scalar & the_trace() const
Returns the trace of the tensor with respect to metric *met_div.
Definition sym_tensor_trans.C:270
Lorene::Sym_tensor_trans::set_der_0x0
void set_der_0x0() const
Sets the pointers on derived quantities to 0x0.
Definition sym_tensor_trans.C:174
Lorene::Sym_tensor_trans::sol_Dirac_Abound
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.
Definition sym_tensor_trans_dirac_bound2.C:81
Lorene::Sym_tensor_trans::get_met_div
const Metric & get_met_div() const
Returns the metric with respect to which the divergence and the trace are defined.
Definition sym_tensor.h:669
Lorene::Sym_tensor_trans::set_tt_part_det_one
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.
Definition sym_tensor_trans_aux.C:226
Lorene::Sym_tensor_trans::tt_part
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 *...
Definition sym_tensor_trans.C:284
Lorene::Sym_tensor_trans::sol_Dirac_A
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 ga...
Definition sym_tensor_trans_dirac.C:82
Lorene::Sym_tensor_trans::~Sym_tensor_trans
virtual ~Sym_tensor_trans()
Destructor.
Definition sym_tensor_trans.C:151
Lorene::Sym_tensor_trans::set_tt_trace
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.
Definition sym_tensor_trans.C:235
Lorene::Sym_tensor_trans::operator=
virtual void operator=(const Sym_tensor_trans &a)
Assignment to another Sym_tensor_trans.
Definition sym_tensor_trans.C:186
Lorene::Sym_tensor_trans::del_deriv
virtual void del_deriv() const
Deletes the derived quantities.
Definition sym_tensor_trans.C:164
Lorene::Sym_tensor_trans::set_hrr_mu_det_one
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 .
Definition sym_tensor_trans_aux.C:117
Lorene::Sym_tensor_trans::sol_Dirac_l01
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 .
Definition sym_tensor_trans_dirac.C:1438
Lorene::Sym_tensor_tt
Transverse and traceless symmetric tensors of rank 2.
Definition sym_tensor.h:938
Lorene::Sym_tensor_tt::set_khi_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 , as well as the angular potential (see member p_khi and p_mu ).
Definition sym_tensor_tt_etamu.C:288
Lorene::Sym_tensor_tt::set_rr_mu
void set_rr_mu(const Scalar &hrr, const Scalar &mu_i)
Sets the component , as well as the angular potential (see member p_mu ).
Definition sym_tensor_tt_etamu.C:238
Lorene::Sym_tensor_tt::set_A_tildeB
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 .
Definition sym_tensor_tt_etamu.C:487
Lorene::Sym_tensor_tt::set_der_0x0
void set_der_0x0() const
Sets the pointers on derived quantities to 0x0.
Definition sym_tensor_tt.C:131
Lorene::Sym_tensor_tt::p_khi
Scalar * p_khi
Field such that the component .
Definition sym_tensor.h:946
Lorene::Sym_tensor_tt::~Sym_tensor_tt
virtual ~Sym_tensor_tt()
Destructor.
Definition sym_tensor_tt.C:108
Lorene::Sym_tensor_tt::set_khi_eta_mu
void set_khi_eta_mu(const Scalar &khi_i, const Scalar &eta_i, const Scalar &mu_i)
Sets the component , as well as the angular potentials and (see members p_khi , p_eta and p_mu ).
Definition sym_tensor_tt_etamu.C:260
Lorene::Sym_tensor_tt::update
void update(int dzp, Param *par1=0x0, Param *par2=0x0)
Computes the components , , , and , from and the potentials and .
Definition sym_tensor_tt_etamu.C:338
Lorene::Sym_tensor_tt::del_deriv
virtual void del_deriv() const
Deletes the derived quantities.
Definition sym_tensor_tt.C:121
Lorene::Sym_tensor_tt::eta
virtual const Scalar & eta(Param *par=0x0) const
Gives the field (see member p_eta ).
Definition sym_tensor_tt_etamu.C:140
Lorene::Sym_tensor_tt::operator=
virtual void operator=(const Sym_tensor_tt &a)
Assignment to another Sym_tensor_tt.
Definition sym_tensor_tt.C:141
Lorene::Sym_tensor_tt::poisson
Sym_tensor_tt poisson(int dzfin=2) const
Computes the solution of a tensorial TT Poisson equation with *this as a source:
Definition sym_ttt_poisson.C:62
Lorene::Sym_tensor_tt::set_rr_eta_mu
void set_rr_eta_mu(const Scalar &hrr, const Scalar &eta_i, const Scalar &mu_i)
Sets the component , as well as the angular potentials and (see members p_eta and p_mu ).
Definition sym_tensor_tt_etamu.C:215
Lorene::Sym_tensor_tt::khi
const Scalar & khi() const
Gives the field such that the component .
Definition sym_tensor_tt_etamu.C:116
Lorene::Sym_tensor_tt::Sym_tensor_tt
Sym_tensor_tt(const Map &map, const Base_vect &triad_i, const Metric &met)
Standard constructor.
Definition sym_tensor_tt.C:75
Lorene::Sym_tensor
Class intended to describe valence-2 symmetric tensors.
Definition sym_tensor.h:223
Lorene::Sym_tensor::xxx
const Scalar & xxx() const
Gives the field X (see member p_xxx ).
Definition sym_tensor_aux.C:240
Lorene::Sym_tensor::exponential_filter_ylm
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 ).
Definition sym_tensor.C:471
Lorene::Sym_tensor::del_derive_met
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 cla...
Definition sym_tensor.C:320
Lorene::Sym_tensor::inverse
Sym_tensor * inverse() const
Returns a pointer on the inverse of the Sym_tensor (seen as a matrix).
Definition sym_tensor.C:372
Lorene::Sym_tensor::compute_tilde_C
const Scalar & compute_tilde_C(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_c ).
Definition sym_tensor_aux.C:596
Lorene::Sym_tensor::operator=
virtual void operator=(const Sym_tensor &a)
Assignment to another Sym_tensor.
Definition sym_tensor.C:234
Lorene::Sym_tensor::set_longit_trans
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.
Definition sym_tensor_decomp.C:88
Lorene::Sym_tensor::p_ttt
Scalar * p_ttt
Field T defined as .
Definition sym_tensor.h:315
Lorene::Sym_tensor::p_aaa
Scalar * p_aaa
Field A defined from X and insensitive to the longitudinal part of the Sym_tensor (only for ).
Definition sym_tensor.h:322
Lorene::Sym_tensor::compute_A
const Scalar & compute_A(bool output_ylm=true, Param *par=0x0) const
Gives the field A (see member p_aaa ).
Definition sym_tensor_aux.C:316
Lorene::Sym_tensor::set_der_met_0x0
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 ,...
Definition sym_tensor.C:335
Lorene::Sym_tensor::p_tilde_b
Scalar * p_tilde_b
Field defined from and h insensitive to the longitudinal part of the Sym_tensor.
Definition sym_tensor.h:334
Lorene::Sym_tensor::p_mu
Scalar * p_mu
Field such that the components of the tensor are written (has only meaning with spherical component...
Definition sym_tensor.h:274
Lorene::Sym_tensor::transverse
const Sym_tensor_trans & transverse(const Metric &gam, Param *par=0x0, int method_poisson=6) const
Computes the transverse part of the tensor with respect to a given metric, transverse meaning diverg...
Definition sym_tensor_decomp.C:110
Lorene::Sym_tensor::p_tilde_c
Scalar * p_tilde_c
Field defined from and h insensitive to the longitudinal part of the Sym_tensor.
Definition sym_tensor.h:346
Lorene::Sym_tensor::ttt
const Scalar & ttt() const
Gives the field T (see member p_ttt ).
Definition sym_tensor_aux.C:190
Lorene::Sym_tensor::eta
virtual const Scalar & eta(Param *par=0x0) const
Gives the field (see member p_eta ).
Definition sym_tensor_aux.C:111
Lorene::Sym_tensor::longit_pot
const Vector & longit_pot(const Metric &gam, Param *par=0x0, int method_poisson=6) const
Computes the vector potential of longitudinal part of the tensor (see documentation of method transv...
Definition sym_tensor_decomp.C:143
Lorene::Sym_tensor::www
const Scalar & www() const
Gives the field W (see member p_www ).
Definition sym_tensor_aux.C:209
Lorene::Sym_tensor::p_transverse
Sym_tensor_trans * p_transverse[N_MET_MAX]
Array of the transverse part of the tensor with respect to various metrics, transverse meaning diver...
Definition sym_tensor.h:239
Lorene::Sym_tensor::get_tilde_B_from_TT_trace
Scalar get_tilde_B_from_TT_trace(const Scalar &tilde_B_tt_in, const Scalar &trace) const
Computes (see Sym_tensor::p_tilde_b ) from its transverse-traceless part and the trace.
Definition sym_tensor_aux.C:531
Lorene::Sym_tensor::mu
const Scalar & mu(Param *par=0x0) const
Gives the field (see member p_mu ).
Definition sym_tensor_aux.C:151
Lorene::Sym_tensor::del_deriv
virtual void del_deriv() const
Deletes the derived quantities.
Definition sym_tensor.C:286
Lorene::Sym_tensor::compute_tilde_B_tt
Scalar compute_tilde_B_tt(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_b ) associated with the TT-part of the Sym_tensor .
Definition sym_tensor_aux.C:478
Lorene::Sym_tensor::p_eta
Scalar * p_eta
Field such that the components of the tensor are written (has only meaning with spherical component...
Definition sym_tensor.h:260
Lorene::Sym_tensor::p_xxx
Scalar * p_xxx
Field X such that the components and of the tensor are written (has only meaning with spherical co...
Definition sym_tensor.h:312
Lorene::Sym_tensor::derive_lie
Sym_tensor derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
Definition sym_tensor.C:360
Lorene::Sym_tensor::set_auxiliary
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 and the derived members p_eta , p_mu , p_www, p_xxx and p_ttt ,...
Definition sym_tensor_aux.C:266
Lorene::Sym_tensor::Sym_tensor
Sym_tensor(const Map &map, const Itbl &tipe, const Base_vect &triad_i)
Standard constructor.
Definition sym_tensor.C:142
Lorene::Sym_tensor::set_der_0x0
void set_der_0x0() const
Sets the pointers on derived quantities to 0x0.
Definition sym_tensor.C:305
Lorene::Sym_tensor::p_www
Scalar * p_www
Field W such that the components and of the tensor are written (has only meaning with spherical co...
Definition sym_tensor.h:293
Lorene::Sym_tensor::compute_tilde_B
const Scalar & compute_tilde_B(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_b ).
Definition sym_tensor_aux.C:362
Lorene::Sym_tensor::~Sym_tensor
virtual ~Sym_tensor()
Destructor.
Definition sym_tensor.C:222
Lorene::Sym_tensor::p_longit_pot
Vector * p_longit_pot[N_MET_MAX]
Array of the vector potential of the longitudinal part of the tensor with respect to various metrics ...
Definition sym_tensor.h:246
Lorene::Sym_tensor::divergence
const Vector & divergence(const Metric &) const
Returns the divergence of this with respect to a Metric .
Definition sym_tensor.C:349
Lorene::Sym_tensor::exponential_filter_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 ).
Definition sym_tensor.C:446
Lorene::Tensor_sym
Symmetric tensors (with respect to two of their arguments).
Definition tensor.h:1037
Lorene::Tensor
Tensor handling.
Definition tensor.h:288
Lorene::Vector
Tensor field of valence 1.
Definition vector.h:188
Lorene::Tensor_sym::Tensor_sym
Tensor_sym(const Map &map, int val, const Itbl &tipe, const Base_vect &triad_i, int index_sym1, int index_sym2)
Standard constructor.
Definition tensor_sym.C:69
Lorene::Tensor::trace
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.
Definition tensor_calculus.C:94
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::Map
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Definition map.C:139