Changeset 064178


Ignore:
Timestamp:
Oct 6, 2011, 9:16:19 AM (13 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:
29daad
Parents:
81c980b
git-author:
Frederik Heber <heber@…> (08/11/11 14:20:59)
git-committer:
Frederik Heber <heber@…> (10/06/11 09:16:19)
Message:

Added color database to periodentafel.

Location:
src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/Helpers/defs.cpp

    r81c980b r064178  
    5959const char *STANDARDHBONDDISTANCEDB = "Hbonddistance.db";    //!< default filename of typial bond distance to hydrogen database
    6060const char *STANDARDHBONDANGLEDB = "Hbondangle.db";    //!< default filename of typial bond angle to hydrogen database
     61const char *STANDARDCOLORDB = "color.db";    //!< default filename of typial bond angle to hydrogen database
    6162
    6263// some values
  • TabularUnified src/Helpers/defs.hpp

    r81c980b r064178  
    6969extern "C" const char *STANDARDVALENCEDB;    //!< default filename of valence number per element database
    7070extern "C" const char *STANDARDORBITALDB;    //!< default filename of orbitals per element database
    71 extern "C" const char *STANDARDHBONDDISTANCEDB;    //!< default filename of typial bond distance to hydrogen database
    72 extern "C" const char *STANDARDHBONDANGLEDB;    //!< default filename of typial bond angle to hydrogen database
     71extern "C" const char *STANDARDHBONDDISTANCEDB;    //!< default filename of typical bond distance to hydrogen database
     72extern "C" const char *STANDARDHBONDANGLEDB;    //!< default filename of typical bond angle to hydrogen database
     73extern "C" const char *STANDARDCOLORDB;    //!< default filename of color database
    7374
    7475// some values
  • TabularUnified src/element.cpp

    r81c980b r064178  
    118118}
    119119
     120const unsigned char * element::getColor() const
     121{
     122  return color;
     123}
     124
    120125double element::getElectronegativity() const
    121126{
  • TabularUnified src/element.hpp

    r81c980b r064178  
    4141    atomicNumber_t getNumber() const;
    4242    double getMass() const;
     43    const unsigned char *getColor() const;
    4344    double getCovalentRadius() const;
    4445    double getElectronegativity() const;
     
    7576    double HBondDistance[NDIM]; //!< distance in Angstrom of this element to hydrogen  (for single, double and triple bonds)
    7677    double HBondAngle[NDIM];     //!< typical angle for one, two, three bonded hydrogen (in degrees)
     78    unsigned char color[3];   //!< typical color for this element (from Jmol)
    7779
    7880    std::string name;  //!< atom name, i.e. "Hydrogen"
  • TabularUnified src/elements_db.cpp

    r81c980b r064178  
    43643680      0.12000000000000E+02\n\
    437437";
     438
     439const char *ColorDB =\
     440"# AtomicNumber, symbol, [red, green, blue] component, hex value\n\
     4411\tH\t255\t255\t255\n\
     4422\tHe\t217\t255\t255\n\
     4433\tLi\t204\t128\t255\n\
     4444\tBe\t194\t255\t0\n\
     4455\tB\t255\t181\t181\n\
     4466\tC\t144\t144\t144\n\
     4477\tN\t48\t80\t248\n\
     4488\tO\t255\t13\t13\n\
     4499\tF\t144\t224\t80\n\
     45010\tNe\t179\t227\t245\n\
     45111\tNa\t171\t92\t242\n\
     45212\tMg\t138\t255\t0\n\
     45313\tAl\t191\t166\t166\n\
     45414\tSi\t240\t200\t160\n\
     45515\tP\t255\t128\t0\n\
     45616\tS\t255\t255\t48\n\
     45717\tCl\t31\t240\t31\n\
     45818\tAr\t128\t209\t227\n\
     45919\tK\t143\t64\t212\n\
     46020\tCa\t61\t255\t0\n\
     46121\tSc\t230\t230\t230\n\
     46222\tTi\t191\t194\t199\n\
     46323\tV\t166\t166\t171\n\
     46424\tCr\t138\t153\t199\n\
     46525\tMn\t156\t122\t199\n\
     46626\tFe\t224\t102\t51\n\
     46727\tCo\t240\t144\t160\n\
     46828\tNi\t80\t208\t80\n\
     46929\tCu\t200\t128\t51\n\
     47030\tZn\t125\t128\t176\n\
     47131\tGa\t194\t143\t143\n\
     47232\tGe\t102\t143\t143\n\
     47333\tAs\t189\t128\t227\n\
     47434\tSe\t255\t161\t0\n\
     47535\tBr\t166\t41\t41\n\
     47636\tKr\t92\t184\t209\n\
     47737\tRb\t112\t46\t176\n\
     47838\tSr\t0\t255\t0\n\
     47939\tY\t148\t255\t255\n\
     48040\tZr\t148\t224\t224\n\
     48141\tNb\t115\t194\t201\n\
     48242\tMo\t84\t181\t181\n\
     48343\tTc\t59\t158\t158\n\
     48444\tRu\t36\t143\t143\n\
     48545\tRh\t10\t125\t140\n\
     48646\tPd\t0\t105\t133\n\
     48747\tAg\t192\t192\t192\n\
     48848\tCd\t255\t217\t143\n\
     48949\tIn\t166\t117\t115\n\
     49050\tSn\t102\t128\t128\n\
     49151\tSb\t158\t99\t181\n\
     49252\tTe\t212\t122\t0\n\
     49353\tI\t148\t0\t148\n\
     49454\tXe\t66\t158\t176\n\
     49555\tCs\t87\t23\t143\n\
     49656\tBa\t0\t201\t0\n\
     49757\tLa\t112\t212\t255\n\
     49858\tCe\t255\t255\t199\n\
     49959\tPr\t217\t255\t199\n\
     50060\tNd\t199\t255\t199\n\
     50161\tPm\t163\t255\t199\n\
     50262\tSm\t143\t255\t199\n\
     50363\tEu\t97\t255\t199\n\
     50464\tGd\t69\t255\t199\n\
     50565\tTb\t48\t255\t199\n\
     50666\tDy\t31\t255\t199\n\
     50767\tHo\t0\t255\t156\n\
     50868\tEr\t0\t230\t117\n\
     50969\tTm\t0\t212\t82\n\
     51070\tYb\t0\t191\t56\n\
     51171\tLu\t0\t171\t36\n\
     51272\tHf\t77\t194\t255\n\
     51373\tTa\t77\t166\t255\n\
     51474\tW\t33\t148\t214\n\
     51575\tRe\t38\t125\t171\n\
     51676\tOs\t38\t102\t150\n\
     51777\tIr\t23\t84\t135\n\
     51878\tPt\t208\t208\t224\n\
     51979\tAu\t255\t209\t35\n\
     52080\tHg\t184\t184\t208\n\
     52181\tTl\t166\t84\t77\n\
     52282\tPb\t87\t89\t97\n\
     52383\tBi\t158\t79\t181\n\
     52484\tPo\t171\t92\t0\n\
     52585\tAt\t117\t79\t69\n\
     52686\tRn\t66\t130\t150\n\
     52787\tFr\t66\t0\t102\n\
     52888\tRa\t0\t125\t0\n\
     52989\tAc\t112\t171\t250\n\
     53090\tTh\t0\t186\t255\n\
     53191\tPa\t0\t161\t255\n\
     53292\tU\t0\t143\t255\n\
     53393\tNp\t0\t128\t255\n\
     53494\tPu\t0\t107\t255\n\
     53595\tAm\t84\t92\t242\n\
     53696\tCm\t120\t92\t227\n\
     53797\tBk\t138\t79\t227\n\
     53898\tCf\t161\t54\t212\n\
     53999\tEs\t179\t31\t212\n\
     540100\tFm\t179\t31\t186\n\
     541101\tMd\t179\t13\t166\n\
     542102\tNo\t189\t13\t135\n\
     543103\tLr\t199\t0\t102\n\
     544104\tRf\t204\t0\t89\n\
     545105\tDb\t209\t0\t79\n\
     546106\tSg\t217\t0\t69\n\
     547107\tBh\t224\t0\t56\n\
     548108\tHs\t230\t0\t46\n\
     549";
  • TabularUnified src/elements_db.hpp

    r81c980b r064178  
    1515
    1616
     17extern const char *ColorDB;
    1718extern const char *elementsDB;
    1819extern const char *ElectronegativitiesDB;
  • TabularUnified src/periodentafel.cpp

    r81c980b r064178  
    8787        LoadHBondLengthsDatabase(input);
    8888    ASSERT(status, "HBond distance entry of element initialization failed");
     89  }
     90  {
     91    stringstream input(ColorDB,ios_base::in);
     92#ifndef NDEBUG
     93    bool status =
     94#endif
     95        LoadColorDatabase(input);
     96    ASSERT(status, "color entry of element initialization failed");
    8997  }
    9098};
     
    531539}
    532540
     541/** load the color info.
     542 * \param *input stream to parse from
     543 * \return true - parsing successful, false - something went wrong
     544 */
     545bool periodentafel::LoadColorDatabase(istream &input)
     546{
     547  char dummy[MAXSTRINGSIZE];
     548  if (!input.fail()) {
     549    input.getline(dummy, MAXSTRINGSIZE);
     550    while (!input.eof()) {
     551      atomicNumber_t Z;
     552      input >> Z;
     553      ASSERT(elements.count(Z), "Element not present");
     554      input >> ws;
     555      input >> dummy;
     556      {
     557        int tmpcolor;   // char here will only parse a single char (i.e. only "2" out of "255")
     558        for (int i=0;i<3;++i) {
     559          input >> ws;
     560          input >> tmpcolor;
     561          elements[Z]->color[i] = (unsigned char)tmpcolor;
     562        }
     563      }
     564      input >> ws;
     565      {
     566        const element * tmp = FindElement(Z);
     567//        DoLog(0) && (Log() << Verbose(0) << "Element " << tmp->getName() << " has ("
     568//            << (int)tmp->color[0] << "," << (int)tmp->color[1] << "," << (int)tmp->color[2]
     569//            << ") colors." << std::endl);
     570      }
     571    }
     572    return true;
     573  } else
     574    return false;
     575}
     576
    533577/** Stores element list to file.
    534578 */
  • TabularUnified src/periodentafel.hpp

    r81c980b r064178  
    6262  private:
    6363
     64  bool LoadColorDatabase(istream &input);
    6465  bool LoadElementsDatabase(std::istream &input);
    6566  bool LoadElectronegativityDatabase(std::istream &input);
  • TabularUnified src/unittests/PeriodentafelUnitTest.cpp

    r81c980b r064178  
    8989  stringstream HbondangleDBstream(HbondangleDB,ios_base::in);
    9090  stringstream HbonddistanceDBstream(HbonddistanceDB,ios_base::in);
     91  stringstream ColorDBstream(ColorDB,ios_base::in);
    9192  CPPUNIT_ASSERT(tafel->LoadElementsDatabase(elementsDBstream) && "General element initialization failed");
    9293  CPPUNIT_ASSERT(tafel->LoadElectronegativityDatabase(ElectronegativityDBstream) && "Electronegativity entry of element initialization failed");
     
    9596  CPPUNIT_ASSERT(tafel->LoadHBondAngleDatabase(HbondangleDBstream) && "HBond angle entry of element initialization failed");
    9697  CPPUNIT_ASSERT(tafel->LoadHBondLengthsDatabase(HbonddistanceDBstream) && "HBond distance entry of element initialization failed");
     98  CPPUNIT_ASSERT(tafel->LoadColorDatabase(ColorDBstream) && "color entry of element initialization failed");
    9799  // check presence of elements
    98100  atomicNumber_t Z = 1;
Note: See TracChangeset for help on using the changeset viewer.