source: molecuilder/src/boundary.hpp@ 70b7aa

Last change on this file since 70b7aa was 567b7f, checked in by Frederik Heber <heber@…>, 16 years ago

In molecule::OutputTrajectories() ActOnAllAtoms() with new function atom::OutputTrajectory() is used.

For this to work, I had to change the Trajectory struct that was so far included in molecule.hpp to be incorporated directly into the class atom.
NOTE: This incorporation is incomplete and a ticket (#34) has been filed to remind of this issue.
However, the trajectory is better suited to reside in atom anyway and was probably just put in molecule due to memory prejudices against STL vector<>.
Functions in molecule.cpp, config.cpp, molecule_geometry.cpp and molecule_dynamics.cpp were adapted (changed from Trajectories[atom *] to atom *->Trajectory).
And the atom pointer in the Trajectory structure was removed.

  • Property mode set to 100755
File size: 2.0 KB
Line 
1#ifndef BOUNDARY_HPP_
2#define BOUNDARY_HPP_
3
4// include config.h
5#ifdef HAVE_CONFIG_H
6#include <config.h>
7#endif
8
9// STL headers
10#include <map>
11
12#include "config.hpp"
13#include "linkedcell.hpp"
14#include "molecule.hpp"
15#include "tesselation.hpp"
16
17#define DEBUG 1
18#define DoSingleStepOutput 0
19#define SingleStepWidth 1
20
21#define DistancePair pair < double, atom* >
22#define DistanceMap multimap < double, atom* >
23#define DistanceTestPair pair < DistanceMap::iterator, bool>
24
25#define Boundaries map <double, DistancePair >
26#define BoundariesPair pair<double, DistancePair >
27#define BoundariesTestPair pair< Boundaries::iterator, bool>
28
29double VolumeOfConvexEnvelope(ofstream *out, class Tesselation *TesselStruct, class config *configuration);
30double * GetDiametersOfCluster(ofstream *out, Boundaries *BoundaryPtr, molecule *mol, bool IsAngstroem);
31void PrepareClustersinWater(ofstream *out, config *configuration, molecule *mol, double ClusterVolume, double celldensity);
32molecule * FillBoxWithMolecule(ofstream *out, MoleculeListClass *List, molecule *filler, config &configuration, double distance[NDIM], double RandAtomDisplacement, double RandMolDisplacement, bool DoRandomRotation);
33void FindConvexBorder(ofstream *out, molecule* mol, class LinkedCell *LCList, const char *filename);
34void FindNonConvexBorder(ofstream *out, molecule* mol, class LinkedCell *LC, const double RADIUS, const char *tempbasename);
35double ConvexizeNonconvexEnvelope(ofstream *out, class Tesselation *TesselStruct, molecule *mol, char *filename);
36void FindNextSuitablePoint(class BoundaryTriangleSet *BaseTriangle, class BoundaryLineSet *BaseLine, atom*& OptCandidate, Vector *OptCandidateCenter, double *ShortestAngle, const double RADIUS, LinkedCell *LC);
37Boundaries *GetBoundaryPoints(ofstream *out, molecule *mol);
38void StoreTrianglesinFile(ofstream *out, molecule *mol, const char *filename, const char *extraSuffix);
39bool RemoveAllBoundaryPoints(ofstream *out, class Tesselation *TesselStruct, molecule *mol, char *filename);
40
41
42#endif /*BOUNDARY_HPP_*/
Note: See TracBrowser for help on using the repository browser.