28char sym_tensor_trans_dirac_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tensor/sym_tensor_trans_dirac.C,v 1.8 2015/08/10 15:32:26 j_novak Exp $" ;
90 if (
aaa.get_etat() == ETATZERO) {
96 int nz =
mgrid.get_nzone() ;
111 int nt =
mgrid.get_nt(0) ;
112 int np =
mgrid.get_np(0) ;
119 source.set_spectral_va().ylm() ;
126 tilde_mu.set_spectral_va().set_etat_cf_qcq() ;
127 tilde_mu.set_spectral_va().c_cf->annule_hard() ;
128 x_new.annule_hard() ;
129 x_new.set_spectral_base(base) ;
130 x_new.set_spectral_va().set_etat_cf_qcq() ;
131 x_new.set_spectral_va().c_cf->annule_hard() ;
151 for (
int k=0 ;
k<np+1 ;
k++) {
152 for (
int j=0 ;
j<nt ;
j++) {
155 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
178 ope.set(2*nr-1,
col) = 0 ;
189 ope.set(nr-1, nr-1) = 1 ;
190 ope.set(2*nr-1, 2*nr-1) = 1 ;
202 sec.set(2*nr-1) = 0 ;
205 for (
int i=0;
i<nr;
i++) {
212 for (
int i=0;
i<nr;
i++) {
234 for (
int k=0 ;
k<np+1 ;
k++) {
235 for (
int j=0 ;
j<nt ;
j++) {
238 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
278 for (
int i=0;
i<nr;
i++) {
285 for (
int i=0;
i<nr;
i++) {
292 for (
int i=0;
i<nr;
i++) {
312 for (
int k=0 ;
k<np+1 ;
k++) {
313 for (
int j=0 ;
j<nt ;
j++) {
316 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
360 for (
int i=0;
i<nr;
i++) {
367 for (
int i=0;
i<nr;
i++) {
380 int taille = 2*
nz_bc + 1;
381 if (
cedbc) taille-- ;
411 for (
int k=0 ;
k<np+1 ;
k++)
412 for (
int j=0 ;
j<nt ;
j++) {
414 if ((nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
421 int nr =
mgrid.get_nr(0) ;
530 nr =
mgrid.get_nr(0) ;
531 for (
int i=0 ;
i<nr ;
i++) {
540 for (
int i=0 ;
i<nr ;
i++) {
553 for (
int i=0 ;
i<nr ;
i++) {
565 if (
tilde_mu.set_spectral_va().c != 0x0)
566 delete tilde_mu.set_spectral_va().c ;
567 tilde_mu.set_spectral_va().c = 0x0 ;
568 tilde_mu.set_spectral_va().ylm_i() ;
570 if (
x_new.set_spectral_va().c != 0x0)
571 delete x_new.set_spectral_va().c ;
572 x_new.set_spectral_va().c = 0x0 ;
573 x_new.set_spectral_va().ylm_i() ;
592 if ( (
tilde_b.get_etat() == ETATZERO) && (hh.
get_etat() == ETATZERO) ) {
598 int nz =
mgrid.get_nzone() ;
604 if (
par_bc->get_n_int() > 0)
614 int nt =
mgrid.get_nt(0) ;
615 int np =
mgrid.get_np(0) ;
626 source.set_spectral_va().ylm() ;
633 hoverr.set_spectral_va().ylm() ;
635 dhdr.set_spectral_va().ylm() ;
637 h_coq.set_spectral_va().ylm() ;
640 dh_coq.set_spectral_va().ylm() ;
650 if ((
par_mat->get_n_int_mod() >= 4)
651 &&(
par_mat->get_n_tbl_mod()>=1)
652 &&(
par_mat->get_n_matrice_mod()>=1)
653 &&(
par_mat->get_n_itbl_mod()>=1)) {
686 pnr->set_etat_qcq() ;
688 for (
int l=0;
l<nz;
l++)
702 hrr.set_spectral_base(base) ;
703 hrr.set_spectral_va().set_etat_cf_qcq() ;
704 hrr.set_spectral_va().c_cf->annule_hard() ;
707 tilde_eta.set_spectral_va().set_etat_cf_qcq() ;
708 tilde_eta.set_spectral_va().c_cf->annule_hard() ;
743 for (
int k=0 ;
k<np+1 ;
k++) {
744 for (
int j=0 ;
j<nt ;
j++) {
747 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
788 ope.set(2*nr-1,
col) = 0 ;
789 ope.set(3*nr-1,
col) = 0 ;
801 ope.set(nr-1, nr-1) = 1 ;
802 ope.set(2*nr-1, 2*nr-1) = 1 ;
803 ope.set(3*nr-1, 3*nr-1) = 1 ;
848 sec.set(3*nr-1) = 0 ;
850 for (
int i=0;
i<nr;
i++) {
866 for (
int i=0;
i<nr;
i++) {
890 for (
int k=0 ;
k<np+1 ;
k++) {
891 for (
int j=0 ;
j<nt ;
j++) {
894 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
965 sec.set(
lin+nr) = -0.5*(*
h_coq.get_spectral_va().c_cf)
985 for (
int i=0;
i<nr;
i++) {
993 for (
int i=0;
i<nr;
i++) {
1001 for (
int i=0;
i<nr;
i++) {
1009 for (
int i=0;
i<nr;
i++) {
1031 for (
int k=0 ;
k<np+1 ;
k++) {
1032 for (
int j=0 ;
j<nt ;
j++) {
1035 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
1037 ope.set_etat_qcq() ;
1097 sec.set_etat_qcq() ;
1109 sec.set(
lin+nr) = -0.5*(*
hoverr.get_spectral_va().c_cf)
1131 for (
int i=0;
i<nr;
i++) {
1139 for (
int i=0;
i<nr;
i++) {
1147 for (
int i=0;
i<nr;
i++) {
1157 int taille = 3*
nz_bc + 1 ;
1158 if (
cedbc) taille-- ;
1194 for (
int k=0 ;
k<np+1 ;
k++)
1195 for (
int j=0 ;
j<nt ;
j++) {
1197 if ((nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q > 1)) {
1204 int nr =
mgrid.get_nr(0) ;
1371 nr =
mgrid.get_nr(0) ;
1372 for (
int i=0 ;
i<nr ;
i++) {
1383 for (
int i=0 ;
i<nr ;
i++) {
1403 for (
int i=0 ;
i<nr ;
i++) {
1421 if (
hrr.set_spectral_va().c != 0x0)
1422 delete hrr.set_spectral_va().c ;
1423 hrr.set_spectral_va().c = 0x0 ;
1424 hrr.set_spectral_va().ylm_i() ;
1426 if (
tilde_eta.set_spectral_va().c != 0x0)
1451 int nz =
mgrid.get_nzone() ;
1455 int nt =
mgrid.get_nt(0) ;
1456 int np =
mgrid.get_np(0) ;
1461 source.set_spectral_va().ylm() ;
1467 assert (
hrr.get_spectral_base() == base) ;
1469 assert (
hrr.get_spectral_va().c_cf != 0x0) ;
1481 if (
par_mat->get_n_matrice_mod() > 0)
1496 for (
int k=0 ;
k<np+1 ;
k++) {
1497 for (
int j=0 ;
j<nt ;
j++) {
1500 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q < 2)) {
1502 ope.set_etat_qcq() ;
1522 ope.set(2*nr-1,
col) = 0 ;
1533 ope.set(nr-1, nr-1) = 1 ;
1534 ope.set(2*nr-1, 2*nr-1) = 1 ;
1548 sec.set_etat_qcq() ;
1552 sec.set(nr+
lin) = -0.5*(*
source.get_spectral_va().c_cf)
1563 sec.set(nr-1) =
h0 / 3. ;
1565 sec.set(2*nr-1) = 0 ;
1567 for (
int i=0;
i<nr;
i++) {
1581 for (
int lz=1;
lz<nz-1;
lz++) {
1592 for (
int k=0 ;
k<np+1 ;
k++) {
1593 for (
int j=0 ;
j<nt ;
j++) {
1596 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q < 2)) {
1598 ope.set_etat_qcq() ;
1635 sec.set_etat_qcq() ;
1646 for (
int i=0;
i<nr;
i++) {
1653 for (
int i=0;
i<nr;
i++) {
1660 for (
int i=0;
i<nr;
i++) {
1682 for (
int k=0 ;
k<np+1 ;
k++) {
1683 for (
int j=0 ;
j<nt ;
j++) {
1686 if ( (nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q < 2)) {
1688 ope.set_etat_qcq() ;
1729 sec.set_etat_qcq() ;
1734 sec.set(nr+
lin) = -0.5*(*
source.get_spectral_va().c_cf)
1741 for (
int i=0;
i<nr;
i++) {
1748 for (
int i=0;
i<nr;
i++) {
1755 for (
int i=0;
i<nr;
i++) {
1764 int taille = 2*(nz-1) ;
1774 for (
int k=0 ;
k<np+1 ;
k++)
1775 for (
int j=0 ;
j<nt ;
j++) {
1777 if ((nullite_plm(
j, nt,
k, np, base) == 1) && (
l_q < 2)) {
1784 int nr =
mgrid.get_nr(0) ;
1833 nr =
mgrid.get_nr(nz-1) ;
1861 nr =
mgrid.get_nr(0) ;
1862 for (
int i=0 ;
i<nr ;
i++) {
1868 for (
int i=0 ;
i<nr ;
i++) {
1879 nr =
mgrid.get_nr(nz-1) ;
1880 for (
int i=0 ;
i<nr ;
i++) {
Bases of the spectral expansions.
void mult_x()
The basis is transformed as with a multiplication by .
int give_lmax(const Mg3d &mgrid, int lz) const
Returns the highest multipole for a given grid.
void give_quant_numbers(int, int, int, int &, int &, int &) const
Computes the various quantum numbers and 1d radial base.
Class for the elementary differential operator (see the base class Diff ).
Class for the elementary differential operator Identity (see the base class Diff ).
Class for the elementary differential operator division by (see the base class Diff ).
Class for the elementary differential operator (see the base class Diff ).
Time evolution with partial storage (*** under development ***).
Basic integer array class.
const double * get_beta() const
Returns the pointer on the array beta.
const double * get_alpha() const
Returns the pointer on the array alpha.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Coefficients storage for the multi-domain spectral method.
void annule_hard()
Sets the Mtbl_cf to zero in a hard way.
Tensor field of valence 0 (or component of a tensorial field).
bool check_dzpuis(int dzi) const
Returns false if the last domain is compactified and *this is not zero in this domain and dzpuis is n...
const Scalar & dsdr() const
Returns of *this .
Valeur & set_spectral_va()
Returns va (read/write version)
void annule_hard()
Sets the Scalar to zero in a hard way.
int get_etat() const
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary).
void set_spectral_base(const Base_val &)
Sets the spectral bases of the Valeur va
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...
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...
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 .
void set_etat_cf_qcq()
Sets the logical state to ETATQCQ (ordinary state) for values in the configuration space (Mtbl_cf c_c...
Mtbl * c
Values of the function at the points of the multi-grid
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
void ylm_i()
Inverse of ylm()
#define R_CHEBP
base de Cheb. paire (rare) seulement
const Map *const mp
Mapping on which the numerical values at the grid points are defined.