00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef __MAP_H_
00037 #define __MAP_H_
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608 #include <stdio.h>
00609
00610 #include "coord.h"
00611 #include "base_vect.h"
00612 #include "valeur.h"
00613 #include "tbl.h"
00614 #include "itbl.h"
00615
00616 class Scalar ;
00617 class Cmp ;
00618 class Param ;
00619 class Map_af ;
00620 class Map_et ;
00621 class Tenseur ;
00622 class Param_elliptic ;
00623 class Metric_flat ;
00624 class Tbl ;
00625 class Itbl ;
00626
00627
00628
00629
00630
00660 class Map {
00661
00662
00663
00664 protected:
00666 const Mg3d* mg ;
00667
00668 double ori_x ;
00669 double ori_y ;
00670 double ori_z ;
00671 double rot_phi ;
00672
00679 Base_vect_spher bvect_spher ;
00680
00687 Base_vect_cart bvect_cart ;
00688
00692 mutable Metric_flat* p_flat_met_spher ;
00693
00697 mutable Metric_flat* p_flat_met_cart ;
00698
00703 Cmp* p_cmp_zero ;
00704
00705 mutable Map_af* p_mp_angu ;
00706
00707 public:
00708 Coord r ;
00709 Coord tet ;
00710 Coord phi ;
00711 Coord sint ;
00712 Coord cost ;
00713 Coord sinp ;
00714 Coord cosp ;
00715
00716 Coord x ;
00717 Coord y ;
00718 Coord z ;
00719
00720 Coord xa ;
00721 Coord ya ;
00722 Coord za ;
00723
00724
00725
00726
00727
00728 protected:
00729 explicit Map(const Mg3d& ) ;
00730 Map(const Map &) ;
00731 Map(const Mg3d&, FILE* ) ;
00732
00733 public:
00734 virtual ~Map() ;
00735
00736
00737
00738 protected:
00739 virtual void reset_coord() ;
00740
00741
00742
00743 private:
00744 virtual ostream& operator>>(ostream &) const = 0 ;
00745
00746 public:
00747 virtual void sauve(FILE* ) const ;
00748
00749
00750
00751
00752
00753 public:
00755 const Mg3d* get_mg() const {return mg; };
00756
00758 double get_ori_x() const {return ori_x;} ;
00760 double get_ori_y() const {return ori_y;} ;
00762 double get_ori_z() const {return ori_z;} ;
00763
00765 double get_rot_phi() const {return rot_phi;} ;
00766
00773 const Base_vect_spher& get_bvect_spher() const {return bvect_spher;} ;
00774
00781 const Base_vect_cart& get_bvect_cart() const {return bvect_cart;} ;
00782
00786 const Metric_flat& flat_met_spher() const ;
00787
00791 const Metric_flat& flat_met_cart() const ;
00792
00797 const Cmp& cmp_zero() const {return *p_cmp_zero;} ;
00798
00802 virtual const Map_af& mp_angu(int) const = 0 ;
00803
00814 void convert_absolute(double xx, double yy, double zz,
00815 double& rr, double& theta, double& pphi) const ;
00816
00825 virtual double val_r(int l, double xi, double theta, double pphi)
00826 const = 0 ;
00827
00836 virtual void val_lx(double rr, double theta, double pphi,
00837 int& l, double& xi) const = 0 ;
00838
00851 virtual void val_lx(double rr, double theta, double pphi,
00852 const Param& par, int& l, double& xi) const = 0 ;
00853
00854
00856 virtual bool operator==(const Map& ) const = 0;
00857
00858
00859
00860
00861
00862 public:
00863 void set_ori(double xa0, double ya0, double za0) ;
00864 void set_rot_phi(double phi0) ;
00865
00870 virtual void homothetie(double lambda) = 0 ;
00871
00881 virtual void resize(int l, double lambda) = 0 ;
00882
00883
00884
00885 public:
00887 virtual void operator=(const Map_af& ) = 0 ;
00888
00894 virtual void adapt(const Cmp& ent, const Param& par, int nbr=0) = 0 ;
00895
00896
00897
00898
00911 virtual void reevaluate(const Map* mp_prev, int nzet,
00912 Cmp& uu) const = 0 ;
00913
00927 virtual void reevaluate_symy(const Map* mp_prev, int nzet,
00928 Cmp& uu) const = 0 ;
00929
00942 virtual void reevaluate(const Map* mp_prev, int nzet,
00943 Scalar& uu) const = 0 ;
00944
00958 virtual void reevaluate_symy(const Map* mp_prev, int nzet,
00959 Scalar& uu) const = 0 ;
00960
00961
00962
00963 public:
00970 virtual void dsdxi(const Cmp& ci, Cmp& resu) const = 0 ;
00971
00978 virtual void dsdr(const Cmp& ci, Cmp& resu) const = 0 ;
00979
00986 virtual void srdsdt(const Cmp& ci, Cmp& resu) const = 0 ;
00987
00995 virtual void srstdsdp(const Cmp& ci, Cmp& resu) const = 0 ;
00996
01004 virtual void dsdxi(const Scalar& uu, Scalar& resu) const = 0 ;
01005
01013 virtual void dsdr(const Scalar& uu, Scalar& resu) const = 0 ;
01014
01023 virtual void dsdradial(const Scalar& uu, Scalar& resu) const = 0 ;
01024
01032 virtual void srdsdt(const Scalar& uu, Scalar& resu) const = 0 ;
01033
01041 virtual void srstdsdp(const Scalar& uu, Scalar& resu) const = 0 ;
01042
01047 virtual void dsdt(const Scalar& uu, Scalar& resu) const = 0 ;
01048
01053 virtual void stdsdp(const Scalar& uu, Scalar& resu) const = 0 ;
01054
01065 virtual void laplacien(const Scalar& uu, int zec_mult_r,
01066 Scalar& lap) const = 0 ;
01067
01069 virtual void laplacien(const Cmp& uu, int zec_mult_r,
01070 Cmp& lap) const = 0 ;
01071
01078 virtual void lapang(const Scalar& uu, Scalar& lap) const = 0 ;
01079
01080
01091 virtual void primr(const Scalar& uu, Scalar& resu,
01092 bool null_infty) const = 0 ;
01093
01094
01095
01096
01097 public:
01101 virtual void mult_r(Scalar& uu) const = 0 ;
01102
01106 virtual void mult_r(Cmp& ci) const = 0 ;
01107
01111 virtual void mult_r_zec(Scalar& ) const = 0 ;
01112
01115 virtual void mult_rsint(Scalar& ) const = 0 ;
01116
01119 virtual void div_rsint(Scalar& ) const = 0 ;
01120
01123 virtual void div_r(Scalar& ) const = 0 ;
01124
01128 virtual void div_r_zec(Scalar& ) const = 0 ;
01129
01132 virtual void mult_cost(Scalar& ) const = 0 ;
01133
01136 virtual void div_cost(Scalar& ) const = 0 ;
01137
01140 virtual void mult_sint(Scalar& ) const = 0 ;
01141
01144 virtual void div_sint(Scalar& ) const = 0 ;
01145
01148 virtual void div_tant(Scalar& ) const = 0 ;
01149
01159 virtual void comp_x_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01160 const Scalar& v_phi, Scalar& v_x) const = 0 ;
01162 virtual void comp_x_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01163 const Cmp& v_phi, Cmp& v_x) const = 0 ;
01164
01174 virtual void comp_y_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01175 const Scalar& v_phi, Scalar& v_y) const = 0 ;
01176
01178 virtual void comp_y_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01179 const Cmp& v_phi, Cmp& v_y) const = 0 ;
01180
01189 virtual void comp_z_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01190 Scalar& v_z) const = 0 ;
01191
01193 virtual void comp_z_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01194 Cmp& v_z) const = 0 ;
01195
01205 virtual void comp_r_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01206 const Scalar& v_z, Scalar& v_r) const = 0 ;
01208 virtual void comp_r_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01209 const Cmp& v_z, Cmp& v_r) const = 0 ;
01210
01220 virtual void comp_t_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01221 const Scalar& v_z, Scalar& v_t) const = 0 ;
01222
01224 virtual void comp_t_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01225 const Cmp& v_z, Cmp& v_t) const = 0 ;
01226
01235 virtual void comp_p_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01236 Scalar& v_p) const = 0 ;
01237
01239 virtual void comp_p_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01240 Cmp& v_p) const = 0 ;
01241
01246 virtual void dec_dzpuis(Scalar& ) const = 0 ;
01247
01252 virtual void dec2_dzpuis(Scalar& ) const = 0 ;
01253
01258 virtual void inc_dzpuis(Scalar& ) const = 0 ;
01259
01264 virtual void inc2_dzpuis(Scalar& ) const = 0 ;
01265
01273 virtual Tbl* integrale(const Cmp&) const = 0 ;
01274
01275
01276
01277 public:
01288 virtual void poisson(const Cmp& source, Param& par, Cmp& uu) const = 0 ;
01289
01300 virtual void poisson_tau(const Cmp& source, Param& par, Cmp& uu) const = 0 ;
01301
01302 virtual void poisson_falloff(const Cmp& source, Param& par, Cmp& uu,
01303 int k_falloff) const = 0 ;
01304
01305 virtual void poisson_ylm(const Cmp& source, Param& par, Cmp& pot,
01306 int nylm, double* intvec) const = 0 ;
01307
01330 virtual void poisson_regular(const Cmp& source, int k_div, int nzet,
01331 double unsgam1, Param& par, Cmp& uu,
01332 Cmp& uu_regu, Cmp& uu_div,
01333 Tenseur& duu_div, Cmp& source_regu,
01334 Cmp& source_div) const = 0 ;
01335
01349 virtual void poisson_compact(const Cmp& source, const Cmp& aa,
01350 const Tenseur& bb, const Param& par,
01351 Cmp& psi) const = 0 ;
01352
01367 virtual void poisson_compact(int nzet, const Cmp& source, const Cmp& aa,
01368 const Tenseur& bb, const Param& par,
01369 Cmp& psi) const = 0 ;
01370
01388 virtual void poisson_angu(const Scalar& source, Param& par,
01389 Scalar& uu, double lambda=0) const = 0 ;
01390
01391
01392 public:
01416 virtual Param* donne_para_poisson_vect (Param& para, int i) const = 0;
01417
01438 virtual void poisson_frontiere (const Cmp& source,const Valeur& limite,
01439 int raccord, int num_front, Cmp& pot,
01440 double = 0., double = 0.) const = 0 ;
01441
01442 virtual void poisson_frontiere_double (const Cmp& source, const Valeur& lim_func,
01443 const Valeur& lim_der, int num_zone, Cmp& pot) const = 0 ;
01444
01445
01456 virtual void poisson_interne (const Cmp& source, const Valeur& limite,
01457 Param& par, Cmp& pot) const = 0 ;
01458
01459
01481 virtual void poisson2d(const Cmp& source_mat, const Cmp& source_quad,
01482 Param& par, Cmp& uu) const = 0 ;
01483
01497 virtual void dalembert(Param& par, Scalar& fJp1, const Scalar& fJ,
01498 const Scalar& fJm1, const Scalar& source) const = 0 ;
01499
01500
01501
01502 friend ostream& operator<<(ostream& , const Map& ) ;
01503 };
01504 ostream& operator<<(ostream& , const Map& ) ;
01505
01506
01507
01508
01509
01510
01511
01512
01513
01526 class Map_radial : public Map {
01527
01528
01529
01530
01531
01532
01533 public:
01539 Coord xsr ;
01540
01541
01542
01543 public:
01550 Coord dxdr ;
01551
01558 Coord drdt ;
01559
01566 Coord stdrdp ;
01567
01574 Coord srdrdt ;
01575
01582 Coord srstdrdp ;
01583
01590 Coord sr2drdt ;
01591
01598 Coord sr2stdrdp ;
01599
01600
01601
01602 public:
01609 Coord d2rdx2 ;
01610
01621 Coord lapr_tp ;
01622
01623
01630 Coord d2rdtdx ;
01631
01638 Coord sstd2rdpdx ;
01639
01640
01647 Coord sr2d2rdt2 ;
01648
01649
01650
01651
01652
01653 protected:
01655 Map_radial(const Mg3d& mgrid ) ;
01656 Map_radial(const Map_radial& mp) ;
01657 Map_radial (const Mg3d&, FILE* ) ;
01658
01659 public:
01660 virtual ~Map_radial() ;
01661
01662
01663
01664 protected:
01665 virtual void reset_coord() ;
01666
01667
01668 public:
01670 virtual void operator=(const Map_af& ) = 0 ;
01671
01672
01673
01674 public:
01675 virtual void sauve(FILE* ) const ;
01676
01677
01678
01688 virtual double val_r_jk(int l, double xi, int j, int k) const = 0 ;
01689
01700 virtual void val_lx_jk(double rr, int j, int k, const Param& par,
01701 int& l, double& xi) const = 0 ;
01702
01704 virtual bool operator==(const Map& ) const = 0;
01705
01706
01707
01720 virtual void reevaluate(const Map* mp_prev, int nzet, Cmp& uu) const ;
01721
01735 virtual void reevaluate_symy(const Map* mp_prev, int nzet, Cmp& uu)
01736 const ;
01737
01750 virtual void reevaluate(const Map* mp_prev, int nzet, Scalar& uu) const ;
01751
01765 virtual void reevaluate_symy(const Map* mp_prev, int nzet, Scalar& uu)
01766 const ;
01767
01768
01769
01770 public:
01774 virtual void mult_r(Scalar& uu) const ;
01775
01779 virtual void mult_r(Cmp& ci) const ;
01780
01785 virtual void mult_r_zec(Scalar& ) const ;
01786
01789 virtual void mult_rsint(Scalar& ) const ;
01790
01793 virtual void div_rsint(Scalar& ) const ;
01794
01797 virtual void div_r(Scalar& ) const ;
01798
01802 virtual void div_r_zec(Scalar& ) const ;
01803
01806 virtual void mult_cost(Scalar& ) const ;
01807
01810 virtual void div_cost(Scalar& ) const ;
01811
01814 virtual void mult_sint(Scalar& ) const ;
01815
01818 virtual void div_sint(Scalar& ) const ;
01819
01822 virtual void div_tant(Scalar& ) const ;
01823
01833 virtual void comp_x_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01834 const Scalar& v_phi, Scalar& v_x) const ;
01835
01837 virtual void comp_x_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01838 const Cmp& v_phi, Cmp& v_x) const ;
01839
01849 virtual void comp_y_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01850 const Scalar& v_phi, Scalar& v_y) const ;
01851
01853 virtual void comp_y_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01854 const Cmp& v_phi, Cmp& v_y) const ;
01855
01864 virtual void comp_z_from_spherical(const Scalar& v_r, const Scalar& v_theta,
01865 Scalar& v_z) const ;
01866
01868 virtual void comp_z_from_spherical(const Cmp& v_r, const Cmp& v_theta,
01869 Cmp& v_z) const ;
01870
01880 virtual void comp_r_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01881 const Scalar& v_z, Scalar& v_r) const ;
01882
01884 virtual void comp_r_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01885 const Cmp& v_z, Cmp& v_r) const ;
01886
01896 virtual void comp_t_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01897 const Scalar& v_z, Scalar& v_t) const ;
01898
01900 virtual void comp_t_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01901 const Cmp& v_z, Cmp& v_t) const ;
01902
01911 virtual void comp_p_from_cartesian(const Scalar& v_x, const Scalar& v_y,
01912 Scalar& v_p) const ;
01913
01915 virtual void comp_p_from_cartesian(const Cmp& v_x, const Cmp& v_y,
01916 Cmp& v_p) const ;
01917
01923 virtual void dec_dzpuis(Scalar& ) const ;
01924
01930 virtual void dec2_dzpuis(Scalar& ) const ;
01931
01937 virtual void inc_dzpuis(Scalar& ) const ;
01938
01944 virtual void inc2_dzpuis(Scalar& ) const ;
01945
01946
01947
01948
01949 public:
01972 virtual void poisson_compact(const Cmp& source, const Cmp& aa,
01973 const Tenseur& bb, const Param& par,
01974 Cmp& psi) const ;
01975
01990 virtual void poisson_compact(int nzet, const Cmp& source, const Cmp& aa,
01991 const Tenseur& bb, const Param& par,
01992 Cmp& psi) const ;
01993
01994 };
01995
01996
01997
01998
01999
02000
02001
02002
02017 class Map_af : public Map_radial {
02018
02019
02020
02021 private:
02023 double* alpha ;
02025 double* beta ;
02026
02027
02028
02029 public:
02041 Map_af(const Mg3d& mgrille, const double* r_limits) ;
02054 Map_af(const Mg3d& mgrille, const Tbl& r_limits) ;
02055
02056 Map_af(const Map_af& ) ;
02057 Map_af(const Mg3d&, FILE* ) ;
02058
02070 explicit Map_af(const Map& ) ;
02071
02072 virtual ~Map_af() ;
02073
02074
02075
02076 public:
02078 virtual void operator=(const Map_af& ) ;
02079
02080
02081
02082 private:
02084 void set_coord() ;
02085
02086
02087
02088 public:
02090 const double* get_alpha() const ;
02091
02093 const double* get_beta() const ;
02094
02098 virtual const Map_af& mp_angu(int) const ;
02099
02109 virtual double val_r(int l, double xi, double theta, double pphi) const ;
02110
02120 virtual void val_lx(double rr, double theta, double pphi,
02121 int& l, double& xi) const ;
02122
02132 virtual void val_lx(double rr, double theta, double pphi,
02133 const Param& par, int& l, double& xi) const ;
02134
02144 virtual double val_r_jk(int l, double xi, int j, int k) const ;
02145
02155 virtual void val_lx_jk(double rr, int j, int k, const Param& par,
02156 int& l, double& xi) const ;
02157
02159 virtual bool operator==(const Map& ) const ;
02160
02161
02162
02163
02164 public:
02165 virtual void sauve(FILE* ) const ;
02166
02167 private:
02168 virtual ostream& operator>>(ostream &) const ;
02169
02170
02171
02172 public:
02177 virtual void homothetie(double lambda) ;
02178
02188 virtual void resize(int l, double lambda) ;
02189
02195 void homothetie_interne(double lambda) ;
02196
02199 virtual void adapt(const Cmp& ent, const Param& par, int nbr=0) ;
02200
02202 void set_alpha(double alpha0, int l) ;
02203
02205 void set_beta(double beta0, int l) ;
02206
02207
02208
02209 public:
02216 virtual void dsdxi(const Cmp& ci, Cmp& resu) const ;
02217
02224 virtual void dsdr(const Cmp& ci, Cmp& resu) const ;
02225
02232 virtual void srdsdt(const Cmp& ci, Cmp& resu) const ;
02233
02241 virtual void srstdsdp(const Cmp& ci, Cmp& resu) const ;
02242
02250 virtual void dsdr(const Scalar& uu, Scalar& resu) const ;
02251
02259 virtual void dsdxi(const Scalar& uu, Scalar& resu) const ;
02260
02268 virtual void dsdradial(const Scalar&, Scalar&) const ;
02269
02277 virtual void srdsdt(const Scalar& uu, Scalar& resu) const ;
02278
02286 virtual void srstdsdp(const Scalar& uu, Scalar& resu) const ;
02287
02292 virtual void dsdt(const Scalar& uu, Scalar& resu) const ;
02293
02298 virtual void stdsdp(const Scalar& uu, Scalar& resu) const ;
02299
02310 virtual void laplacien(const Scalar& uu, int zec_mult_r,
02311 Scalar& lap) const ;
02312
02314 virtual void laplacien(const Cmp& uu, int zec_mult_r,
02315 Cmp& lap) const ;
02316
02323 virtual void lapang(const Scalar& uu, Scalar& lap) const ;
02324
02325
02336 virtual void primr(const Scalar& uu, Scalar& resu,
02337 bool null_infty) const ;
02338
02339
02347 virtual Tbl* integrale(const Cmp&) const ;
02348
02349
02350
02351
02352 public:
02360 virtual void poisson(const Cmp& source, Param& par, Cmp& uu) const ;
02361
02369 virtual void poisson_tau(const Cmp& source, Param& par, Cmp& uu) const ;
02370
02371 virtual void poisson_falloff(const Cmp& source, Param& par, Cmp& uu,
02372 int k_falloff) const ;
02373
02374 virtual void poisson_ylm(const Cmp& source, Param& par, Cmp& pot,
02375 int nylm, double* intvec) const ;
02376
02398 virtual void poisson_regular(const Cmp& source, int k_div, int nzet,
02399 double unsgam1, Param& par, Cmp& uu,
02400 Cmp& uu_regu, Cmp& uu_div,
02401 Tenseur& duu_div, Cmp& source_regu,
02402 Cmp& source_div) const ;
02403
02421 virtual void poisson_angu(const Scalar& source, Param& par,
02422 Scalar& uu, double lambda=0) const ;
02423
02433 virtual Param* donne_para_poisson_vect (Param& par, int i) const ;
02434
02439 virtual void poisson_frontiere (const Cmp&, const Valeur&, int, int, Cmp&, double = 0., double = 0.) const ;
02440
02446 virtual void poisson_frontiere_double (const Cmp& source, const Valeur& lim_func,
02447 const Valeur& lim_der, int num_zone, Cmp& pot) const ;
02448
02459 virtual void poisson_interne (const Cmp& source, const Valeur& limite,
02460 Param& par, Cmp& pot) const ;
02461
02466 double integrale_surface (const Cmp& ci, double rayon) const ;
02467
02472 double integrale_surface (const Scalar& ci, double rayon) const ;
02473
02474 double integrale_surface_falloff (const Cmp& ci) const ;
02475
02480 double integrale_surface_infini (const Cmp& ci) const ;
02481
02486 double integrale_surface_infini (const Scalar& ci) const ;
02487
02495 void sol_elliptic (Param_elliptic& params,
02496 const Scalar& so, Scalar& uu) const ;
02497
02498
02510 void sol_elliptic_boundary (Param_elliptic& params,
02511 const Scalar& so, Scalar& uu, const Mtbl_cf& bound,
02512 double fact_dir, double fact_neu ) const ;
02513
02518 void sol_elliptic_boundary (Param_elliptic& params,
02519 const Scalar& so, Scalar& uu, const Scalar& bound,
02520 double fact_dir, double fact_neu ) const ;
02521
02531 void sol_elliptic_no_zec (Param_elliptic& params,
02532 const Scalar& so, Scalar& uu, double val) const ;
02533
02543 void sol_elliptic_only_zec (Param_elliptic& params,
02544 const Scalar& so, Scalar& uu, double val) const ;
02545
02551 void sol_elliptic_sin_zec (Param_elliptic& params,
02552 const Scalar& so, Scalar& uu,
02553 double* coefs, double*) const ;
02564 void sol_elliptic_fixe_der_zero (double val,
02565 Param_elliptic& params,
02566 const Scalar& so, Scalar& uu) const ;
02567
02592 virtual void poisson2d(const Cmp& source_mat, const Cmp& source_quad,
02593 Param& par, Cmp& uu) const ;
02601 void sol_elliptic_2d(Param_elliptic&,
02602 const Scalar&, Scalar&) const ;
02610 void sol_elliptic_pseudo_1d(Param_elliptic&,
02611 const Scalar&, Scalar&) const ;
02612
02641 virtual void dalembert(Param& par, Scalar& fJp1, const Scalar& fJ,
02642 const Scalar& fJm1, const Scalar& source) const ;
02643
02644
02645
02646 friend Mtbl* map_af_fait_r(const Map* ) ;
02647 friend Mtbl* map_af_fait_tet(const Map* ) ;
02648 friend Mtbl* map_af_fait_phi(const Map* ) ;
02649 friend Mtbl* map_af_fait_sint(const Map* ) ;
02650 friend Mtbl* map_af_fait_cost(const Map* ) ;
02651 friend Mtbl* map_af_fait_sinp(const Map* ) ;
02652 friend Mtbl* map_af_fait_cosp(const Map* ) ;
02653
02654 friend Mtbl* map_af_fait_x(const Map* ) ;
02655 friend Mtbl* map_af_fait_y(const Map* ) ;
02656 friend Mtbl* map_af_fait_z(const Map* ) ;
02657
02658 friend Mtbl* map_af_fait_xa(const Map* ) ;
02659 friend Mtbl* map_af_fait_ya(const Map* ) ;
02660 friend Mtbl* map_af_fait_za(const Map* ) ;
02661
02662 friend Mtbl* map_af_fait_xsr(const Map* ) ;
02663 friend Mtbl* map_af_fait_dxdr(const Map* ) ;
02664 friend Mtbl* map_af_fait_drdt(const Map* ) ;
02665 friend Mtbl* map_af_fait_stdrdp(const Map* ) ;
02666 friend Mtbl* map_af_fait_srdrdt(const Map* ) ;
02667 friend Mtbl* map_af_fait_srstdrdp(const Map* ) ;
02668 friend Mtbl* map_af_fait_sr2drdt(const Map* ) ;
02669 friend Mtbl* map_af_fait_sr2stdrdp(const Map* ) ;
02670 friend Mtbl* map_af_fait_d2rdx2(const Map* ) ;
02671 friend Mtbl* map_af_fait_lapr_tp(const Map* ) ;
02672 friend Mtbl* map_af_fait_d2rdtdx(const Map* ) ;
02673 friend Mtbl* map_af_fait_sstd2rdpdx(const Map* ) ;
02674 friend Mtbl* map_af_fait_sr2d2rdt2(const Map* ) ;
02675
02676 };
02677
02678 Mtbl* map_af_fait_r(const Map* ) ;
02679 Mtbl* map_af_fait_tet(const Map* ) ;
02680 Mtbl* map_af_fait_phi(const Map* ) ;
02681 Mtbl* map_af_fait_sint(const Map* ) ;
02682 Mtbl* map_af_fait_cost(const Map* ) ;
02683 Mtbl* map_af_fait_sinp(const Map* ) ;
02684 Mtbl* map_af_fait_cosp(const Map* ) ;
02685
02686 Mtbl* map_af_fait_x(const Map* ) ;
02687 Mtbl* map_af_fait_y(const Map* ) ;
02688 Mtbl* map_af_fait_z(const Map* ) ;
02689
02690 Mtbl* map_af_fait_xa(const Map* ) ;
02691 Mtbl* map_af_fait_ya(const Map* ) ;
02692 Mtbl* map_af_fait_za(const Map* ) ;
02693
02694 Mtbl* map_af_fait_xsr(const Map* ) ;
02695 Mtbl* map_af_fait_dxdr(const Map* ) ;
02696 Mtbl* map_af_fait_drdt(const Map* ) ;
02697 Mtbl* map_af_fait_stdrdp(const Map* ) ;
02698 Mtbl* map_af_fait_srdrdt(const Map* ) ;
02699 Mtbl* map_af_fait_srstdrdp(const Map* ) ;
02700 Mtbl* map_af_fait_sr2drdt(const Map* ) ;
02701 Mtbl* map_af_fait_sr2stdrdp(const Map* ) ;
02702 Mtbl* map_af_fait_d2rdx2(const Map* ) ;
02703 Mtbl* map_af_fait_lapr_tp(const Map* ) ;
02704 Mtbl* map_af_fait_d2rdtdx(const Map* ) ;
02705 Mtbl* map_af_fait_sstd2rdpdx(const Map* ) ;
02706 Mtbl* map_af_fait_sr2d2rdt2(const Map* ) ;
02707
02708
02709
02710
02711
02712
02713
02714
02715
02716
02742 class Map_et : public Map_radial {
02743
02744
02745
02746 private:
02748 double* alpha ;
02750 double* beta ;
02751
02755 Tbl** aa ;
02756
02760 Tbl** daa ;
02761
02765 Tbl** ddaa ;
02766
02768 Tbl aasx ;
02769
02771 Tbl aasx2 ;
02772
02776 Tbl zaasx ;
02777
02781 Tbl zaasx2 ;
02782
02786 Tbl** bb ;
02787
02791 Tbl** dbb ;
02792
02796 Tbl** ddbb ;
02797
02799 Tbl bbsx ;
02800
02802 Tbl bbsx2 ;
02803
02809 Valeur ff ;
02810
02816 Valeur gg ;
02817
02818 public:
02824 Coord rsxdxdr ;
02825
02831 Coord rsx2drdx ;
02832
02833
02834
02835 public:
02847 Map_et(const Mg3d& mgrille, const double* r_limits) ;
02848
02866 Map_et(const Mg3d& mgrille, const double* r_limits,const Tbl& tab);
02867 Map_et(const Map_et& ) ;
02868 Map_et(const Mg3d&, FILE* ) ;
02869
02870 virtual ~Map_et() ;
02871
02872
02873
02874 public:
02876 virtual void operator=(const Map_et& mp) ;
02877
02879 virtual void operator=(const Map_af& mpa) ;
02880
02882 void set_ff(const Valeur& ) ;
02884 void set_gg(const Valeur& ) ;
02885
02886
02887
02888 private:
02890 void set_coord() ;
02891 protected:
02893 virtual void reset_coord() ;
02894
02895 private:
02897 void fait_poly() ;
02898
02899
02900
02901 public:
02905 virtual const Map_af& mp_angu(int) const ;
02906
02910 const double* get_alpha() const ;
02911
02915 const double* get_beta() const ;
02916
02918 const Valeur& get_ff() const ;
02919
02921 const Valeur& get_gg() const ;
02922
02932 virtual double val_r(int l, double xi, double theta, double pphi) const ;
02933
02943 virtual void val_lx(double rr, double theta, double pphi,
02944 int& l, double& xi) const ;
02945
02964 virtual void val_lx(double rr, double theta, double pphi,
02965 const Param& par, int& l, double& xi) const ;
02966
02968 virtual bool operator==(const Map& ) const ;
02969
02979 virtual double val_r_jk(int l, double xi, int j, int k) const ;
02980
02997 virtual void val_lx_jk(double rr, int j, int k, const Param& par,
02998 int& l, double& xi) const ;
02999
03000
03001
03002
03003
03004 public:
03005 virtual void sauve(FILE* ) const ;
03006
03007 private:
03008 virtual ostream& operator>>(ostream &) const ;
03009
03010
03011
03012 public:
03017 virtual void homothetie(double lambda) ;
03018
03028 virtual void resize(int l, double lambda) ;
03029
03036 void resize_extr(double lambda) ;
03037
03039 void set_alpha(double alpha0, int l) ;
03040
03042 void set_beta(double beta0, int l) ;
03043
03044
03045
03090 virtual void adapt(const Cmp& ent, const Param& par, int nbr_filtre = 0) ;
03091
03092
03093
03094 public:
03101 virtual void dsdxi(const Cmp& ci, Cmp& resu) const ;
03102
03109 virtual void dsdr(const Cmp& ci, Cmp& resu) const ;
03110
03117 virtual void srdsdt(const Cmp& ci, Cmp& resu) const ;
03118
03126 virtual void srstdsdp(const Cmp& ci, Cmp& resu) const ;
03127
03135 virtual void dsdxi(const Scalar& uu, Scalar& resu) const ;
03136
03144 virtual void dsdr(const Scalar& uu, Scalar& resu) const ;
03145
03154 virtual void dsdradial(const Scalar& uu, Scalar& resu) const ;
03155
03163 virtual void srdsdt(const Scalar& uu, Scalar& resu) const ;
03164
03172 virtual void srstdsdp(const Scalar& uu, Scalar& resu) const ;
03173
03178 virtual void dsdt(const Scalar& uu, Scalar& resu) const ;
03179
03184 virtual void stdsdp(const Scalar& uu, Scalar& resu) const ;
03185
03196 virtual void laplacien(const Scalar& uu, int zec_mult_r,
03197 Scalar& lap) const ;
03198
03200 virtual void laplacien(const Cmp& uu, int zec_mult_r,
03201 Cmp& lap) const ;
03202
03209 virtual void lapang(const Scalar& uu, Scalar& lap) const ;
03210
03211
03222 virtual void primr(const Scalar& uu, Scalar& resu,
03223 bool null_infty) const ;
03224
03225
03233 virtual Tbl* integrale(const Cmp&) const ;
03234
03235
03236
03237
03238 public:
03276 virtual void poisson(const Cmp& source, Param& par, Cmp& uu) const ;
03277
03315 virtual void poisson_tau(const Cmp& source, Param& par, Cmp& uu) const ;
03316
03317 virtual void poisson_falloff(const Cmp& source, Param& par, Cmp& uu,
03318 int k_falloff) const ;
03319
03320 virtual void poisson_ylm(const Cmp& source, Param& par, Cmp& uu,
03321 int nylm, double* intvec) const ;
03322
03358 virtual void poisson_regular(const Cmp& source, int k_div, int nzet,
03359 double unsgam1, Param& par, Cmp& uu,
03360 Cmp& uu_regu, Cmp& uu_div,
03361 Tenseur& duu_div, Cmp& source_regu,
03362 Cmp& source_div) const ;
03363
03381 virtual void poisson_angu(const Scalar& source, Param& par,
03382 Scalar& uu, double lambda=0) const ;
03383
03407 virtual Param* donne_para_poisson_vect (Param& para, int i) const ;
03408
03412 virtual void poisson_frontiere (const Cmp&, const Valeur&, int, int,
03413 Cmp&, double = 0., double = 0.) const ;
03414 virtual void poisson_frontiere_double (const Cmp& source,
03415 const Valeur& lim_func, const Valeur& lim_der,
03416 int num_zone, Cmp& pot) const ;
03417
03428 virtual void poisson_interne (const Cmp& source, const Valeur& limite,
03429 Param& par, Cmp& pot) const ;
03430
03431
03470 virtual void poisson2d(const Cmp& source_mat, const Cmp& source_quad,
03471 Param& par, Cmp& uu) const ;
03472
03476 virtual void dalembert(Param& par, Scalar& fJp1, const Scalar& fJ,
03477 const Scalar& fJm1, const Scalar& source) const ;
03478
03479
03480
03481
03482
03483
03484 friend Mtbl* map_et_fait_r(const Map* ) ;
03485 friend Mtbl* map_et_fait_tet(const Map* ) ;
03486 friend Mtbl* map_et_fait_phi(const Map* ) ;
03487 friend Mtbl* map_et_fait_sint(const Map* ) ;
03488 friend Mtbl* map_et_fait_cost(const Map* ) ;
03489 friend Mtbl* map_et_fait_sinp(const Map* ) ;
03490 friend Mtbl* map_et_fait_cosp(const Map* ) ;
03491
03492 friend Mtbl* map_et_fait_x(const Map* ) ;
03493 friend Mtbl* map_et_fait_y(const Map* ) ;
03494 friend Mtbl* map_et_fait_z(const Map* ) ;
03495
03496 friend Mtbl* map_et_fait_xa(const Map* ) ;
03497 friend Mtbl* map_et_fait_ya(const Map* ) ;
03498 friend Mtbl* map_et_fait_za(const Map* ) ;
03499
03500 friend Mtbl* map_et_fait_xsr(const Map* ) ;
03501 friend Mtbl* map_et_fait_dxdr(const Map* ) ;
03502 friend Mtbl* map_et_fait_drdt(const Map* ) ;
03503 friend Mtbl* map_et_fait_stdrdp(const Map* ) ;
03504 friend Mtbl* map_et_fait_srdrdt(const Map* ) ;
03505 friend Mtbl* map_et_fait_srstdrdp(const Map* ) ;
03506 friend Mtbl* map_et_fait_sr2drdt(const Map* ) ;
03507 friend Mtbl* map_et_fait_sr2stdrdp(const Map* ) ;
03508 friend Mtbl* map_et_fait_d2rdx2(const Map* ) ;
03509 friend Mtbl* map_et_fait_lapr_tp(const Map* ) ;
03510 friend Mtbl* map_et_fait_d2rdtdx(const Map* ) ;
03511 friend Mtbl* map_et_fait_sstd2rdpdx(const Map* ) ;
03512 friend Mtbl* map_et_fait_sr2d2rdt2(const Map* ) ;
03513
03514 friend Mtbl* map_et_fait_rsxdxdr(const Map* ) ;
03515 friend Mtbl* map_et_fait_rsx2drdx(const Map* ) ;
03516
03517 };
03518
03519 Mtbl* map_et_fait_r(const Map* ) ;
03520 Mtbl* map_et_fait_tet(const Map* ) ;
03521 Mtbl* map_et_fait_phi(const Map* ) ;
03522 Mtbl* map_et_fait_sint(const Map* ) ;
03523 Mtbl* map_et_fait_cost(const Map* ) ;
03524 Mtbl* map_et_fait_sinp(const Map* ) ;
03525 Mtbl* map_et_fait_cosp(const Map* ) ;
03526
03527 Mtbl* map_et_fait_x(const Map* ) ;
03528 Mtbl* map_et_fait_y(const Map* ) ;
03529 Mtbl* map_et_fait_z(const Map* ) ;
03530
03531 Mtbl* map_et_fait_xa(const Map* ) ;
03532 Mtbl* map_et_fait_ya(const Map* ) ;
03533 Mtbl* map_et_fait_za(const Map* ) ;
03534
03535 Mtbl* map_et_fait_xsr(const Map* ) ;
03536 Mtbl* map_et_fait_dxdr(const Map* ) ;
03537 Mtbl* map_et_fait_drdt(const Map* ) ;
03538 Mtbl* map_et_fait_stdrdp(const Map* ) ;
03539 Mtbl* map_et_fait_srdrdt(const Map* ) ;
03540 Mtbl* map_et_fait_srstdrdp(const Map* ) ;
03541 Mtbl* map_et_fait_sr2drdt(const Map* ) ;
03542 Mtbl* map_et_fait_sr2stdrdp(const Map* ) ;
03543 Mtbl* map_et_fait_d2rdx2(const Map* ) ;
03544 Mtbl* map_et_fait_lapr_tp(const Map* ) ;
03545 Mtbl* map_et_fait_d2rdtdx(const Map* ) ;
03546 Mtbl* map_et_fait_sstd2rdpdx(const Map* ) ;
03547 Mtbl* map_et_fait_sr2d2rdt2(const Map* ) ;
03548
03549 Mtbl* map_et_fait_rsxdxdr(const Map* ) ;
03550 Mtbl* map_et_fait_rsx2drdx(const Map* ) ;
03551
03552
03553
03554
03555
03556 #define AFFINE 0
03557 #define LOG 1
03558
03573 class Map_log : public Map_radial {
03574
03575
03576
03577 private:
03579 Tbl alpha ;
03581 Tbl beta ;
03585 Itbl type_var ;
03586
03587 public:
03593 Coord dxdlnr ;
03594
03595 private:
03596 void set_coord() ;
03597
03598
03599
03600 public:
03613 Map_log (const Mg3d& mgrille, const Tbl& r_limits, const Itbl& typevar) ;
03614
03615
03616 Map_log (const Map_log& ) ;
03617 Map_log (const Mg3d&, FILE* ) ;
03618
03619 virtual ~Map_log() ;
03620
03624 virtual const Map_af& mp_angu(int) const ;
03625
03627 double get_alpha (int l) const {return alpha(l) ;} ;
03629 double get_beta (int l) const {return beta(l) ;} ;
03631 int get_type (int l) const {return type_var(l) ;} ;
03632
03640 void sol_elliptic (Param_elliptic& params,
03641 const Scalar& so, Scalar& uu) const ;
03642
03643
03655 void sol_elliptic_boundary (Param_elliptic& params,
03656 const Scalar& so, Scalar& uu, const Mtbl_cf& bound,
03657 double fact_dir, double fact_neu ) const ;
03658
03662 void sol_elliptic_boundary (Param_elliptic& params,
03663 const Scalar& so, Scalar& uu, const Scalar& bound,
03664 double fact_dir, double fact_neu ) const ;
03665
03666
03676 void sol_elliptic_no_zec (Param_elliptic& params,
03677 const Scalar& so, Scalar& uu, double) const ;
03678
03679
03680 virtual void sauve(FILE*) const ;
03681
03683 virtual void operator=(const Map_af& mpa) ;
03684
03685
03686 virtual ostream& operator>> (ostream&) const ;
03687
03697 virtual double val_r (int l, double xi, double theta, double pphi) const ;
03698
03708 virtual void val_lx (double rr, double theta, double pphi, int& l, double& xi) const ;
03709
03719 virtual void val_lx (double rr, double theta, double pphi, const Param& par, int& l, double& xi) const ;
03720
03721
03722 virtual bool operator== (const Map&) const ;
03723
03733 virtual double val_r_jk (int l, double xi, int j, int k) const ;
03734
03744 virtual void val_lx_jk (double rr, int j, int k, const Param& par, int& l, double& xi) const ;
03745
03752 virtual void dsdr (const Scalar& ci, Scalar& resu) const ;
03753
03760 virtual void dsdxi (const Scalar& ci, Scalar& resu) const ;
03761
03770 virtual void dsdradial (const Scalar& uu, Scalar& resu) const ;
03771
03772 virtual void homothetie (double) ;
03773 virtual void resize (int, double) ;
03774 virtual void adapt (const Cmp&, const Param&, int) ;
03775 virtual void dsdr (const Cmp&, Cmp&) const ;
03776 virtual void dsdxi (const Cmp&, Cmp&) const ;
03777 virtual void srdsdt (const Cmp&, Cmp&) const ;
03778 virtual void srstdsdp (const Cmp&, Cmp&) const ;
03779 virtual void srdsdt (const Scalar&, Scalar&) const ;
03780 virtual void srstdsdp (const Scalar&, Scalar&) const ;
03781 virtual void dsdt (const Scalar&, Scalar&) const ;
03782 virtual void stdsdp (const Scalar&, Scalar&) const ;
03783 virtual void laplacien (const Scalar&, int, Scalar&) const ;
03784 virtual void laplacien (const Cmp&, int, Cmp&) const ;
03785 virtual void lapang (const Scalar&, Scalar&) const ;
03786 virtual Tbl* integrale (const Cmp&) const ;
03787 virtual void poisson (const Cmp&, Param&, Cmp&) const ;
03788 virtual void poisson_tau (const Cmp&, Param&, Cmp&) const ;
03789 virtual void poisson_regular (const Cmp&, int, int, double, Param&, Cmp&, Cmp&, Cmp&,
03790 Tenseur&, Cmp&, Cmp&) const ;
03791 virtual void poisson_angu (const Scalar&, Param&, Scalar&, double=0) const ;
03792 virtual Param* donne_para_poisson_vect (Param&, int) const ;
03793 virtual void poisson_frontiere (const Cmp&, const Valeur&, int, int, Cmp&, double = 0., double = 0.) const ;
03794 virtual void poisson_frontiere_double (const Cmp&, const Valeur&, const Valeur&, int, Cmp&) const ;
03795 virtual void poisson_interne (const Cmp&, const Valeur&, Param&, Cmp&) const ;
03796 virtual void poisson2d (const Cmp&, const Cmp&, Param&, Cmp&) const ;
03797 virtual void dalembert (Param&, Scalar&, const Scalar&, const Scalar&, const Scalar&) const ;
03798
03799
03800
03801
03802 friend Mtbl* map_log_fait_r(const Map* ) ;
03803 friend Mtbl* map_log_fait_tet(const Map* ) ;
03804 friend Mtbl* map_log_fait_phi(const Map* ) ;
03805 friend Mtbl* map_log_fait_sint(const Map* ) ;
03806 friend Mtbl* map_log_fait_cost(const Map* ) ;
03807 friend Mtbl* map_log_fait_sinp(const Map* ) ;
03808 friend Mtbl* map_log_fait_cosp(const Map* ) ;
03809
03810 friend Mtbl* map_log_fait_x(const Map* ) ;
03811 friend Mtbl* map_log_fait_y(const Map* ) ;
03812 friend Mtbl* map_log_fait_z(const Map* ) ;
03813
03814 friend Mtbl* map_log_fait_xa(const Map* ) ;
03815 friend Mtbl* map_log_fait_ya(const Map* ) ;
03816 friend Mtbl* map_log_fait_za(const Map* ) ;
03817
03818 friend Mtbl* map_log_fait_xsr(const Map* ) ;
03819 friend Mtbl* map_log_fait_dxdr(const Map* ) ;
03820 friend Mtbl* map_log_fait_drdt(const Map* ) ;
03821 friend Mtbl* map_log_fait_stdrdp(const Map* ) ;
03822 friend Mtbl* map_log_fait_srdrdt(const Map* ) ;
03823 friend Mtbl* map_log_fait_srstdrdp(const Map* ) ;
03824 friend Mtbl* map_log_fait_sr2drdt(const Map* ) ;
03825 friend Mtbl* map_log_fait_sr2stdrdp(const Map* ) ;
03826 friend Mtbl* map_log_fait_d2rdx2(const Map* ) ;
03827 friend Mtbl* map_log_fait_lapr_tp(const Map* ) ;
03828 friend Mtbl* map_log_fait_d2rdtdx(const Map* ) ;
03829 friend Mtbl* map_log_fait_sstd2rdpdx(const Map* ) ;
03830 friend Mtbl* map_log_fait_sr2d2rdt2(const Map* ) ;
03831 friend Mtbl* map_log_fait_dxdlnr(const Map* ) ;
03832
03833 };
03834
03835 Mtbl* map_log_fait_r(const Map* ) ;
03836 Mtbl* map_log_fait_tet(const Map* ) ;
03837 Mtbl* map_log_fait_phi(const Map* ) ;
03838 Mtbl* map_log_fait_sint(const Map* ) ;
03839 Mtbl* map_log_fait_cost(const Map* ) ;
03840 Mtbl* map_log_fait_sinp(const Map* ) ;
03841 Mtbl* map_log_fait_cosp(const Map* ) ;
03842
03843 Mtbl* map_log_fait_x(const Map* ) ;
03844 Mtbl* map_log_fait_y(const Map* ) ;
03845 Mtbl* map_log_fait_z(const Map* ) ;
03846
03847 Mtbl* map_log_fait_xa(const Map* ) ;
03848 Mtbl* map_log_fait_ya(const Map* ) ;
03849 Mtbl* map_log_fait_za(const Map* ) ;
03850
03851 Mtbl* map_log_fait_xsr(const Map* ) ;
03852 Mtbl* map_log_fait_dxdr(const Map* ) ;
03853 Mtbl* map_log_fait_drdt(const Map* ) ;
03854 Mtbl* map_log_fait_stdrdp(const Map* ) ;
03855 Mtbl* map_log_fait_srdrdt(const Map* ) ;
03856 Mtbl* map_log_fait_srstdrdp(const Map* ) ;
03857 Mtbl* map_log_fait_sr2drdt(const Map* ) ;
03858 Mtbl* map_log_fait_sr2stdrdp(const Map* ) ;
03859 Mtbl* map_log_fait_d2rdx2(const Map* ) ;
03860 Mtbl* map_log_fait_lapr_tp(const Map* ) ;
03861 Mtbl* map_log_fait_d2rdtdx(const Map* ) ;
03862 Mtbl* map_log_fait_sstd2rdpdx(const Map* ) ;
03863 Mtbl* map_log_fait_sr2d2rdt2(const Map* ) ;
03864
03865 Mtbl* map_log_fait_dxdlnr (const Map*) ;
03866
03867 #endif