28 char strot_dirac_solvehij_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Star/strot_dirac_solvehij.C,v 1.10 2014/10/13 08:53:40 j_novak Exp $" ;
74 #include "star_rot_dirac.h" 113 for (
int i=1; i<=3; i++) {
114 for (
int j=1; j<=i; j++) {
116 for (
int k=1; k<=3; k++) {
117 for (
int l=1; l<=3; l++) {
118 tmp += dhh(i,k,l) * dhh(j,l,k) ;
121 sym_tmp.
set(i,j) = tmp ;
124 ricci_star -= sym_tmp ;
126 for (
int i=1; i<=3; i++) {
127 for (
int j=1; j<=i; j++) {
129 for (
int k=1; k<=3; k++) {
130 for (
int l=1; l<=3; l++) {
131 for (
int m=1; m<=3; m++) {
132 for (
int n=1; n<=3; n++) {
134 tmp += 0.5 * tgam_uu(i,k)* tgam_uu(j,l)
135 * dhh(m,n,k) * dtgam(m,n,l)
136 + tgam_dd(n,l) * dhh(m,n,k)
137 * (tgam_uu(i,k) * dhh(j,l,m) + tgam_uu(j,k) * dhh(i,l,m) )
138 - tgam_dd(k,l) *tgam_uu(m,n) * dhh(i,k,m) * dhh(j,l,n) ;
143 sym_tmp.
set(i,j) = tmp ;
146 ricci_star += sym_tmp ;
148 ricci_star = 0.5 * ricci_star ;
155 contract(dhh, 0, 1, dtgam, 0, 1), 0, 1 )
157 contract(dhh, 0, 1, dtgam, 0, 2), 0, 1 ) ;
164 sym_tmp =
nn * (ricci_star + 8.* tdln_psi_u * tdln_psi_u)
165 + 4.*( tdln_psi_u * tdnn_u + tdnn_u * tdln_psi_u )
166 - 0.3333333333333333 *
167 (
nn * (tricci_scal + 8.*
contract(dln_psi, 0, tdln_psi_u, 0) )
168 + 8.*
contract(dln_psi, 0, tdnn_u, 0) ) *tgam_uu ;
170 ss = sym_tmp /
psi4 ;
177 for (
int i=1; i<=3; i++) {
178 for (
int j=1; j<=i; j++) {
180 for (
int k=1; k<=3; k++) {
181 for (
int l=1; l<=3; l++) {
182 tmp += (
hh(i,k)*dhh(l,j,k) +
hh(k,j)*dhh(i,l,k)
183 -
hh(k,l)*dhh(i,j,k) ) * dqq(l) ;
186 sym_tmp.
set(i,j) += 0.5 * tmp ;
193 sym_tmp -= 0.3333333333333333 * tmp *tgam_uu ;
197 for (
int i=1; i<=3; i++) {
198 for (
int j=1; j<=i; j++) {
200 for (
int k=1; k<=3; k++) {
201 for (
int l=1; l<=3; l++) {
202 tmp += tgam_dd(k,l) *
aa(i,k) *
aa(j,l) ;
205 sym_tmp.
set(i,j) = tmp ;
210 - 0.3333333333333333 *
s_euler * tgam_uu )
223 source_hh += 2.*
nn * ss ;
225 source_hh += - 1.3333333333333333 * div_beta* lbh
229 for (
int i=1; i<=3; i++) {
230 for (
int j=1; j<=i; j++) {
232 for (
int k=1; k<=3; k++) {
237 sym_tmp.
set(i,j) = tmp ;
245 source_hh += 0.6666666666666666*
246 ( tmp - 0.6666666666666666* div_beta * div_beta ) *
hh ;
259 source_hh += 0.6666666666666666* div_beta * l_beta - sym_tmp ;
261 source_hh = - (
psi4/
nn/
nn )*source_hh ;
263 for (
int i=1; i<=3; i++)
264 for (
int j=i; j<=3; j++) {
269 source_hht = source_hh ;
275 hij_new = source_hht.
poisson(&h_prev) ;
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
Map & mp
Mapping associated with the star.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
virtual void set_etat_zero()
Sets the logical state to ETATZERO (zero).
const Base_vect_spher & get_bvect_spher() const
Returns the orthonormal vectorial basis associated with the coordinates of the mapping.
Standard units of space, time and mass.
Sym_tensor stress_euler
Spatial part of the stress-energy tensor with respect to the Eulerian observer.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Flat metric for tensor calculation.
Tensor field of valence 0 (or component of a tensorial field).
Sym_tensor_trans hh
is defined by .
const Tensor_sym & derive_con(const Metric &gam) const
Returns the "contravariant" derivative of this with respect to some metric , by raising the last inde...
Scalar s_euler
Trace of the stress scalar in the Eulerian frame.
const Vector & derive_con(const Metric &gam) const
Returns the "contravariant" derivative of *this with respect to some metric , by raising the index of...
Tensor field of valence 1.
const Tensor_sym & derive_cov(const Metric &gam) const
Returns the covariant derivative of this with respect to some metric .
void set_dzpuis(int)
Modifies the dzpuis flag.
Sym_tensor ope_killing_conf(const Metric &gam) const
Computes the conformal Killing operator associated with a given metric.
Scalar psi4
Conformal factor .
virtual void inc_dzpuis(int inc=1)
Increases by inc units the value of dzpuis and changes accordingly the values of the Scalar in the co...
const Scalar & divergence(const Metric &) const
The divergence of this with respect to a Metric .
Tenseur contract(const Tenseur &, int id1, int id2)
Self contraction of two indices of a Tenseur .
const Tensor & derive_cov(const Metric &gam) const
Returns the covariant derivative of this with respect to some metric .
Transverse symmetric tensors of rank 2.
Scalar derive_lie(const Vector &v) const
Computes the derivative of this along a vector field v.
virtual void inc_dzpuis(int inc=1)
Increases by inc units the value of dzpuis and changes accordingly the values in the compactified ext...
Spherical orthonormal vectorial bases (triads).
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
void solve_hij(Sym_tensor_trans &hij_new) const
Solution of the tensor Poisson equation for rotating stars in Dirac gauge.
Scalar & set(const Itbl &ind)
Returns the value of a component (read/write version).
Scalar nn
Lapse function N .
Sym_tensor_trans poisson(const Scalar *h_guess=0x0) const
Computes the solution of a tensorial transverse Poisson equation with *this as a source: In particu...
Symmetric tensors (with respect to two of their arguments).
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this.
Sym_tensor derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
const Metric_flat & flat_met_spher() const
Returns the flat metric associated with the spherical coordinates and with components expressed in th...
Class intended to describe valence-2 symmetric tensors.
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.