Changeset 348 in PSPA


Ignore:
Timestamp:
Feb 27, 2013, 4:05:41 PM (11 years ago)
Author:
garnier
Message:

beam2moments. Bug fix sur une boucle infinie, introduite par laurent le 26 février

Location:
Interface_Web/trunk/pspaWT
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/History

    r347 r348  
    55     PSPA - Plateforme de simulation en physique des accélérateurs
    66     =========================================================
     7
     827 février 2013 Laurent Garnier
     9- beam2moments. Bug fix sur une boucle infinie, introduite par laurent le 26 février
    710
    81126 février 2013 Laurent Garnier
  • Interface_Web/trunk/pspaWT/sources/controler/src/beam2Moments.cc

    r347 r348  
    44
    55beam2Moments::beam2Moments() {
    6   initializeMoments();
     6    initializeMoments();
    77}
    88
     
    1010
    1111beam2Moments::beam2Moments( beam2Moments& tm) {
    12   rij_secondOrderMoments_ = tm.rij_secondOrderMoments_;
     12    rij_secondOrderMoments_ = tm.rij_secondOrderMoments_;
    1313}
    1414
    1515beam2Moments::beam2Moments( const beam2Moments& tm) {
    16   rij_secondOrderMoments_ = tm.rij_secondOrderMoments_;
     16    rij_secondOrderMoments_ = tm.rij_secondOrderMoments_;
    1717}
    1818
    1919beam2Moments::beam2Moments(double x, double xp, double y, double yp, double dl, double del) {
    20   initializeMoments();
    21   ( rij_secondOrderMoments_.at(0) ).at(0) = x;
    22   ( rij_secondOrderMoments_.at(1) ).at(1) = xp;
    23   ( rij_secondOrderMoments_.at(2) ).at(2) = y;
    24   ( rij_secondOrderMoments_.at(3) ).at(3) = yp;
    25   ( rij_secondOrderMoments_.at(4) ).at(4) = dl;
    26   ( rij_secondOrderMoments_.at(5) ).at(5) = del;
    27 
     20    initializeMoments();
     21    ( rij_secondOrderMoments_.at(0) ).at(0) = x;
     22    ( rij_secondOrderMoments_.at(1) ).at(1) = xp;
     23    ( rij_secondOrderMoments_.at(2) ).at(2) = y;
     24    ( rij_secondOrderMoments_.at(3) ).at(3) = yp;
     25    ( rij_secondOrderMoments_.at(4) ).at(4) = dl;
     26    ( rij_secondOrderMoments_.at(5) ).at(5) = del;
     27   
    2828}
    2929
    3030void beam2Moments::initializeMoments() {
    31   rij_secondOrderMoments_.clear();
    32   rij_secondOrderMoments_.resize(6);
    33   unsigned dim=0;
    34   unsigned k;
    35   for ( k=0; k < 6; k++){
    36     rij_secondOrderMoments_.at(k).resize(++dim, 0.0);
    37   }
     31    rij_secondOrderMoments_.clear();
     32    rij_secondOrderMoments_.resize(6);
     33    unsigned dim=0;
     34    unsigned k;
     35    for ( k=0; k < 6; k++){
     36        rij_secondOrderMoments_.at(k).resize(++dim, 0.0);
     37    }
    3838}
    3939
    4040
    41  // const vector< vector<double> >& transportMoments::getMoments() const
    42  // {
    43  //   return rij_transportMoments_;
    44  // }
     41// const vector< vector<double> >& transportMoments::getMoments() const
     42// {
     43//   return rij_transportMoments_;
     44// }
    4545
    46  vector< vector<double> >& beam2Moments::getMatrix()
    47  {
    48    return rij_secondOrderMoments_;
    49  }
     46vector< vector<double> >& beam2Moments::getMatrix()
     47{
     48    return rij_secondOrderMoments_;
     49}
    5050
    5151
    5252void beam2Moments::impression() const {
    53   unsigned j,m;
    54   cout << " impression des moments " << endl;
    55   for ( j = 0; j < 6; j++)
     53    unsigned j,m;
     54    cout << " impression des moments " << endl;
     55    for ( j = 0; j < 6; j++)
    5656    {
    57       for (m=0; m <= j; m++)
    58         {
    59           cout  << ( rij_secondOrderMoments_.at(j) ).at(m) << " ";
    60         }
    61       cout << endl;
     57        for (m=0; m <= j; m++)
     58        {
     59            cout  << ( rij_secondOrderMoments_.at(j) ).at(m) << " ";
     60        }
     61        cout << endl;
    6262    }
    6363}
    6464
    6565void beam2Moments::raz() {
    66   // initialisation des moments
    67   unsigned j,m;
    68   for ( j = 0; j < rij_secondOrderMoments_.size(); j++)
     66    // initialisation des moments
     67    unsigned j,m;
     68    for ( j = 0; j < rij_secondOrderMoments_.size(); j++)
    6969    {
    70       for (m=0; m <= j; m++)
    71         {
    72           ( rij_secondOrderMoments_.at(j) ).at(m) = 0.0; // element r_jm
    73         }
     70        for (m=0; m <= j; m++)
     71        {
     72            ( rij_secondOrderMoments_.at(j) ).at(m) = 0.0; // element r_jm
     73        }
    7474    }
    7575}
     
    7979// suppose qu'on est bien positionné dans le stream (a revoir)
    8080void beam2Moments::readFromTransportOutput(stringstream& inp) {
    81   string  bidString;
    82   double bidon;
    83 
    84   // initialisation des moments
    85   raz();
    86   bool test = false;
    87   string buf;
    88   // sauter les eventuels 'VARY'
    89   while ( !test ) {
    90     getline(inp, buf);
    91     stringstream str(buf);
    92       if (!(str >> bidon >>  bidString >>  bidon >>  ( rij_secondOrderMoments_.at(0) ).at(0) >> bidString)) {
    93           test = false;
    94       }
    95     cout << " beam2Moments::readFromTransportOutput TEST= " << test << endl;
    96   }
    97   //    test = inp >> bidon >>  bidString >>  bidon >>  ( rij_secondOrderMoments_.at(0) ).at(0) >> bidString;
     81    string  bidString;
     82    double bidon;
     83   
     84    // initialisation des moments
     85    raz();
     86    bool test = false;
     87    string buf;
     88    // sauter les eventuels 'VARY'
     89    while ( !test ) {
     90        getline(inp, buf);
     91        stringstream str(buf);
     92       
     93        if (!(str >> bidon >>  bidString >>  bidon >>  ( rij_secondOrderMoments_.at(0) ).at(0) >> bidString)) {
     94            test = true;
     95        }
     96       
     97        cout << " beam2Moments::readFromTransportOutput TEST= " << test << endl;
     98    }
     99    //    test = inp >> bidon >>  bidString >>  bidon >>  ( rij_secondOrderMoments_.at(0) ).at(0) >> bidString;
    98100    // }
    99   inp >> bidon >> ( rij_secondOrderMoments_.at(1) ).at(1) >>  bidString >> ( rij_secondOrderMoments_.at(1) ).at(0);
    100   inp >> bidon >> ( rij_secondOrderMoments_.at(2) ).at(2) >>  bidString >> ( rij_secondOrderMoments_.at(2) ).at(0)  >> ( rij_secondOrderMoments_.at(2) ).at(1);
    101   inp >> bidon >> ( rij_secondOrderMoments_.at(3) ).at(3) >>  bidString >> ( rij_secondOrderMoments_.at(3) ).at(0)  >> ( rij_secondOrderMoments_.at(3) ).at(1) >> ( rij_secondOrderMoments_.at(3) ).at(2);
    102 
    103   inp >> bidon >> ( rij_secondOrderMoments_.at(4) ).at(4) >>  bidString >> ( rij_secondOrderMoments_.at(4) ).at(0)  >> ( rij_secondOrderMoments_.at(4) ).at(1) >> ( rij_secondOrderMoments_.at(4) ).at(2) >> ( rij_secondOrderMoments_.at(4) ).at(3);
    104 
    105   inp >> bidon >> ( rij_secondOrderMoments_.at(5) ).at(5) >>  bidString >> ( rij_secondOrderMoments_.at(5) ).at(0)  >> ( rij_secondOrderMoments_.at(5) ).at(1) >> ( rij_secondOrderMoments_.at(5) ).at(2) >> ( rij_secondOrderMoments_.at(5) ).at(3) >> ( rij_secondOrderMoments_.at(5) ).at(4);
    106 
     101    inp >> bidon >> ( rij_secondOrderMoments_.at(1) ).at(1) >>  bidString >> ( rij_secondOrderMoments_.at(1) ).at(0);
     102    inp >> bidon >> ( rij_secondOrderMoments_.at(2) ).at(2) >>  bidString >> ( rij_secondOrderMoments_.at(2) ).at(0)  >> ( rij_secondOrderMoments_.at(2) ).at(1);
     103    inp >> bidon >> ( rij_secondOrderMoments_.at(3) ).at(3) >>  bidString >> ( rij_secondOrderMoments_.at(3) ).at(0)  >> ( rij_secondOrderMoments_.at(3) ).at(1) >> ( rij_secondOrderMoments_.at(3) ).at(2);
     104   
     105    inp >> bidon >> ( rij_secondOrderMoments_.at(4) ).at(4) >>  bidString >> ( rij_secondOrderMoments_.at(4) ).at(0)  >> ( rij_secondOrderMoments_.at(4) ).at(1) >> ( rij_secondOrderMoments_.at(4) ).at(2) >> ( rij_secondOrderMoments_.at(4) ).at(3);
     106   
     107    inp >> bidon >> ( rij_secondOrderMoments_.at(5) ).at(5) >>  bidString >> ( rij_secondOrderMoments_.at(5) ).at(0)  >> ( rij_secondOrderMoments_.at(5) ).at(1) >> ( rij_secondOrderMoments_.at(5) ).at(2) >> ( rij_secondOrderMoments_.at(5) ).at(3) >> ( rij_secondOrderMoments_.at(5) ).at(4);
     108   
    107109}
    108110
    109111
    110112string beam2Moments::writeToTransportInput(double P0) const {
    111   ostringstream sortie;
    112    sortie << " BEAM, X=" << (rij_secondOrderMoments_.at(0)).at(0) << ", XP="<< (rij_secondOrderMoments_.at(1)).at(1) << ", Y=" << (rij_secondOrderMoments_.at(2)).at(2)<< ", YP=" << (rij_secondOrderMoments_.at(3)).at(3) << ", & " << endl;
    113 
    114    sortie << " DL=" << (rij_secondOrderMoments_.at(4)).at(4) << ", DEL="<< (rij_secondOrderMoments_.at(5)).at(5) << ", P0=" << P0 << " ; " << endl;
    115 
    116    sortie << " CORR, C21=" << (rij_secondOrderMoments_.at(1)).at(0) << ", C31="<< (rij_secondOrderMoments_.at(2)).at(0) << ", C32=" << (rij_secondOrderMoments_.at(2)).at(1) << ", & " << endl;
    117 
    118    sortie << " C41=" << (rij_secondOrderMoments_.at(3)).at(0) << ", C42="<< (rij_secondOrderMoments_.at(3)).at(1) << ", C43=" << (rij_secondOrderMoments_.at(3)).at(2) << ", C51=" << (rij_secondOrderMoments_.at(4)).at(0) << ", & " << endl;
    119 
    120    sortie << " C52=" << (rij_secondOrderMoments_.at(4)).at(1) << ", C53="<< (rij_secondOrderMoments_.at(4)).at(2) << ", C54=" << (rij_secondOrderMoments_.at(4)).at(3) << ", C61=" << (rij_secondOrderMoments_.at(5)).at(0) << ", & " << endl;
    121 
    122    sortie << " C62=" << (rij_secondOrderMoments_.at(5)).at(1) << ", C63="<< (rij_secondOrderMoments_.at(5)).at(2) << ", C64=" << (rij_secondOrderMoments_.at(5)).at(3) << ", C65=" << (rij_secondOrderMoments_.at(5)).at(4) << " ; " << endl;
     113    ostringstream sortie;
     114    sortie << " BEAM, X=" << (rij_secondOrderMoments_.at(0)).at(0) << ", XP="<< (rij_secondOrderMoments_.at(1)).at(1) << ", Y=" << (rij_secondOrderMoments_.at(2)).at(2)<< ", YP=" << (rij_secondOrderMoments_.at(3)).at(3) << ", & " << endl;
     115   
     116    sortie << " DL=" << (rij_secondOrderMoments_.at(4)).at(4) << ", DEL="<< (rij_secondOrderMoments_.at(5)).at(5) << ", P0=" << P0 << " ; " << endl;
     117   
     118    sortie << " CORR, C21=" << (rij_secondOrderMoments_.at(1)).at(0) << ", C31="<< (rij_secondOrderMoments_.at(2)).at(0) << ", C32=" << (rij_secondOrderMoments_.at(2)).at(1) << ", & " << endl;
     119   
     120    sortie << " C41=" << (rij_secondOrderMoments_.at(3)).at(0) << ", C42="<< (rij_secondOrderMoments_.at(3)).at(1) << ", C43=" << (rij_secondOrderMoments_.at(3)).at(2) << ", C51=" << (rij_secondOrderMoments_.at(4)).at(0) << ", & " << endl;
     121   
     122    sortie << " C52=" << (rij_secondOrderMoments_.at(4)).at(1) << ", C53="<< (rij_secondOrderMoments_.at(4)).at(2) << ", C54=" << (rij_secondOrderMoments_.at(4)).at(3) << ", C61=" << (rij_secondOrderMoments_.at(5)).at(0) << ", & " << endl;
     123   
     124    sortie << " C62=" << (rij_secondOrderMoments_.at(5)).at(1) << ", C63="<< (rij_secondOrderMoments_.at(5)).at(2) << ", C64=" << (rij_secondOrderMoments_.at(5)).at(3) << ", C65=" << (rij_secondOrderMoments_.at(5)).at(4) << " ; " << endl;
    123125    return sortie.str();
    124126}
    125127
    126128beam2Moments& beam2Moments::operator= (const beam2Moments& tpm) {
    127   rij_secondOrderMoments_ = tpm.rij_secondOrderMoments_;
    128   return *this;
     129    rij_secondOrderMoments_ = tpm.rij_secondOrderMoments_;
     130    return *this;
    129131}
Note: See TracChangeset for help on using the changeset viewer.