Changeset d640ea for src/Parser/Psi3Parser.cpp
- Timestamp:
- Oct 18, 2011, 8:23:11 AM (14 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:
- 752bb4
- Parents:
- 9011c1
- git-author:
- Frederik Heber <heber@…> (10/06/11 13:55:45)
- git-committer:
- Frederik Heber <heber@…> (10/18/11 08:23:11)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/Psi3Parser.cpp
r9011c1 rd640ea 160 160 void FormatParser< psi3 >::save(ostream *file, const std::vector<atom *> &atoms) 161 161 { 162 // Vector center; 163 //// vector<atom *> allatoms = World::getInstance().getAllAtoms(); 164 // 165 // // calculate center 166 // for (std::vector<atom *>::const_iterator runner = atoms.begin();runner != atoms.end(); ++runner) 167 // center += (*runner)->getPosition(); 168 // center.Scale(1./(double)atoms.size()); 169 // 170 // // first without hessian 171 // if (file->fail()) { 172 // DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open psi3 output file." << endl); 173 // } else { 174 // *file << "% Created by MoleCuilder" << endl; 175 // *file << "psi3: (" << endl; 176 // *file << "\tsavestate = " << getParams().getParameter(Psi3Parser_Parameters::savestateParam) << endl; 177 // *file << "\tdo_gradient = " << getParams().getParameter(Psi3Parser_Parameters::do_gradientParam) << endl; 178 // if (Converter(getParams().getParameter(Psi3Parser_Parameters::hessianParam))) { 179 // *file << "\tfreq<MolecularFrequencies>: (" << endl; 180 // *file << "\t\tmolecule=$:molecule" << endl; 181 // *file << "\t)" << endl; 162 Vector center; 163 // vector<atom *> allatoms = World::getInstance().getAllAtoms(); 164 165 // calculate center 166 for (std::vector<atom *>::const_iterator runner = atoms.begin();runner != atoms.end(); ++runner) 167 center += (*runner)->getPosition(); 168 center.Scale(1./(double)atoms.size()); 169 170 // first without hessian 171 if (file->fail()) { 172 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open psi3 output file." << std::endl); 173 } else { 174 *file << "% Created by MoleCuilder" << std::endl; 175 *file << "psi: (" << std::endl; 176 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::labelParam) 177 << " = \"" << getParams().getParameter(Psi3Parser_Parameters::labelParam) << "\"" << std::endl; 178 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::jobtypeParam) 179 << " = " << getParams().getParameter(Psi3Parser_Parameters::jobtypeParam) << std::endl; 180 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::wavefunctionParam) 181 << " = " << getParams().getParameter(Psi3Parser_Parameters::wavefunctionParam) << std::endl; 182 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::maxiterParam) 183 << " = " << getParams().getParameter(Psi3Parser_Parameters::maxiterParam) << std::endl; 184 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::referenceParam) 185 << " = " << getParams().getParameter(Psi3Parser_Parameters::referenceParam) << std::endl; 186 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) 187 << " = \"" << getParams().getParameter(Psi3Parser_Parameters::basisParam) << "\"" << std::endl; 188 const std::string reference = getParams().getParameter(Psi3Parser_Parameters::referenceParam); 189 // if (reference == getParams().getReferenceName(Psi3Parser_Parameters::RHF)) { 182 190 // } 183 // const std::string theory = getParams().getParameter(Psi3Parser_Parameters::theoryParam); 184 // if (theory == getParams().getTheoryName(Psi3Parser_Parameters::CLHF)) { 185 // *file << "\tmole<" << getParams().getParameter(Psi3Parser_Parameters::theoryParam) << ">: (" << endl; 186 // *file << "\t\tmolecule = $:molecule" << endl; 187 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 188 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::maxiterParam) 189 // << " = " << getParams().getParameter(Psi3Parser_Parameters::maxiterParam)<< endl; 190 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::memoryParam) 191 // << " = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 192 // *file << "\t)" << endl; 193 // } else if (theory == getParams().getTheoryName(Psi3Parser_Parameters::CLKS)) { 194 // *file << "\tmole<" << getParams().getParameter(Psi3Parser_Parameters::theoryParam) << ">: (" << endl; 195 // *file << "\t\tfunctional<StdDenFunctional>:(name=B3LYP)" << endl; 196 // *file << "\t\tmolecule = $:molecule" << endl; 197 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 198 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::maxiterParam) 199 // << " = " << getParams().getParameter(Psi3Parser_Parameters::maxiterParam)<< endl; 200 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::memoryParam) 201 // << " = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 202 // *file << "\t)" << endl; 203 // } else if (theory == getParams().getTheoryName(Psi3Parser_Parameters::MBPT2)) { 204 // *file << "\tmole<" << getParams().getParameter(Psi3Parser_Parameters::theoryParam) << ">: (" << endl; 205 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 206 // *file << "\t\tmolecule = $:molecule" << endl; 207 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::memoryParam) 208 // << " = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 209 // *file << "\t\treference<CLHF>: (" << endl; 210 // *file << "\t\t\t" << getParams().getParameterName(Psi3Parser_Parameters::maxiterParam) 211 // << " = " << getParams().getParameter(Psi3Parser_Parameters::maxiterParam)<< endl; 212 // *file << "\t\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 213 // *file << "\t\t\tmolecule = $:molecule" << endl; 214 // *file << "\t\t\t" << getParams().getParameterName(Psi3Parser_Parameters::memoryParam) 215 // << " = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 216 // *file << "\t\t)" << endl; 217 // *file << "\t)" << endl; 218 // } else if (theory == getParams().getTheoryName(Psi3Parser_Parameters::MBPT2_R12)) { 219 // *file << "\tmole<" << getParams().getParameter(Psi3Parser_Parameters::theoryParam) << ">: (" << endl; 220 // *file << "\t\tmolecule = $:molecule" << endl; 221 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 222 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::aux_basisParam) << " = $:abasis" << endl; 223 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::stdapproxParam) 224 // << " = \"" << getParams().getParameter(Psi3Parser_Parameters::stdapproxParam) << "\"" << endl; 225 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::nfzcParam) 226 // << " = " << getParams().getParameter(Psi3Parser_Parameters::nfzcParam) << endl; 227 // *file << "\t\t" << getParams().getParameterName(Psi3Parser_Parameters::memoryParam) 228 // << " = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 229 // *file << "\t\tintegrals<IntegralCints>:()" << endl; 230 // *file << "\t\treference<CLHF>: (" << endl; 231 // *file << "\t\t\tmolecule = $:molecule" << endl; 232 // *file << "\t\t\t" << getParams().getParameterName(Psi3Parser_Parameters::basisParam) << " = $:basis" << endl; 233 // *file << "\t\t\tmaxiter = " << getParams().getParameter(Psi3Parser_Parameters::maxiterParam) << endl; 234 // *file << "\t\t\tmemory = " << getParams().getParameter(Psi3Parser_Parameters::memoryParam) << endl; 235 // *file << "\t\t\tintegrals<" << getParams().getParameter(Psi3Parser_Parameters::integrationParam) << ">:()" << endl; 236 // *file << "\t\t)" << endl; 237 // *file << "\t)" << endl; 238 // } else { 239 // DoeLog(0) && (eLog() << Verbose(0) 240 // << "Unknown level of theory requested for MPQC output file." << std::endl); 191 // if (reference == getParams().getReferenceName(Psi3Parser_Parameters::ROHF)) { 241 192 // } 242 // *file << ")" << endl; 243 // *file << "molecule<Molecule>: (" << endl; 244 // *file << "\tunit = " << (World::getInstance().getConfig()->GetIsAngstroem() ? "angstrom" : "bohr" ) << endl; 245 // *file << "\t{ atoms geometry } = {" << endl; 246 // // output of atoms 247 // for (std::vector<atom *>::const_iterator AtomRunner = atoms.begin(); AtomRunner != atoms.end(); ++AtomRunner) { 248 // (*AtomRunner)->OutputMPQCLine(file, ¢er); 249 // } 250 // *file << "\t}" << endl; 251 // *file << ")" << endl; 252 // *file << "basis<GaussianBasisSet>: (" << endl; 253 // *file << "\tname = \"" << getParams().getParameter(Psi3Parser_Parameters::basisParam) << "\"" << endl; 254 // *file << "\tmolecule = $:molecule" << endl; 255 // *file << ")" << endl; 256 // if (theory == getParams().getTheoryName(Psi3Parser_Parameters::MBPT2_R12)) { 257 // *file << "% auxiliary basis set specification" << endl; 258 // *file << "\tabasis<GaussianBasisSet>: (" << endl; 259 // *file << "\tname = \"" << getParams().getParameter(Psi3Parser_Parameters::aux_basisParam) << "\"" << endl; 260 // *file << "\tmolecule = $:molecule" << endl; 261 // *file << ")" << endl; 262 // } 263 // } 193 if ((reference == getParams().getReferenceName(Psi3Parser_Parameters::UHF)) 194 || (reference == getParams().getReferenceName(Psi3Parser_Parameters::TWOCON))) { 195 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::multiplicityParam) 196 << " = " << getParams().getParameter(Psi3Parser_Parameters::multiplicityParam) << std::endl; 197 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::chargeParam) 198 << " = " << getParams().getParameter(Psi3Parser_Parameters::chargeParam) << std::endl; 199 } 200 if (reference == getParams().getReferenceName(Psi3Parser_Parameters::TWOCON)) { 201 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::soccParam) 202 << " = " << getParams().getParameter(Psi3Parser_Parameters::soccParam) << std::endl; 203 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::doccParam) 204 << " = " << getParams().getParameter(Psi3Parser_Parameters::doccParam) << std::endl; 205 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::subgroupParam) 206 << " = " << getParams().getParameter(Psi3Parser_Parameters::subgroupParam) << std::endl; 207 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::unique_axisParam) 208 << " = " << getParams().getParameter(Psi3Parser_Parameters::unique_axisParam) << std::endl; 209 } 210 if ((reference != getParams().getReferenceName(Psi3Parser_Parameters::RHF)) 211 && (reference != getParams().getReferenceName(Psi3Parser_Parameters::ROHF)) 212 && (reference != getParams().getReferenceName(Psi3Parser_Parameters::UHF)) 213 && (reference != getParams().getReferenceName(Psi3Parser_Parameters::TWOCON))) 214 { 215 DoeLog(0) && (eLog() << Verbose(0) 216 << "Unknown level of reference requested for Psi3 output file." << std::endl); 217 } 218 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::freeze_coreParam) 219 << " = " << getParams().getParameter(Psi3Parser_Parameters::freeze_coreParam) << std::endl; 220 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::unitsParam) 221 << " = " << getParams().getParameter(Psi3Parser_Parameters::unitsParam) << std::endl; 222 *file << "\tgeometry = (" << std::endl; 223 // output of atoms 224 for (std::vector<atom *>::const_iterator AtomRunner = atoms.begin(); AtomRunner != atoms.end(); ++AtomRunner) { 225 (*AtomRunner)->OutputPsi3Line(file, ¢er); 226 } 227 *file << "\t)" << std::endl; 228 *file << "\t" << getParams().getParameterName(Psi3Parser_Parameters::originParam) 229 << " = " << getParams().getParameter(Psi3Parser_Parameters::originParam) << std::endl; 230 *file << ")" << std::endl; 231 } 264 232 } 265 233
Note:
See TracChangeset
for help on using the changeset viewer.