Ignore:
Timestamp:
Jul 23, 2009, 12:14:13 PM (15 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
d067d45
Parents:
178f92
Message:

Fix indentation from tab to two spaces.

The trouble was caused at the merge e08f45e4539ffcc30e039dec5606cf06b45ab6be. Seemingly, I thought eclipse had pulled some shit which i didn't

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/periodentafel.cpp

    r178f92 r437922  
    1616periodentafel::periodentafel()
    1717{
    18         start = new element;
    19         end = new element;
    20         start->previous = NULL;
    21         start->next = end;
    22         end->previous = start;
    23         end->next = NULL;
     18  start = new element;
     19  end = new element;
     20  start->previous = NULL;
     21  start->next = end;
     22  end->previous = start;
     23  end->next = NULL;
    2424};
    2525
     
    2929periodentafel::~periodentafel()
    3030{
    31         CleanupPeriodtable();
    32         delete(end);
    33         delete(start);
     31  CleanupPeriodtable();
     32  delete(end);
     33  delete(start);
    3434};
    3535
     
    4040bool periodentafel::AddElement(element *pointer)
    4141{
    42         pointer->sort = &pointer->Z;
    43         if (pointer->Z < 1 && pointer->Z >= MAX_ELEMENTS)
    44                 cout << Verbose(0) << "Invalid Z number!\n";
    45         return add(pointer, end);
     42  pointer->sort = &pointer->Z;
     43  if (pointer->Z < 1 && pointer->Z >= MAX_ELEMENTS)
     44    cout << Verbose(0) << "Invalid Z number!\n";
     45  return add(pointer, end);
    4646};
    4747
     
    5252bool periodentafel::RemoveElement(element *pointer)
    5353{
    54         return remove(pointer, start, end);
     54  return remove(pointer, start, end);
    5555};
    5656
     
    6060bool periodentafel::CleanupPeriodtable()
    6161{
    62         return cleanup(start,end);
     62  return cleanup(start,end);
    6363};
    6464
     
    7070element * periodentafel::FindElement(int Z)
    7171{
    72         element *walker = find(&Z, start,end);
    73         if (walker == NULL) { // not found: enter and put into db
    74                 cout << Verbose(0) << "Element not found in database, please enter." << endl;
    75                 walker = new element;
    76                 cout << Verbose(0) << "Mass: " << endl;
    77                 cin >> walker->mass;
    78                 walker->Z = Z;
    79                 cout << Verbose(0) << "Atomic number: " << walker->Z << endl;
    80                 cout << Verbose(0) << "Name [max 64 chars]: " << endl;
    81                 cin >> walker->name;
    82                 cout << Verbose(0) << "Short form [max 3 chars]: " << endl;
    83                 cin >> walker->symbol;
    84                 periodentafel::AddElement(walker);
    85         }
    86         return(walker);
     72  element *walker = find(&Z, start,end);
     73  if (walker == NULL) { // not found: enter and put into db
     74    cout << Verbose(0) << "Element not found in database, please enter." << endl;
     75    walker = new element;
     76    cout << Verbose(0) << "Mass: " << endl;
     77    cin >> walker->mass;
     78    walker->Z = Z;
     79    cout << Verbose(0) << "Atomic number: " << walker->Z << endl;
     80    cout << Verbose(0) << "Name [max 64 chars]: " << endl;
     81    cin >> walker->name;
     82    cout << Verbose(0) << "Short form [max 3 chars]: " << endl;
     83    cin >> walker->symbol;
     84    periodentafel::AddElement(walker);
     85  }
     86  return(walker);
    8787};
    8888
     
    9494element * periodentafel::FindElement(char *shorthand) const
    9595{
    96         element *walker =       periodentafel::start;
    97         while (walker->next != periodentafel::end) {
    98                 walker = walker->next;
    99                 if (strncmp(walker->symbol, shorthand, 3) == 0)
    100                         return(walker);
    101         }
    102         return (NULL);
     96  element *walker =  periodentafel::start;
     97  while (walker->next != periodentafel::end) {
     98    walker = walker->next;
     99    if (strncmp(walker->symbol, shorthand, 3) == 0)
     100      return(walker);
     101  }
     102  return (NULL);
    103103};
    104104
     
    107107element * periodentafel::AskElement()
    108108{
    109         element *walker = NULL;
    110         int Z;
    111         do {
    112                 cout << Verbose(0) << "Atomic number Z: ";
    113                 cin >> Z;
    114                 walker = this->FindElement(Z);  // give type
    115         } while (walker == NULL);
    116         return walker;
     109  element *walker = NULL;
     110  int Z;
     111  do {
     112    cout << Verbose(0) << "Atomic number Z: ";
     113    cin >> Z;
     114    walker = this->FindElement(Z);  // give type
     115  } while (walker == NULL);
     116  return walker;
    117117};
    118118
     
    122122bool periodentafel::Output(ofstream *output) const
    123123{
    124         bool result = true;
    125         element *walker = start;
    126         if (output != NULL) {
    127                 while (walker->next != end) {
    128                         walker = walker->next;
    129                         result = result && walker->Output(output);
    130                 }
    131                 return result;
    132         } else
    133                 return false;
     124  bool result = true;
     125  element *walker = start;
     126  if (output != NULL) {
     127    while (walker->next != end) {
     128      walker = walker->next;
     129      result = result && walker->Output(output);
     130    }
     131    return result;
     132  } else
     133    return false;
    134134};
    135135
     
    140140bool periodentafel::Checkout(ofstream *output, const int *checkliste) const
    141141{
    142         element *walker = start;
    143         bool result = true;
    144         int No = 1;
    145 
    146         if (output != NULL) {
    147                 *output << "# Ion type data (PP = PseudoPotential, Z = atomic number)" << endl;
    148                 *output << "#Ion_TypeNr.\tAmount\tZ\tRGauss\tL_Max(PP)L_Loc(PP)IonMass\t# chemical name, symbol" << endl;
    149                 while (walker->next != end) {
    150                         walker = walker->next;
    151                         if ((walker != NULL) && (walker->Z > 0) && (walker->Z < MAX_ELEMENTS) && (checkliste[walker->Z])) {
    152                                 walker->No = No;
    153                                 result = result && walker->Checkout(output, No++, checkliste[walker->Z]);
    154                         }
    155                 }
    156                 return result;
    157         } else
    158                 return false;
     142  element *walker = start;
     143  bool result = true;
     144  int No = 1;
     145
     146  if (output != NULL) {
     147    *output << "# Ion type data (PP = PseudoPotential, Z = atomic number)" << endl;
     148    *output << "#Ion_TypeNr.\tAmount\tZ\tRGauss\tL_Max(PP)L_Loc(PP)IonMass\t# chemical name, symbol" << endl;
     149    while (walker->next != end) {
     150      walker = walker->next;
     151      if ((walker != NULL) && (walker->Z > 0) && (walker->Z < MAX_ELEMENTS) && (checkliste[walker->Z])) {
     152        walker->No = No;
     153        result = result && walker->Checkout(output, No++, checkliste[walker->Z]);
     154      }
     155    }
     156    return result;
     157  } else
     158    return false;
    159159};
    160160
     
    164164bool periodentafel::LoadPeriodentafel(char *path)
    165165{
    166         ifstream infile;
    167         double tmp;
    168         element *ptr;
    169         bool status = true;
    170         bool otherstatus = true;
    171         char filename[255];
    172 
    173         // fill elements DB
    174         strncpy(filename, path, MAXSTRINGSIZE);
    175         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    176         strncat(filename, STANDARDELEMENTSDB, MAXSTRINGSIZE-strlen(filename));
    177         infile.open(filename);
    178         if (infile != NULL) {
    179                 infile.getline(header1, MAXSTRINGSIZE);
    180                 infile.getline(header2, MAXSTRINGSIZE); // skip first two header lines
    181                 cout << "Parsed elements:";
    182                 while (!infile.eof()) {
    183                         element *neues = new element;
    184                         infile >> neues->name;
    185                         //infile >> ws;
    186                         infile >> neues->symbol;
    187                         //infile >> ws;
    188                         infile >> neues->period;
    189                         //infile >> ws;
    190                         infile >> neues->group;
    191                         //infile >> ws;
    192                         infile >> neues->block;
    193                         //infile >> ws;
    194                         infile >> neues->Z;
    195                         //infile >> ws;
    196                         infile >> neues->mass;
    197                         //infile >> ws;
    198                         infile >> neues->CovalentRadius;
    199                         //infile >> ws;
    200                         infile >> neues->VanDerWaalsRadius;
    201                         //infile >> ws;
    202                         infile >> ws;
    203                         cout << " " << neues->symbol;
    204                         //neues->Output((ofstream *)&cout);
    205                         if ((neues->Z > 0) && (neues->Z < MAX_ELEMENTS))
    206                                 periodentafel::AddElement(neues);
    207                         else {
    208                                 cout << "Could not parse element: ";
    209                                 neues->Output((ofstream *)&cout);
    210                         }
    211                 }
    212                 cout << endl;
    213                 infile.close();
    214                 infile.clear();
    215         } else
    216                 status = false;
    217 
    218         // fill valence DB per element
    219         strncpy(filename, path, MAXSTRINGSIZE);
    220         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    221         strncat(filename, STANDARDVALENCEDB, MAXSTRINGSIZE-strlen(filename));
    222         infile.open(filename);
    223         if (infile != NULL) {
    224                 while (!infile.eof()) {
    225                         infile >> tmp;
    226                         infile >> ws;
    227                         infile >> FindElement((int)tmp)->Valence;
    228                         infile >> ws;
    229                         //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->Valence << " valence electrons." << endl;
    230                 }
    231                 infile.close();
    232                 infile.clear();
    233         } else
    234                 otherstatus = false;
    235 
    236         // fill valence DB per element
    237         strncpy(filename, path, MAXSTRINGSIZE);
    238         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    239         strncat(filename, STANDARDORBITALDB, MAXSTRINGSIZE-strlen(filename));
    240         infile.open(filename);
    241         if (infile != NULL) {
    242                 while (!infile.eof()) {
    243                         infile >> tmp;
    244                         infile >> ws;
    245                         infile >> FindElement((int)tmp)->NoValenceOrbitals;
    246                         infile >> ws;
    247                         //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->NoValenceOrbitals << " number of singly occupied valence orbitals." << endl;
    248                 }
    249                 infile.close();
    250                 infile.clear();
    251         } else
    252                 otherstatus = false;
    253 
    254         // fill H-BondDistance DB per element
    255         strncpy(filename, path, MAXSTRINGSIZE);
    256         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    257         strncat(filename, STANDARDHBONDDISTANCEDB, MAXSTRINGSIZE-strlen(filename));
    258         infile.open(filename);
    259         if (infile != NULL) {
    260                 while (!infile.eof()) {
    261                         infile >> tmp;
    262                         ptr = FindElement((int)tmp);
    263                         infile >> ws;
    264                         infile >> ptr->HBondDistance[0];
    265                         infile >> ptr->HBondDistance[1];
    266                         infile >> ptr->HBondDistance[2];
    267                         infile >> ws;
    268                         //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondDistance[0] << " Angstrom typical distance to hydrogen." << endl;
    269                 }
    270                 infile.close();
    271                 infile.clear();
    272         } else
    273                 otherstatus = false;
    274 
    275         // fill H-BondAngle DB per element
    276         strncpy(filename, path, MAXSTRINGSIZE);
    277         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    278         strncat(filename, STANDARDHBONDANGLEDB, MAXSTRINGSIZE-strlen(filename));
    279         infile.open(filename);
    280         if (infile != NULL) {
    281                 while (!infile.eof()) {
    282                         infile >> tmp;
    283                         ptr = FindElement((int)tmp);
    284                         infile >> ws;
    285                         infile >> ptr->HBondAngle[0];
    286                         infile >> ptr->HBondAngle[1];
    287                         infile >> ptr->HBondAngle[2];
    288                         infile >> ws;
    289                         //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondAngle[0] << ", " << FindElement((int)tmp)->HBondAngle[1] << ", " << FindElement((int)tmp)->HBondAngle[2] << " degrees bond angle for one, two, three connected hydrogens." << endl;
    290                 }
    291                 infile.close();
    292         } else
    293                 otherstatus = false;
    294 
    295         if (!otherstatus)
    296                 cerr << "WARNING: Something went wrong while parsing the other databases!" << endl;
    297 
    298         return status;
     166  ifstream infile;
     167  double tmp;
     168  element *ptr;
     169  bool status = true;
     170  bool otherstatus = true;
     171  char filename[255];
     172
     173  // fill elements DB
     174  strncpy(filename, path, MAXSTRINGSIZE);
     175  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     176  strncat(filename, STANDARDELEMENTSDB, MAXSTRINGSIZE-strlen(filename));
     177  infile.open(filename);
     178  if (infile != NULL) {
     179    infile.getline(header1, MAXSTRINGSIZE);
     180    infile.getline(header2, MAXSTRINGSIZE); // skip first two header lines
     181    cout <<  "Parsed elements:";
     182    while (!infile.eof()) {
     183      element *neues = new element;
     184      infile >> neues->name;
     185      //infile >> ws;
     186      infile >> neues->symbol;
     187      //infile >> ws;
     188      infile >> neues->period;
     189      //infile >> ws;
     190      infile >> neues->group;
     191      //infile >> ws;
     192      infile >> neues->block;
     193      //infile >> ws;
     194      infile >> neues->Z;
     195      //infile >> ws;
     196      infile >> neues->mass;
     197      //infile >> ws;
     198      infile >> neues->CovalentRadius;
     199      //infile >> ws;
     200      infile >> neues->VanDerWaalsRadius;
     201      //infile >> ws;
     202      infile >> ws;
     203      cout << " " << neues->symbol;
     204      //neues->Output((ofstream *)&cout);
     205      if ((neues->Z > 0) && (neues->Z < MAX_ELEMENTS))
     206        periodentafel::AddElement(neues);
     207      else {
     208        cout << "Could not parse element: ";
     209        neues->Output((ofstream *)&cout);
     210      }
     211    }
     212    cout << endl;
     213    infile.close();
     214    infile.clear();
     215  } else
     216    status = false;
     217
     218  // fill valence DB per element
     219  strncpy(filename, path, MAXSTRINGSIZE);
     220  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     221  strncat(filename, STANDARDVALENCEDB, MAXSTRINGSIZE-strlen(filename));
     222  infile.open(filename);
     223  if (infile != NULL) {
     224    while (!infile.eof()) {
     225      infile >> tmp;
     226      infile >> ws;
     227      infile >> FindElement((int)tmp)->Valence;
     228      infile >> ws;
     229      //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->Valence << " valence electrons." << endl;
     230    }
     231    infile.close();
     232    infile.clear();
     233  } else
     234    otherstatus = false;
     235
     236  // fill valence DB per element
     237  strncpy(filename, path, MAXSTRINGSIZE);
     238  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     239  strncat(filename, STANDARDORBITALDB, MAXSTRINGSIZE-strlen(filename));
     240  infile.open(filename);
     241  if (infile != NULL) {
     242    while (!infile.eof()) {
     243      infile >> tmp;
     244      infile >> ws;
     245      infile >> FindElement((int)tmp)->NoValenceOrbitals;
     246      infile >> ws;
     247      //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->NoValenceOrbitals << " number of singly occupied valence orbitals." << endl;
     248    }
     249    infile.close();
     250    infile.clear();
     251  } else
     252    otherstatus = false;
     253
     254  // fill H-BondDistance DB per element
     255  strncpy(filename, path, MAXSTRINGSIZE);
     256  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     257  strncat(filename, STANDARDHBONDDISTANCEDB, MAXSTRINGSIZE-strlen(filename));
     258  infile.open(filename);
     259  if (infile != NULL) {
     260    while (!infile.eof()) {
     261      infile >> tmp;
     262      ptr = FindElement((int)tmp);
     263      infile >> ws;
     264      infile >> ptr->HBondDistance[0];
     265      infile >> ptr->HBondDistance[1];
     266      infile >> ptr->HBondDistance[2];
     267      infile >> ws;
     268      //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondDistance[0] << " Angstrom typical distance to hydrogen." << endl;
     269    }
     270    infile.close();
     271    infile.clear();
     272  } else
     273    otherstatus = false;
     274
     275  // fill H-BondAngle DB per element
     276  strncpy(filename, path, MAXSTRINGSIZE);
     277  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     278  strncat(filename, STANDARDHBONDANGLEDB, MAXSTRINGSIZE-strlen(filename));
     279  infile.open(filename);
     280  if (infile != NULL) {
     281    while (!infile.eof()) {
     282      infile >> tmp;
     283      ptr = FindElement((int)tmp);
     284      infile >> ws;
     285      infile >> ptr->HBondAngle[0];
     286      infile >> ptr->HBondAngle[1];
     287      infile >> ptr->HBondAngle[2];
     288      infile >> ws;
     289      //cout << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondAngle[0] << ", " << FindElement((int)tmp)->HBondAngle[1] << ", " << FindElement((int)tmp)->HBondAngle[2] << " degrees bond angle for one, two, three connected hydrogens." << endl;
     290    }
     291    infile.close();
     292  } else
     293    otherstatus = false;
     294
     295  if (!otherstatus)
     296    cerr << "WARNING: Something went wrong while parsing the other databases!" << endl;
     297
     298  return status;
    299299};
    300300
     
    303303bool periodentafel::StorePeriodentafel(char *path) const
    304304{
    305         bool result = true;
    306         ofstream f;
    307         char filename[MAXSTRINGSIZE];
    308 
    309         strncpy(filename, path, MAXSTRINGSIZE);
    310         strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
    311         strncat(filename, STANDARDELEMENTSDB, MAXSTRINGSIZE-strlen(filename));
    312         f.open(filename);
    313         if (f != NULL) {
    314                 f << header1 << endl;
    315                 f << header2 << endl;
    316                 element *walker = periodentafel::start;
    317                 while (walker->next != periodentafel::end) {
    318                         walker = walker->next;
    319                         result = result && walker->Output(&f);
    320                 }
    321                 f.close();
    322         } else
    323                 result = false;
    324         return result;
    325 };
     305  bool result = true;
     306  ofstream f;
     307  char filename[MAXSTRINGSIZE];
     308
     309  strncpy(filename, path, MAXSTRINGSIZE);
     310  strncat(filename, "/", MAXSTRINGSIZE-strlen(filename));
     311  strncat(filename, STANDARDELEMENTSDB, MAXSTRINGSIZE-strlen(filename));
     312  f.open(filename);
     313  if (f != NULL) {
     314    f << header1 << endl;
     315    f << header2 << endl;
     316    element *walker = periodentafel::start;
     317    while (walker->next != periodentafel::end) {
     318      walker = walker->next;
     319      result = result && walker->Output(&f);
     320    }
     321    f.close();
     322  } else
     323    result = false;
     324  return result;
     325};
Note: See TracChangeset for help on using the changeset viewer.