Changeset acd638


Ignore:
Timestamp:
Feb 9, 2011, 8:04:56 PM (14 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:
0bfe73
Parents:
4d4d33
git-author:
Frederik Heber <heber@…> (02/09/11 20:03:34)
git-committer:
Frederik Heber <heber@…> (02/09/11 20:04:56)
Message:

BUGFIX: copied atoms were not correctly stored with respect to Type, reported by Daniel Dueck.

  • TremoloParser::saveLine() Father-check has been missing so far.
  • TEST: Molecules/Copy - added test for copying from tremolo config.
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/TremoloParser.cpp

    r4d4d33 racd638  
    140140  vector<string>::iterator it;
    141141
     142  DoLog(3) && (Log() << Verbose(3) << "additionalAtomData contains: " << additionalAtomData << std::endl);
     143
    142144  *file << "# ATOMDATA";
    143145  for (it=usedFields.begin(); it < usedFields.end(); it++) {
     
    172174  TremoloKey::atomDataKey currentField;
    173175
    174   DoLog(3) && (Log() << Verbose(3) << "additionalAtomData contains: " << additionalAtomData << std::endl);
     176  DoLog(4) && (Log() << Verbose(4) << "INFO: Saving atom " << *currentAtom << ", its father id is " << currentAtom->GetTrueFather()->getId() << std::endl);
    175177
    176178  for (it = usedFields.begin(); it != usedFields.end(); it++) {
     
    192194        break;
    193195      case TremoloKey::Type :
    194         if ((!additionalAtomData.count(currentAtom->getId())) || (additionalAtomData[currentAtom->getId()].get(currentField) == "-")) {
    195           DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << " default value: " << currentAtom->getType()->getSymbol() << std::endl);
     196        if (additionalAtomData.count(currentAtom->getId())) {
     197          if (additionalAtomData[currentAtom->getId()].get(currentField) != "-") {
     198            DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << ": " << additionalAtomData[currentAtom->getId()].get(currentField) << std::endl);
     199            *file << additionalAtomData[currentAtom->getId()].get(currentField) << "\t";
     200          } else {
     201            DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << " default value: " << currentAtom->getType()->getSymbol() << std::endl);
     202            *file << currentAtom->getType()->getSymbol() << "\t";
     203          }
     204        } else if (additionalAtomData.count(currentAtom->GetTrueFather()->getId())) {
     205          if (additionalAtomData[currentAtom->GetTrueFather()->getId()].get(currentField) != "-") {
     206            DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << " stuff from father: " << additionalAtomData[currentAtom->GetTrueFather()->getId()].get(currentField) << std::endl);
     207            *file << additionalAtomData[currentAtom->GetTrueFather()->getId()].get(currentField) << "\t";
     208          } else {
     209            DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << " default value from father: " << currentAtom->GetTrueFather()->getType()->getSymbol() << std::endl);
     210            *file << currentAtom->GetTrueFather()->getType()->getSymbol() << "\t";
     211          }
     212        } else {
     213          DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << " its default value: " << currentAtom->getType()->getSymbol() << std::endl);
    196214          *file << currentAtom->getType()->getSymbol() << "\t";
    197         } else {
    198           DoLog(3) && (Log() << Verbose(3) << "Writing for type " << knownKeyNames[currentField] << ": " << additionalAtomData[currentAtom->getId()].get(currentField) << std::endl);
    199           *file << additionalAtomData[currentAtom->getId()].get(currentField) << "\t";
    200215        }
    201216        break;
  • tests/regression/Molecules/Copy/testsuite-molecules-copy-molecule.at

    r4d4d33 racd638  
    1212AT_CHECK([../../molecuilder -i test-copy.xyz  --copy-molecule 0 --position "0,0,10" --undo --redo], 0, [stdout], [stderr])
    1313AT_CHECK([diff -I '.*Created by molecuilder.*' test-copy.xyz ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/Copy/post/test-copy.xyz], 0, [ignore], [ignore])
     14AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/Copy/pre/tensid.* .], 0)
     15AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i tensid.data  --copy-molecule 0 --position "0,0,10"], 0, [stdout], [stderr])
     16AT_CHECK([diff -I '.*Created by molecuilder.*' tensid.data ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/Copy/post/tensid.data], 0, [ignore], [ignore])
    1417AT_CLEANUP
Note: See TracChangeset for help on using the changeset viewer.