Changeset 1b2d30 for src/Parser
- Timestamp:
- Jun 12, 2010, 10:19:48 PM (15 years ago)
- 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:
- 55240c4
- Parents:
- 43dad6
- git-author:
- Frederik Heber <heber@…> (06/12/10 21:59:36)
- git-committer:
- Frederik Heber <heber@…> (06/12/10 22:19:48)
- Location:
- src/Parser
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/MpqcParser.cpp
r43dad6 r1b2d30 6 6 */ 7 7 8 #include <iostream> 9 10 #include "MpqcParser.hpp" 11 12 #include "atom.hpp" 13 #include "config.hpp" 14 #include "element.hpp" 15 #include "log.hpp" 16 #include "periodentafel.hpp" 17 #include "vector.hpp" 18 #include "verbose.hpp" 19 #include "World.hpp" 20 21 22 /** Constructor of MpqcParser. 23 * 24 */ 25 MpqcParser::MpqcParser() 26 { 27 28 } 29 30 /** Destructor of MpqcParser. 31 * 32 */ 33 MpqcParser::~MpqcParser() { 34 35 } 36 37 /** Load an MPQC config file into the World. 38 * \param *file input stream 39 */ 40 void MpqcParser::load(istream *file) 41 { 42 DoeLog(0) && (Log() << Verbose(0) << "Not yet implemented" << endl) ; 43 } 44 45 void MpqcParser::save(ostream *file) 46 { 47 if (HessianPresent) 48 saveHessian(file); 49 else 50 saveSimple(file); 51 } 52 53 /** Saves all atoms and data into a MPQC config file without hessian. 54 * \param *file output stream 55 */ 56 void MpqcParser::saveSimple(ostream *file) 57 { 58 int AtomNo = 0; 59 Vector center; 60 vector<atom *> allatoms = World::getInstance().getAllAtoms(); 61 62 // first without hessian 63 if (file->fail()) { 64 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc output file." << endl); 65 } else { 66 *file << "% Created by MoleCuilder" << endl; 67 *file << "mpqc: (" << endl; 68 *file << "\tsavestate = no" << endl; 69 *file << "\tdo_gradient = yes" << endl; 70 *file << "\tmole<MBPT2>: (" << endl; 71 *file << "\t\tmaxiter = 200" << endl; 72 *file << "\t\tbasis = $:basis" << endl; 73 *file << "\t\tmolecule = $:molecule" << endl; 74 *file << "\t\treference<CLHF>: (" << endl; 75 *file << "\t\t\tbasis = $:basis" << endl; 76 *file << "\t\t\tmolecule = $:molecule" << endl; 77 *file << "\t\t)" << endl; 78 *file << "\t)" << endl; 79 *file << ")" << endl; 80 *file << "molecule<Molecule>: (" << endl; 81 *file << "\tunit = " << (World::getInstance().getConfig()->GetIsAngstroem() ? "angstrom" : "bohr" ) << endl; 82 *file << "\t{ atoms geometry } = {" << endl; 83 // output of atoms 84 for (vector<atom *>::iterator AtomRunner = allatoms.begin(); AtomRunner != allatoms.end(); ++AtomRunner) { 85 (*AtomRunner)->OutputMPQCLine(file, ¢er, &AtomNo); 86 } 87 *file << "\t}" << endl; 88 *file << ")" << endl; 89 *file << "basis<GaussianBasisSet>: (" << endl; 90 *file << "\tname = \"" << World::getInstance().getConfig()->basis << "\"" << endl; 91 *file << "\tmolecule = $:molecule" << endl; 92 *file << ")" << endl; 93 } 94 } 95 96 /** Saves all atoms and data into a MPQC config file with hessian. 97 * \param *file output stream 98 */ 99 void MpqcParser::saveHessian(ostream *file) 100 { 101 int AtomNo = 0; 102 Vector center; 103 vector<atom *> allatoms = World::getInstance().getAllAtoms(); 104 105 // with hessian 106 if (file->fail()) { 107 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc output file." << endl); 108 } else { 109 *file << "% Created by MoleCuilder" << endl; 110 *file << "mpqc: (" << endl; 111 *file << "\tsavestate = no" << endl; 112 *file << "\tdo_gradient = yes" << endl; 113 *file << "\tmole<CLHF>: (" << endl; 114 *file << "\t\tmaxiter = 200" << endl; 115 *file << "\t\tbasis = $:basis" << endl; 116 *file << "\t\tmolecule = $:molecule" << endl; 117 *file << "\t)" << endl; 118 *file << "\tfreq<MolecularFrequencies>: (" << endl; 119 *file << "\t\tmolecule=$:molecule" << endl; 120 *file << "\t)" << endl; 121 *file << ")" << endl; 122 *file << "molecule<Molecule>: (" << endl; 123 *file << "\tunit = " << (World::getInstance().getConfig()->GetIsAngstroem() ? "angstrom" : "bohr" ) << endl; 124 *file << "\t{ atoms geometry } = {" << endl; 125 // output of atoms 126 for (vector<atom *>::iterator AtomRunner = allatoms.begin(); AtomRunner != allatoms.end(); ++AtomRunner) { 127 (*AtomRunner)->OutputMPQCLine(file, ¢er, &AtomNo); 128 } 129 *file << "\t}" << endl; 130 *file << ")" << endl; 131 *file << "basis<GaussianBasisSet>: (" << endl; 132 *file << "\tname = \"" << World::getInstance().getConfig()->basis << "\"" << endl; 133 *file << "\tmolecule = $:molecule" << endl; 134 *file << ")" << endl; 135 } 136 } 137 138 /** Sets whether hessian is desired or not 139 * \param hessian statement 140 */ 141 void MpqcParser::setHessian(bool hessian) 142 { 143 HessianPresent = hessian; 144 } -
src/Parser/MpqcParser.hpp
r43dad6 r1b2d30 23 23 void save(std::ostream* file); 24 24 25 void setHessian(bool hessian); 25 26 26 27 private: 27 } 28 // whether output with computing hessian is desired. 29 bool HessianPresent; 30 31 void saveSimple(std::ostream *file); 32 void saveHessian(std::ostream *file); 33 }; 28 34 29 35 #endif /* MPQCPARSER_HPP_ */ -
src/Parser/PcpParser.cpp
r43dad6 r1b2d30 12 12 #include "ConfigFileBuffer.hpp" 13 13 #include "element.hpp" 14 #include "Helpers/Assert.hpp" 14 15 #include "log.hpp" 15 16 #include "molecule.hpp" … … 24 25 */ 25 26 PcpParser::PcpParser() 26 {} 27 { 28 Parallelization.ProcPEGamma = 1; 29 Parallelization.ProcPEPsi = 1; 30 31 Paths.databasepath = NULL; 32 Paths.configpath = NULL; 33 Paths.configname = NULL; 34 Paths.mainname = NULL; 35 Paths.defaultpath = NULL; 36 Paths.pseudopotpath = NULL; 37 38 Switches.DoConstrainedMD = 0; 39 Switches.DoOutVis = 0; 40 Switches.DoOutMes = 1; 41 Switches.DoOutNICS = 0; 42 Switches.DoOutOrbitals = 0; 43 Switches.DoOutCurrent = 0; 44 Switches.DoFullCurrent = 0; 45 Switches.DoPerturbation = 0; 46 Switches.DoWannier = 0; 47 48 LocalizedOrbitals.CommonWannier = 0; 49 LocalizedOrbitals.SawtoothStart = 0.01; 50 LocalizedOrbitals.VectorPlane = 0; 51 LocalizedOrbitals.VectorCut = 0; 52 LocalizedOrbitals.UseAddGramSch = 1; 53 LocalizedOrbitals.Seed = 1; 54 LocalizedOrbitals.EpsWannier = 1e-7; 55 56 StepCounts.MaxMinStopStep = 0; 57 StepCounts.InitMaxMinStopStep = 0; 58 StepCounts.OutVisStep = 10; 59 StepCounts.OutSrcStep = 5; 60 StepCounts.MaxPsiStep = 3; 61 StepCounts.MaxOuterStep = 0; 62 StepCounts.MaxMinStep = 100; 63 StepCounts.RelEpsTotalEnergy = 1e-07; 64 StepCounts.RelEpsKineticEnergy = 1e-05; 65 StepCounts.MaxMinGapStopStep = 0; 66 StepCounts.MaxInitMinStep = 100; 67 StepCounts.InitRelEpsTotalEnergy = 1e-05; 68 StepCounts.InitRelEpsKineticEnergy = 0.0001; 69 StepCounts.InitMaxMinGapStopStep = 1; 70 71 PlaneWaveSpecifics.PsiType = 0; 72 PlaneWaveSpecifics.MaxPsiDouble = 0; 73 PlaneWaveSpecifics.PsiMaxNoUp = 0; 74 PlaneWaveSpecifics.PsiMaxNoDown = 0; 75 PlaneWaveSpecifics.ECut = 128; 76 PlaneWaveSpecifics.MaxLevel = 5; 77 PlaneWaveSpecifics.RiemannTensor = 0; 78 PlaneWaveSpecifics.LevRFactor = 0; 79 PlaneWaveSpecifics.RiemannLevel = 0; 80 PlaneWaveSpecifics.Lev0Factor = 2; 81 PlaneWaveSpecifics.RTActualUse = 0; 82 PlaneWaveSpecifics.AddPsis = 0; 83 PlaneWaveSpecifics.RCut = 20; 84 PlaneWaveSpecifics.PsiType = 0; 85 86 FastParsing = false; 87 88 Deltat = 0.01; 89 IsAngstroem = 1; 90 RelativeCoord = 0; 91 MaxTypes = 0; 92 } 27 93 28 94 /** Destructor of PcpParser. … … 415 481 map<int, int> ZtoCountMap; 416 482 pair < map<int, int>::iterator, bool > Inserter; 483 int nr = 0; 417 484 for (vector<atom *>::iterator AtomRunner = allatoms.begin();AtomRunner != allatoms.end();++AtomRunner) { 418 485 Inserter = ZtoCountMap.insert( pair<int, int>((*AtomRunner)->type->Z, 1) ); 419 486 if (!Inserter.second) 420 487 Inserter.first->second += 1; 421 (*AtomRunner)->OutputArrayIndexed(file, &ZtoIndexMap[(*AtomRunner)->type->Z], &ZtoCountMap[Inserter.first->second], NULL); 488 *file << "Ion_Type" << ZtoIndexMap[(*AtomRunner)->type->Z] << "_" << ZtoCountMap[Inserter.first->second] << "\t" << fixed << setprecision(9) << showpoint; 489 *file << (*AtomRunner)->x[0] << "\t" << (*AtomRunner)->x[1] << "\t" << (*AtomRunner)->x[2]; 490 *file << "\t" << (*AtomRunner)->FixedIon; 491 if ((*AtomRunner)->v.Norm() > MYEPSILON) 492 *file << "\t" << scientific << setprecision(6) << (*AtomRunner)->v[0] << "\t" << (*AtomRunner)->v[1] << "\t" << (*AtomRunner)->v[2] << "\t"; 493 *file << " # molecule nr " << nr++ << endl; 422 494 } 423 495 } … … 499 571 }; 500 572 573 bool PcpParser::operator==(const PcpParser& b) const 574 { 575 ASSERT(Parallelization.ProcPEGamma == b.Parallelization.ProcPEGamma, "PcpParser ==: ProcPEGamma not"); 576 ASSERT(Parallelization.ProcPEPsi == b.Parallelization.ProcPEPsi, "PcpParser ==: ProcPEPsi not"); 577 578 if ((Paths.databasepath != NULL) && (b.Paths.databasepath != NULL)) 579 ASSERT(strcmp(Paths.databasepath, b.Paths.databasepath), "PcpParser ==: databasepath not"); 580 if ((Paths.configpath != NULL) && (b.Paths.configpath != NULL)) 581 ASSERT(strcmp(Paths.configpath, b.Paths.configpath), "PcpParser ==: configpath not"); 582 if ((Paths.configname != NULL) && (b.Paths.configname != NULL)) 583 ASSERT(strcmp(Paths.configname, b.Paths.configname), "PcpParser ==: configname not"); 584 if ((Paths.mainname != NULL) && (b.Paths.mainname != NULL)) 585 ASSERT(strcmp(Paths.mainname, b.Paths.mainname), "PcpParser ==: mainname not"); 586 if ((Paths.defaultpath != NULL) && (b.Paths.defaultpath != NULL)) 587 ASSERT(strcmp(Paths.defaultpath, b.Paths.defaultpath), "PcpParser ==: defaultpath not"); 588 if ((Paths.pseudopotpath != NULL) && (b.Paths.pseudopotpath != NULL)) 589 ASSERT(strcmp(Paths.pseudopotpath, b.Paths.pseudopotpath), "PcpParser ==: pseudopotpath not"); 590 591 ASSERT(Switches.DoConstrainedMD == b.Switches.DoConstrainedMD, "PcpParser ==: DoConstrainedMD not"); 592 ASSERT(Switches.DoOutVis == b.Switches.DoOutVis, "PcpParser ==: DoOutVis not"); 593 ASSERT(Switches.DoOutMes == b.Switches.DoOutMes, "PcpParser ==: DoOutMes not"); 594 ASSERT(Switches.DoOutNICS == b.Switches.DoOutNICS, "PcpParser ==: DoOutNICS not"); 595 ASSERT(Switches.DoOutOrbitals == b.Switches.DoOutOrbitals, "PcpParser ==: DoOutOrbitals not"); 596 ASSERT(Switches.DoOutCurrent == b.Switches.DoOutCurrent, "PcpParser ==: DoOutCurrent not"); 597 ASSERT(Switches.DoFullCurrent == b.Switches.DoFullCurrent, "PcpParser ==: DoFullCurrent not"); 598 ASSERT(Switches.DoPerturbation == b.Switches.DoPerturbation, "PcpParser ==: DoPerturbation not"); 599 ASSERT(Switches.DoWannier == b.Switches.DoWannier, "PcpParser ==: DoWannier not"); 600 601 ASSERT(LocalizedOrbitals.CommonWannier == b.LocalizedOrbitals.CommonWannier, "PcpParser ==: CommonWannier not"); 602 ASSERT(LocalizedOrbitals.SawtoothStart == b.LocalizedOrbitals.SawtoothStart, "PcpParser ==: SawtoothStart not"); 603 ASSERT(LocalizedOrbitals.VectorPlane == b.LocalizedOrbitals.VectorPlane, "PcpParser ==: VectorPlane not"); 604 ASSERT(LocalizedOrbitals.VectorCut == b.LocalizedOrbitals.VectorCut, "PcpParser ==: VectorCut not"); 605 ASSERT(LocalizedOrbitals.UseAddGramSch == b.LocalizedOrbitals.UseAddGramSch, "PcpParser ==: UseAddGramSch not"); 606 ASSERT(LocalizedOrbitals.Seed == b.LocalizedOrbitals.Seed, "PcpParser ==: Seed not"); 607 ASSERT(LocalizedOrbitals.EpsWannier == b.LocalizedOrbitals.EpsWannier, "PcpParser ==: EpsWannier not"); 608 609 ASSERT(StepCounts.MaxMinStopStep == b.StepCounts.MaxMinStopStep, "PcpParser ==: MaxMinStopStep not"); 610 ASSERT(StepCounts.InitMaxMinStopStep == b.StepCounts.InitMaxMinStopStep, "PcpParser ==: InitMaxMinStopStep not"); 611 ASSERT(StepCounts.OutVisStep == b.StepCounts.OutVisStep, "PcpParser ==: OutVisStep not"); 612 ASSERT(StepCounts.OutSrcStep == b.StepCounts.OutSrcStep, "PcpParser ==: OutSrcStep not"); 613 ASSERT(StepCounts.MaxPsiStep == b.StepCounts.MaxPsiStep, "PcpParser ==: MaxPsiStep not"); 614 ASSERT(StepCounts.MaxOuterStep == b.StepCounts.MaxOuterStep, "PcpParser ==: MaxOuterStep not"); 615 ASSERT(StepCounts.MaxMinStep == b.StepCounts.MaxMinStep, "PcpParser ==: MaxMinStep not"); 616 ASSERT(StepCounts.RelEpsTotalEnergy == b.StepCounts.RelEpsTotalEnergy, "PcpParser ==: RelEpsTotalEnergy not"); 617 ASSERT(StepCounts.MaxMinGapStopStep == b.StepCounts.MaxMinGapStopStep, "PcpParser ==: MaxMinGapStopStep not"); 618 ASSERT(StepCounts.MaxInitMinStep == b.StepCounts.MaxInitMinStep, "PcpParser ==: MaxInitMinStep not"); 619 ASSERT(StepCounts.InitRelEpsTotalEnergy == b.StepCounts.InitRelEpsTotalEnergy, "PcpParser ==: InitRelEpsTotalEnergy not"); 620 ASSERT(StepCounts.InitRelEpsKineticEnergy == b.StepCounts.InitRelEpsKineticEnergy, "PcpParser ==: InitRelEpsKineticEnergy not"); 621 ASSERT(StepCounts.InitMaxMinGapStopStep == b.StepCounts.InitMaxMinGapStopStep, "PcpParser ==: InitMaxMinGapStopStep not"); 622 623 ASSERT(PlaneWaveSpecifics.PsiType == b.PlaneWaveSpecifics.PsiType, "PcpParser ==: PsiType not"); 624 ASSERT(PlaneWaveSpecifics.MaxPsiDouble == b.PlaneWaveSpecifics.MaxPsiDouble, "PcpParser ==: MaxPsiDouble not"); 625 ASSERT(PlaneWaveSpecifics.PsiMaxNoUp == b.PlaneWaveSpecifics.PsiMaxNoUp, "PcpParser ==: PsiMaxNoUp not"); 626 ASSERT(PlaneWaveSpecifics.PsiMaxNoDown == b.PlaneWaveSpecifics.PsiMaxNoDown, "PcpParser ==: PsiMaxNoDown not"); 627 ASSERT(PlaneWaveSpecifics.ECut == b.PlaneWaveSpecifics.ECut, "PcpParser ==: ECut not"); 628 ASSERT(PlaneWaveSpecifics.MaxLevel == b.PlaneWaveSpecifics.MaxLevel, "PcpParser ==: MaxLevel not"); 629 ASSERT(PlaneWaveSpecifics.RiemannTensor == b.PlaneWaveSpecifics.RiemannTensor, "PcpParser ==: RiemannTensor not"); 630 ASSERT(PlaneWaveSpecifics.LevRFactor == b.PlaneWaveSpecifics.LevRFactor, "PcpParser ==: LevRFactor not"); 631 ASSERT(PlaneWaveSpecifics.RiemannLevel == b.PlaneWaveSpecifics.RiemannLevel, "PcpParser ==: RiemannLevel not"); 632 ASSERT(PlaneWaveSpecifics.Lev0Factor == b.PlaneWaveSpecifics.Lev0Factor, "PcpParser ==: Lev0Factor not"); 633 ASSERT(PlaneWaveSpecifics.RTActualUse == b.PlaneWaveSpecifics.RTActualUse, "PcpParser ==: RTActualUse not"); 634 ASSERT(PlaneWaveSpecifics.AddPsis == b.PlaneWaveSpecifics.AddPsis, "PcpParser ==: AddPsis not"); 635 ASSERT(PlaneWaveSpecifics.AddPsis == b.PlaneWaveSpecifics.AddPsis, "PcpParser ==: AddPsis not"); 636 ASSERT(PlaneWaveSpecifics.RCut == b.PlaneWaveSpecifics.RCut, "PcpParser ==: RCut not"); 637 638 ASSERT(FastParsing == b.FastParsing, "PcpParser ==: FastParsing not"); 639 640 ASSERT(Deltat == b.Deltat, "PcpParser ==: Deltat not"); 641 ASSERT(IsAngstroem == b.IsAngstroem, "PcpParser ==: IsAngstroem not"); 642 ASSERT(RelativeCoord == b.RelativeCoord, "PcpParser ==: RelativeCoord not"); 643 ASSERT(StructOpt == b.StructOpt, "PcpParser ==: StructOpt not"); 644 ASSERT(MaxTypes == b.MaxTypes, "PcpParser ==: MaxTypes not"); 645 ASSERT(basis == b.basis, "PcpParser ==: basis not"); 646 647 return true; 648 } -
src/Parser/PcpParser.hpp
r43dad6 r1b2d30 21 21 void load(std::istream* file); 22 22 void save(std::ostream* file); 23 24 bool operator==(const PcpParser& b) const; 23 25 24 26 private:
Note:
See TracChangeset
for help on using the changeset viewer.