Changes in src/molecules.hpp [2746be:437922]
- File:
-
- 1 edited
-
src/molecules.hpp (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/molecules.hpp
r2746be r437922 69 69 #define DistanceMultiMapPair pair <double, pair < PointMap::iterator, PointMap::iterator> > 70 70 71 #define MoleculeList list <molecule *> 72 #define MoleculeListTest pair <MoleculeList::iterator, bool> 73 71 74 /******************************** Some small functions and/or structures **********************************/ 72 75 … … 114 117 element *type; 115 118 }; 116 117 118 119 119 120 /** Single atom. … … 129 130 atom *father; //!< In many-body bond order fragmentations points to originating atom 130 131 atom *Ancestor; //!< "Father" in Depth-First-Search 131 char *Name; //!< unique name used during many-body bond-order fragmentation132 char *Name; //!< unique name used during many-body bond-order fragmentation 132 133 int FixedIon; //!< config variable that states whether forces act on the ion or not 133 134 int *sort; //!< sort criteria … … 144 145 ~atom(); 145 146 146 bool Output(int ElementNo, int AtomNo, ofstream *out ) const;147 bool Output(int ElementNo, int AtomNo, ofstream *out, const char *comment = NULL) const; 147 148 bool OutputXYZLine(ofstream *out) const; 148 149 atom *GetTrueFather(); … … 161 162 class bond { 162 163 public: 163 atom *leftatom;//!< first bond partner164 atom *rightatom;//!< second bond partner164 atom *leftatom; //!< first bond partner 165 atom *rightatom; //!< second bond partner 165 166 bond *previous; //!< previous atom in molecule list 166 167 bond *next; //!< next atom in molecule list 167 int HydrogenBond;//!< Number of hydrogen atoms in the bond168 int BondDegree;//!< single, double, triple, ... bond168 int HydrogenBond; //!< Number of hydrogen atoms in the bond 169 int BondDegree; //!< single, double, triple, ... bond 169 170 int nr; //!< unique number in a molecule, updated by molecule::CreateAdjacencyList() 170 171 bool Cyclic; //!< flag whether bond is part of a cycle or not, given in DepthFirstSearchAnalysis() … … 210 211 int MDSteps; //!< The number of MD steps in Trajectories 211 212 int *NumberOfBondsPerAtom; //!< Number of Bonds each atom has 212 int AtomCount; //!< number of atoms, brought up-to-date by CountAtoms()213 int BondCount; //!< number of atoms, brought up-to-date by CountBonds()213 int AtomCount; //!< number of atoms, brought up-to-date by CountAtoms() 214 int BondCount; //!< number of atoms, brought up-to-date by CountBonds() 214 215 int ElementCount; //!< how many unique elements are therein 215 216 int ElementsInMolecule[MAX_ELEMENTS]; //!< list whether element (sorted by atomic number) is alread present or not 216 int NoNonHydrogen; //!< number of non-hydrogen atoms in molecule217 int NoNonHydrogen; //!< number of non-hydrogen atoms in molecule 217 218 int NoNonBonds; //!< number of non-hydrogen bonds in molecule 218 219 int NoCyclicBonds; //!< number of cyclic bonds in molecule, by DepthFirstSearchAnalysis() 219 220 double BondDistance; //!< typical bond distance used in CreateAdjacencyList() and furtheron 221 bool ActiveFlag; //!< in a MoleculeListClass used to discern active from inactive molecules 222 Vector Center; //!< Center of molecule in a global box 223 char name[MAXSTRINGSIZE]; //!< arbitrary name 224 int IndexNr; //!< index of molecule in a MoleculeListClass 220 225 221 226 molecule(periodentafel *teil); … … 225 230 bool AddAtom(atom *pointer); 226 231 bool RemoveAtom(atom *pointer); 232 bool UnlinkAtom(atom *pointer); 227 233 bool CleanupMolecule(); 228 234 … … 245 251 bool CenterInBox(ofstream *out, Vector *BoxLengths); 246 252 void CenterEdge(ofstream *out, Vector *max); 247 void CenterOrigin(ofstream *out, Vector *max); 248 void CenterGravity(ofstream *out, Vector *max); 253 void CenterOrigin(ofstream *out); 254 void CenterPeriodic(ofstream *out); 255 void CenterAtVector(ofstream *out, Vector *newcenter); 249 256 void Translate(const Vector *x); 250 257 void Mirror(const Vector *x); 251 258 void Align(Vector *n); 252 259 void Scale(double **factor); 253 void Determine Center(Vector ¢er);260 void DeterminePeriodicCenter(Vector ¢er); 254 261 Vector * DetermineCenterOfGravity(ofstream *out); 255 262 Vector * DetermineCenterOfAll(ofstream *out); 263 void SetNameFromFilename(const char *filename); 256 264 void SetBoxDimension(Vector *dim); 257 265 double * ReturnFullMatrixforSymmetric(double *cell_size); 258 266 void ScanForPeriodicCorrection(ofstream *out); 259 void PrincipalAxisSystem(ofstream *out, bool DoRotate); 260 double VolumeOfConvexEnvelope(ofstream *out, bool IsAngstroem); 261 bool VerletForceIntegration(char *file, double delta_t, bool IsAngstroem); 267 void PrincipalAxisSystem(ofstream *out, bool DoRotate); 268 double VolumeOfConvexEnvelope(ofstream *out, bool IsAngstroem); 269 Vector* FindEmbeddingHole(ofstream *out, molecule *srcmol); 270 271 bool VerletForceIntegration(char *file, double delta_t, bool IsAngstroem); 262 272 263 273 bool CheckBounds(const Vector *x) const; … … 300 310 /// -# BOSSANOVA 301 311 void FragmentBOSSANOVA(ofstream *out, Graph *&FragmentList, KeyStack &RootStack, int *MinimumRingSize); 302 int PowerSetGenerator(ofstream *out, int Order, struct UniqueFragments &FragmentSearch, KeySet RestrictedKeySet);312 int PowerSetGenerator(ofstream *out, int Order, struct UniqueFragments &FragmentSearch, KeySet RestrictedKeySet); 303 313 bool BuildInducedSubgraph(ofstream *out, const molecule *Father); 304 314 molecule * StoreFragmentFromKeySet(ofstream *out, KeySet &Leaflet, bool IsAngstroem); … … 328 338 class MoleculeListClass { 329 339 public: 330 molecule **ListOfMolecules; //!< pointer list of fragment molecules to check for equality 331 int NumberOfMolecules; //!< Number of entries in \a **FragmentList and of to be returned one. 332 int NumberOfTopAtoms; //!< Number of atoms in the molecule from which all fragments originate 340 MoleculeList ListOfMolecules; //!< List of the contained molecules 341 int MaxIndex; 333 342 334 343 MoleculeListClass(); 335 MoleculeListClass(int Num, int NumAtoms);336 344 ~MoleculeListClass(); 337 345 338 /// Output configs.339 346 bool AddHydrogenCorrection(ofstream *out, char *path); 340 347 bool StoreForcesFile(ofstream *out, char *path, int *SortIndex); 348 void insert(molecule *mol); 349 molecule * ReturnIndex(int index); 341 350 bool OutputConfigForListOfFragments(ofstream *out, config *configuration, int *SortIndex); 351 int NumberOfActiveMolecules(); 352 void Enumerate(ofstream *out); 342 353 void Output(ofstream *out); 354 355 // merging of molecules 356 bool SimpleMerge(molecule *mol, molecule *srcmol); 357 bool SimpleAdd(molecule *mol, molecule *srcmol); 358 bool SimpleMultiMerge(molecule *mol, int *src, int N); 359 bool SimpleMultiAdd(molecule *mol, int *src, int N); 360 bool ScatterMerge(molecule *mol, int *src, int N); 361 bool EmbedMerge(molecule *mol, molecule *srcmol); 343 362 344 363 private: … … 456 475 bool Save(const char *filename, periodentafel *periode, molecule *mol) const; 457 476 bool SaveMPQC(const char *filename, molecule *mol) const; 458 void Edit( molecule *mol);477 void Edit(); 459 478 bool GetIsAngstroem() const; 460 479 char *GetDefaultPath() const;
Note:
See TracChangeset
for help on using the changeset viewer.
