- Timestamp:
- Apr 4, 2012, 11:30:11 AM (13 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:
- 47ed3d
- Parents:
- ce7bfd
- git-author:
- Frederik Heber <heber@…> (03/26/12 07:44:19)
- git-committer:
- Frederik Heber <heber@…> (04/04/12 11:30:11)
- Location:
- src/Atom
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Atom/atom.cpp
rce7bfd r03a589 159 159 }; 160 160 161 bool atom::OutputXYZLine(ofstream *out) const162 {163 if (out != NULL) {164 *out << getType()->getSymbol() << "\t" << at(0) << "\t" << at(1) << "\t" << at(2) << "\t" << endl;165 return true;166 } else167 return false;168 };169 170 bool atom::OutputTrajectory(ofstream * const out, const enumeration<const element*> &elementLookup, int *AtomNo, const int step) const171 {172 AtomNo[getType()->getAtomicNumber()]++;173 if (out != NULL) {174 const element *elemental = getType();175 ASSERT(elementLookup.there.find(elemental)!=elementLookup.there.end(),"Type of this atom was not in the formula upon enumeration");176 *out << "Ion_Type" << elementLookup.there.find(elemental)->second << "_" << AtomNo[getType()->getAtomicNumber()] << "\t" << fixed << setprecision(9) << showpoint;177 *out << getPositionAtStep(step)[0] << "\t" << getPositionAtStep(step)[1] << "\t" << getPositionAtStep(step)[2];178 *out << "\t" << (int)(getFixedIon());179 if (getAtomicVelocityAtStep(step).Norm() > MYEPSILON)180 *out << "\t" << scientific << setprecision(6) << getAtomicVelocityAtStep(step)[0] << "\t" << getAtomicVelocityAtStep(step)[1] << "\t" << getAtomicVelocityAtStep(step)[2] << "\t";181 if (getAtomicForceAtStep(step).Norm() > MYEPSILON)182 *out << "\t" << scientific << setprecision(6) << getAtomicForceAtStep(step)[0] << "\t" << getAtomicForceAtStep(step)[1] << "\t" << getAtomicForceAtStep(step)[2] << "\t";183 *out << "\t# Number in molecule " << getNr() << endl;184 return true;185 } else186 return false;187 };188 189 bool atom::OutputTrajectoryXYZ(ofstream * const out, const int step) const190 {191 if (out != NULL) {192 *out << getType()->getSymbol() << "\t";193 *out << getPositionAtStep(step)[0] << "\t";194 *out << getPositionAtStep(step)[1] << "\t";195 *out << getPositionAtStep(step)[2] << endl;196 return true;197 } else198 return false;199 };200 201 void atom::OutputMPQCLine(ostream * const out, const Vector *center) const202 {203 Vector recentered(getPosition());204 recentered -= *center;205 *out << "\t\t" << getType()->getSymbol() << " [ " << recentered[0] << "\t" << recentered[1] << "\t" << recentered[2] << " ]" << endl;206 };207 208 void atom::OutputPsi3Line(ostream * const out, const Vector *center) const209 {210 Vector recentered(getPosition());211 recentered -= *center;212 *out << "\t( " << getType()->getSymbol() << "\t" << recentered[0] << "\t" << recentered[1] << "\t" << recentered[2] << " )" << endl;213 };214 215 161 bool atom::Compare(const atom &ptr) const 216 162 { -
src/Atom/atom.hpp
rce7bfd r03a589 84 84 */ 85 85 bool OutputArrayIndexed(ostream * const out,const enumeration<const element*>&, int *AtomNo, const char *comment = NULL) const; 86 87 /** Output of a single atom as one line in xyz file.88 * \param *out stream to output to89 * \return true - \a *out present, false - \a *out is NULL90 */91 bool OutputXYZLine(ofstream *out) const;92 93 /** Output of a single atom as one line in xyz file.94 * \param *out stream to output to95 * \param *ElementNo array with ion type number in the config file this atom's element shall have96 * \param *AtomNo array with atom number in the config file this atom shall have, is increase by one automatically97 * \param step Trajectory time step to output98 * \return true - \a *out present, false - \a *out is NULL99 */100 bool OutputTrajectory(ofstream * const out, const enumeration<const element*>&, int *AtomNo, const int step) const;101 102 /** Output of a single atom as one lin in xyz file.103 * \param *out stream to output to104 * \param step Trajectory time step to output105 * \return true - \a *out present, false - \a *out is NULL106 */107 bool OutputTrajectoryXYZ(ofstream * const out, const int step) const;108 109 /** Outputs the MPQC configuration line for this atom.110 * \param *out output stream111 * \param *center center of molecule subtracted from position112 * \param *AtomNo pointer to atom counter that is increased by one113 */114 void OutputMPQCLine(ostream * const out, const Vector *center) const;115 116 /** Outputs the Psi3 configuration line for this atom.117 * \param *out output stream118 * \param *center center of molecule subtracted from position119 * \param *AtomNo pointer to atom counter that is increased by one120 */121 void OutputPsi3Line(ostream * const out, const Vector *center) const;122 86 123 87 /** Initialises the component number array.
Note:
See TracChangeset
for help on using the changeset viewer.