Changeset ec9bd2
- Timestamp:
- May 25, 2016, 7:13:59 AM (9 years ago)
- Parents:
- 9cf90e
- git-author:
- Frederik Heber <heber@…> (05/10/16 21:23:50)
- git-committer:
- Frederik Heber <heber@…> (05/25/16 07:13:59)
- Files:
-
- 5 edited
-
src/Actions/AtomAction/SaturateAction.cpp (modified) (1 diff)
-
src/Fragmentation/Exporters/SphericalPointDistribution.cpp (modified) (1 diff)
-
src/Fragmentation/Exporters/SphericalPointDistribution.hpp (modified) (1 diff)
-
tests/regression/Atoms/Saturate/testsuite-atoms-saturate_carbon.at (modified) (3 diffs)
-
tests/regression/Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/AtomAction/SaturateAction.cpp
r9cf90e rec9bd2 84 84 // check for any bonds and get vacant positions 85 85 SphericalPointDistribution::Polygon_t vacant_positions; 86 // const BondList& ListOfBonds = _atom->getListOfBonds(); 87 // SphericalPointDistribution PointSphere(typical_distance); 88 // if (ListOfBonds.size() == 0) { 89 // vacant_positions = PointSphere.getSimplePolygon(_atom->getType()->getNoValenceOrbitals()); 90 // LOG(3, "DEBUG: Using ideal positions as " << vacant_positions); 91 // } else { 92 // // get ideal polygon and currently occupied positions 93 // const SphericalPointDistribution::Polygon_t ideal_positions = 94 // PointSphere.getSimplePolygon(_atom->getType()->getNoValenceOrbitals()); 95 // LOG(3, "DEBUG: ideal positions are " << ideal_positions); 96 // SphericalPointDistribution::Polygon_t current_positions; 97 // for (BondList::const_iterator bonditer = ListOfBonds.begin(); 98 // bonditer != ListOfBonds.end(); ++bonditer) { 99 // const Vector position = 100 // (*bonditer)->GetOtherAtom(_atom)->getPosition().getVectorToPoint(_atom->getPosition()); 101 // current_positions.push_back((1./position.Norm())*position); 102 // } 103 // LOG(3, "DEBUG: current occupied positions are " << current_positions); 104 // 105 // // find the best matching rotated polygon 106 // vacant_positions = SphericalPointDistribution::matchSphericalPointDistributions( 107 // current_positions, 108 // ideal_positions); 109 // LOG(3, "DEBUG: Resulting vacant positions are " << vacant_positions); 110 // 111 // // scale vacant positions to typical_distance 112 // std::for_each( 113 // vacant_positions.begin(), vacant_positions.end(), 114 // boost::bind(&Vector::Scale, _1, boost::cref(typical_distance))); 115 // } 86 const BondList& ListOfBonds = _atom->getListOfBonds(); 87 SphericalPointDistribution PointSphere(typical_distance); 88 if (ListOfBonds.size() == 0) { 89 vacant_positions = PointSphere.getSimplePolygon(_atom->getType()->getNoValenceOrbitals()); 90 LOG(3, "DEBUG: Using ideal positions as " << vacant_positions); 91 } else { 92 // get ideal polygon and currently occupied positions 93 const SphericalPointDistribution::Polygon_t ideal_positions = 94 PointSphere.getSimplePolygon(_atom->getType()->getNoValenceOrbitals()); 95 LOG(3, "DEBUG: ideal positions are " << ideal_positions); 96 SphericalPointDistribution::WeightedPolygon_t current_positions; 97 for (BondList::const_iterator bonditer = ListOfBonds.begin(); 98 bonditer != ListOfBonds.end(); ++bonditer) { 99 const Vector position = 100 (*bonditer)->GetOtherAtom(_atom)->getPosition().getVectorToPoint(_atom->getPosition()); 101 current_positions.push_back( 102 std::make_pair( (1./position.Norm())*position, (*bonditer)->getDegree() )); 103 } 104 LOG(3, "DEBUG: current occupied positions are " << current_positions); 105 106 // find the best matching rotated polygon 107 vacant_positions = PointSphere.getRemainingPoints( 108 current_positions, 109 _atom->getType()->getNoValenceOrbitals()); 110 LOG(3, "DEBUG: Resulting vacant positions are " << vacant_positions); 111 112 // scale vacant positions to typical_distance 113 std::for_each( 114 vacant_positions.begin(), vacant_positions.end(), 115 boost::bind(&Vector::Scale, _1, boost::cref(typical_distance))); 116 LOG(3, "DEBUG: Rescaled vacant positions are " << vacant_positions); 117 } 116 118 117 119 // add the hydrogens -
src/Fragmentation/Exporters/SphericalPointDistribution.cpp
r9cf90e rec9bd2 1027 1027 return points; 1028 1028 } 1029 1030 SphericalPointDistribution::Polygon_t 1031 SphericalPointDistribution::getSimplePolygon(const int _NumberOfPoints) const 1032 { 1033 Polygon_t returnpolygon; 1034 1035 switch (_NumberOfPoints) 1036 { 1037 case 0: 1038 returnpolygon = get<0>(); 1039 break; 1040 case 1: 1041 returnpolygon = get<1>(); 1042 break; 1043 case 2: 1044 returnpolygon = get<2>(); 1045 break; 1046 case 3: 1047 returnpolygon = get<3>(); 1048 break; 1049 case 4: 1050 returnpolygon = get<4>(); 1051 break; 1052 case 5: 1053 returnpolygon = get<5>(); 1054 break; 1055 case 6: 1056 returnpolygon = get<6>(); 1057 break; 1058 case 7: 1059 returnpolygon = get<7>(); 1060 break; 1061 case 8: 1062 returnpolygon = get<8>(); 1063 break; 1064 case 9: 1065 returnpolygon = get<9>(); 1066 break; 1067 case 10: 1068 returnpolygon = get<10>(); 1069 break; 1070 case 11: 1071 returnpolygon = get<11>(); 1072 break; 1073 case 12: 1074 returnpolygon = get<12>(); 1075 break; 1076 case 14: 1077 returnpolygon = get<14>(); 1078 break; 1079 default: 1080 ASSERT(0, "SphericalPointDistribution::initSelf() - cannot deal with the case " 1081 +toString(_NumberOfPoints)+"."); 1082 } 1083 1084 return returnpolygon; 1085 } 1086 -
src/Fragmentation/Exporters/SphericalPointDistribution.hpp
r9cf90e rec9bd2 71 71 ASSERT(0, "SphericalPointDistribution::getConnections() - not specialized for "+toString(N)+"."); 72 72 } 73 74 /** Initializes the polygon with the given \a _NumberOfPoints. 75 * 76 * \param _NumberOfPoints number of points 77 */ 78 Polygon_t getSimplePolygon(const int _NumberOfPoints) const; 73 79 74 80 /** Returns vacant spots to fill to get a complete spherical point distribution from -
tests/regression/Atoms/Saturate/testsuite-atoms-saturate_carbon.at
r9cf90e rec9bd2 20 20 AT_SETUP([Atoms - saturating carbon]) 21 21 AT_KEYWORDS([atoms saturate-atoms]) 22 AT_SKIP_IF([/bin/true])23 22 24 23 file=saturated_carbon.xyz … … 30 29 AT_SETUP([Atoms - saturating carbon with Undo]) 31 30 AT_KEYWORDS([atoms saturate-atoms undo]) 32 AT_SKIP_IF([/bin/true])33 31 34 32 file=carbon.xyz … … 40 38 AT_SETUP([Atoms - saturating carbon with Redo]) 41 39 AT_KEYWORDS([atoms saturate-atoms redo]) 42 AT_SKIP_IF([/bin/true])43 40 44 41 file=saturated_carbon.xyz -
tests/regression/Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at
r9cf90e rec9bd2 20 20 AT_SETUP([Atoms - saturating nitrogen]) 21 21 AT_KEYWORDS([atoms saturate-atoms]) 22 AT_SKIP_IF([/bin/true])23 22 24 23 file=saturated_nitrogen.xyz … … 30 29 AT_SETUP([Atoms - saturating nitrogen with Undo]) 31 30 AT_KEYWORDS([atoms saturate-atoms undo]) 32 AT_SKIP_IF([/bin/true])33 31 34 32 file=nitrogen.xyz … … 40 38 AT_SETUP([Atoms - saturating nitrogen with Redo]) 41 39 AT_KEYWORDS([atoms saturate-atoms redo]) 42 AT_SKIP_IF([/bin/true])43 40 44 41 file=saturated_nitrogen.xyz
Note:
See TracChangeset
for help on using the changeset viewer.
