BALL  1.5.0
crystalGenerator.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 
4 #ifndef BALL_XRAY_CRYSTALGENERATOR_H
5 #define BALL_XRAY_CRYSTALGENERATOR_H
6 
7 #ifndef BALL_KERNEL_ATOMCONTAINER_H
9 #endif
10 
11 #ifndef BALL_KERNEL_SYSTEM_H
12 #include <BALL/KERNEL/system.h>
13 #endif
14 
15 #ifndef BALL_DATATYPE_REGULARDATA3D_H
17 #endif
18 
19 #ifndef BALL_XRAY_CRYSTALINFO_H
20 #include <BALL/XRAY/crystalInfo.h>
21 #endif
22 
23 #ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
25 #endif
26 
27 #ifndef BALL_STRUCTURE_GEOMETRICPROPERTIES_H
29 #endif
30 
31 #ifndef BALL_MATHS_BOX3_H
32 # include <BALL/MATHS/box3.h>
33 #endif
34 
35 namespace BALL
36 {
41  {
42  public:
43 
44 
48 
51  enum CellType
52  {
53  NCS_ASU = 0,
54  ASU = 1,
55  UNITCELL = 2
56  };
57 
61  {
64  static const string SPACE_GROUP_FILE;
65  };
66 
70  {
73  static const string SPACE_GROUP_FILE;
74  };
75 
84 
91 
96 
98  void setSpaceGroupFilename(String& filename){filename_ = filename;};
99 
101  const String& getSpaceGroupFilename() const {return filename_;};
102  void setCrystalInfo(boost::shared_ptr<CrystalInfo> ci_ptr);
103  void setSystem(System* system_ptr);
104 
105  std::list<System*> generatePacking(Index a_loweridx, Index a_upperidx, Index b_loweridx, Index b_upperid, Index c_loweridx, Index c_upperid);
106 
110  std::list<System*> generateSymMoleculesWithinDistance(float angstrom);
111 
113 
114  protected:
115 
116  bool buildUnitCell_();
117  bool buildASU_();
118  bool correctASUPositions_(System* raw_cell);
119 
122 
124 
127  boost::shared_ptr<CrystalInfo> ci_ptr_;
129  };
130 } // namespace BALL
131 
132 #endif // BALL_XRAY_CRYSTALINFO_H
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::CrystalGenerator::buildASU_
bool buildASU_()
BALL::CrystalGenerator::transformer_
TransformationProcessor transformer_
Definition: crystalGenerator.h:121
BALL::CrystalGenerator::generateUnitCell
System * generateUnitCell()
BALL::CrystalGenerator::asu_
System * asu_
Definition: crystalGenerator.h:125
BALL::CrystalGenerator::setSystem
void setSystem(System *system_ptr)
BALL::System
Definition: KERNEL/system.h:40
BALL::CrystalGenerator::getSpaceGroupFilename
const String & getSpaceGroupFilename() const
Definition: crystalGenerator.h:101
BALL::CrystalGenerator::setCrystalInfo
void setCrystalInfo(boost::shared_ptr< CrystalInfo > ci_ptr)
BALL::CrystalGenerator::generateSymMoleculesWithinDistance
std::list< System * > generateSymMoleculesWithinDistance(float angstrom)
BALL::CrystalGenerator::CrystalGenerator
CrystalGenerator(const CrystalGenerator &cg)
BALL::CrystalGenerator::unitcell_
System * unitcell_
Definition: crystalGenerator.h:126
BALL::CrystalGenerator::getUnitCellBox
Box3 getUnitCellBox(Index a, Index b, Index c)
BALL::String
Definition: string.h:57
BALL::CrystalGenerator::system_
System * system_
Definition: crystalGenerator.h:123
BALL
Definition: constants.h:13
BALL::CrystalGenerator::generateUnitCell
System * generateUnitCell(Index a, Index b, Index c)
BALL::CrystalGenerator::center_processor_
GeometricCenterProcessor center_processor_
Definition: crystalGenerator.h:120
crystalInfo.h
BALL::CrystalGenerator::Default
Definition: crystalGenerator.h:70
BALL::CrystalGenerator::ci_ptr_
boost::shared_ptr< CrystalInfo > ci_ptr_
Definition: crystalGenerator.h:127
BALL::Constants::c
BALL_EXTERN_VARIABLE const double c
Definition: constants.h:149
BALL_INDEX_TYPE
BALL::CrystalGenerator::CrystalGenerator
CrystalGenerator()
BALL::CrystalGenerator::filename_
String filename_
Definition: crystalGenerator.h:128
BALL::CrystalGenerator::generateAsymmetricUnit
System * generateAsymmetricUnit()
BALL::TransformationProcessor
Definition: geometricTransformations.h:89
BALL::CrystalGenerator::setSpaceGroupFilename
void setSpaceGroupFilename(String &filename)
Definition: crystalGenerator.h:98
BALL::CrystalGenerator::buildUnitCell_
bool buildUnitCell_()
BALL::CrystalGenerator::Option
Definition: crystalGenerator.h:61
BALL::TBox3
Definition: box3.h:33
geometricProperties.h
BALL::CrystalGenerator::CellType
CellType
Definition: crystalGenerator.h:52
system.h
box3.h
regularData3D.h
atomContainer.h
BALL::CrystalGenerator
Definition: crystalGenerator.h:41
BALL::CrystalGenerator::Option::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition: crystalGenerator.h:64
BALL::CrystalGenerator::~CrystalGenerator
~CrystalGenerator()
BALL::GeometricCenterProcessor
Definition: geometricProperties.h:135
BALL::CrystalGenerator::generatePacking
std::list< System * > generatePacking(Index a_loweridx, Index a_upperidx, Index b_loweridx, Index b_upperid, Index c_loweridx, Index c_upperid)
BALL::CrystalGenerator::correctASUPositions_
bool correctASUPositions_(System *raw_cell)
geometricTransformations.h
BALL::CrystalGenerator::Default::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition: crystalGenerator.h:73