Changes in / [51a5c8:f0f1cc]
- Files:
-
- 20 deleted
- 43 edited
Legend:
- Unmodified
- Added
- Removed
-
configure.ac
r51a5c8 rf0f1cc 33 33 AX_BOOST_THREAD 34 34 #AX_BOOST_SERIALIZATION 35 36 #QT4 libraries37 gw_CHECK_QT438 AX_CHECK_GLU39 AC_MSG_NOTICE(["GLU_CFLAGS: $GLU_CFLAGS, GLU_CXXFLAGS: $GLU_CXXFLAGS, GLU_LDFLAGS: $GLU_LDFLAGS, GLU_LIBS: $GLU_LIBS"])40 41 35 42 36 # Checks for header files. -
doc/class structure.uxf
r51a5c8 rf0f1cc 21 21 22 22 23 // This text will be stored with each diagram; use it for notes.</help_text><zoom_level>7</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>1855</x><y>2 10</y><w>147</w><h>70</h></coordinates><panel_attributes>AtomInfo23 // This text will be stored with each diagram; use it for notes.</help_text><zoom_level>7</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>1855</x><y>294</y><w>147</w><h>70</h></coordinates><panel_attributes>AtomInfo 24 24 -- 25 25 -x,v,F: Vector … … 28 28 #AtomInfo(); 29 29 #~AtomInfo(); 30 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1645</x><y> 231</y><w>223</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>210;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1274</x><y>63</y><w>392</w><h>259</h></coordinates><panel_attributes>Element30 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1645</x><y>315</y><w>223</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>210;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1274</x><y>147</y><w>392</w><h>259</h></coordinates><panel_attributes>Element 31 31 -- 32 32 mass: double … … 49 49 #~element(); 50 50 #Output(ofstream * const out) const: bool 51 #Checkout(ofstream * const out, const int No, const int NoOfAtoms) const: bool</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1960</x><y> 448</y><w>280</w><h>161</h></coordinates><panel_attributes>BondedParticle51 #Checkout(ofstream * const out, const int No, const int NoOfAtoms) const: bool</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1960</x><y>532</y><w>280</w><h>161</h></coordinates><panel_attributes>BondedParticle 52 52 -- 53 53 -- … … 63 63 #OutputBondOfAtom() const 64 64 #OutputAdjacency(ofstream *AdjacencyFile) const 65 #OutputOrder(ofstream *file) const</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2184</x><y> 259</y><w>258</w><h>202</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>245;21;245;154;21;154;21;189</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1925</x><y>259</y><w>293</w><h>202</h></coordinates><panel_attributes>lt=<<-66 </panel_attributes><additional_attributes>21;21;21;154;280;154;280;189</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2184</x><y> 259</y><w>34</w><h>202</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;189</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2359</x><y>210</y><w>147</w><h>70</h></coordinates><panel_attributes>BondedParticleInfo65 #OutputOrder(ofstream *file) const</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2184</x><y>343</y><w>258</w><h>202</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>245;21;245;154;21;154;21;189</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1925</x><y>343</y><w>293</w><h>202</h></coordinates><panel_attributes>lt=<<- 66 </panel_attributes><additional_attributes>21;21;21;154;280;154;280;189</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2184</x><y>343</y><w>34</w><h>202</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;189</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2359</x><y>294</y><w>147</w><h>70</h></coordinates><panel_attributes>BondedParticleInfo 67 67 -- 68 68 AdaptiveOrder: unsigned char … … 71 71 #BondedParticleInfo() 72 72 #~BondedParticleInfo() 73 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2079</x><y> 196</y><w>217</w><h>84</h></coordinates><panel_attributes>ParticleInfo73 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2079</x><y>280</y><w>217</w><h>84</h></coordinates><panel_attributes>ParticleInfo 74 74 -- 75 75 nr: int … … 79 79 #~ParticleInfo() 80 80 #ostream & operator << (ostream &ost) const 81 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2485</x><y> 231</y><w>174</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;161;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2646</x><y>161</y><w>147</w><h>133</h></coordinates><panel_attributes>BondList81 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2485</x><y>315</y><w>174</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;161;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2646</x><y>245</y><w>147</w><h>133</h></coordinates><panel_attributes>BondList 82 82 {Some Properties} 83 83 -- … … 90 90 Responsibilities 91 91 -- Resp1 92 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1372</x><y> 343</y><w>147</w><h>105</h></coordinates><panel_attributes>GraphNodeInfo92 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1372</x><y>427</y><w>147</w><h>105</h></coordinates><panel_attributes>GraphNodeInfo 93 93 -- 94 94 -- … … 102 102 #GraphNodeInfo() 103 103 #~GraphNodeInfo() 104 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1484</x><y> 525</y><w>126</w><h>70</h></coordinates><panel_attributes>GraphNode104 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1484</x><y>609</y><w>126</w><h>70</h></coordinates><panel_attributes>GraphNode 105 105 -- 106 106 -- … … 109 109 #OutputGraphInfo() const 110 110 #OutputComponentNumber() const 111 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1484</x><y> 259</y><w>748</w><h>279</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>735;21;735;70;217;70;217;210;21;210;21;266</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1484</x><y>427</y><w>34</w><h>111</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;98</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1288</x><y>672</y><w>588</w><h>245</h></coordinates><panel_attributes>Atom111 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1484</x><y>343</y><w>748</w><h>279</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>735;21;735;70;217;70;217;210;21;210;21;266</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1484</x><y>511</y><w>34</w><h>111</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;98</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1288</x><y>756</y><w>588</w><h>245</h></coordinates><panel_attributes>Atom 112 112 -- 113 113 sort: int* … … 129 129 #DistanceToVector(const Vector &origin) const: double 130 130 #DistanceSquaredToVector(const Vector &origin) const: double 131 #IsInParallelepiped(const Vector offset, const double *parallelepiped) const: bool</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1379</x><y> 427</y><w>83</w><h>258</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;21;182;70;182;70;245</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2226</x><y>665</y><w>504</w><h>210</h></coordinates><panel_attributes>TrajectoryParticle131 #IsInParallelepiped(const Vector offset, const double *parallelepiped) const: bool</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1379</x><y>511</y><w>83</w><h>258</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;21;182;70;182;70;245</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2226</x><y>749</y><w>504</w><h>210</h></coordinates><panel_attributes>TrajectoryParticle 132 132 -- 133 133 -- … … 147 147 #Thermostat_Berendsen(int Step, double ScaleTempFactor, double *ekin, config *configuration) 148 148 #Thermostat_NoseHoover_init(int Step, double *delta_alpha) 149 #Thermostat_NoseHoover_scale(int Step, double *ekin, config *configuration)</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2149</x><y> 259</y><w>209</w><h>419</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;112;196;112;196;406</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1967</x><y>259</y><w>391</w><h>419</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;112;378;112;378;406</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1617</x><y>490</y><w>203</w><h>70</h></coordinates><panel_attributes>TrajectoryParticleInfo149 #Thermostat_NoseHoover_scale(int Step, double *ekin, config *configuration)</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2149</x><y>343</y><w>209</w><h>419</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;112;196;112;196;406</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1967</x><y>343</y><w>391</w><h>419</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;112;378;112;378;406</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1617</x><y>574</y><w>203</w><h>70</h></coordinates><panel_attributes>TrajectoryParticleInfo 150 150 -- 151 151 Trajectory: struct {vector<Vector> R,U,V} … … 153 153 -- 154 154 #TrajectoryParticleInfo() 155 #~TrajectoryParticleInfo()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1757</x><y> 539</y><w>601</w><h>139</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;105;588;105;588;126</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>539</y><w>34</w><h>146</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;133</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1519</x><y>574</y><w>244</w><h>111</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;56;231;56;231;98</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1736</x><y>364</y><w>147</w><h>112</h></coordinates><panel_attributes>TesselPoint155 #~TrajectoryParticleInfo()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1757</x><y>623</y><w>601</w><h>139</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;105;588;105;588;126</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>623</y><w>34</w><h>146</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;133</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1519</x><y>658</y><w>244</w><h>111</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>21;21;21;56;231;56;231;98</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1736</x><y>448</y><w>147</w><h>112</h></coordinates><panel_attributes>TesselPoint 156 156 -- 157 157 -id: Long … … 163 163 Responsibilities 164 164 -- Resp1 165 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y> 455</y><w>146</w><h>230</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>133;21;133;175;21;175;21;217</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>588</y><w>398</w><h>97</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>385;21;385;42;21;42;21;84</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>259</y><w>398</w><h>426</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>385;21;385;168;196;168;196;371;21;371;21;413</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>259</y><w>209</w><h>426</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>196;21;196;371;21;371;21;413</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>833</x><y>770</y><w>357</w><h>224</h></coordinates><panel_attributes>Bond165 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>539</y><w>146</w><h>230</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>133;21;133;175;21;175;21;217</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>672</y><w>398</w><h>97</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>385;21;385;42;21;42;21;84</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>343</y><w>398</w><h>426</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>385;21;385;168;196;168;196;371;21;371;21;413</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1729</x><y>343</y><w>209</w><h>426</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>196;21;196;371;21;371;21;413</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>833</x><y>854</y><w>357</w><h>224</h></coordinates><panel_attributes>Bond 166 166 -- 167 167 HydrogenBond: int … … 182 182 #bond() 183 183 #bond(atom *left, atom *right, const int degree=1, const int number=0) 184 #~bond()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1834</x><y> 623</y><w>107</w><h>125</h></coordinates><panel_attributes>lt=<<<<-185 3</panel_attributes><additional_attributes>42;112;91;112;91;35;21;35;21;49</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1169</x><y>8 12</y><w>132</w><h>49</h></coordinates><panel_attributes>lt=<<<<-186 2</panel_attributes><additional_attributes>21;35;119;35</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>770</x><y> 658</y><w>111</w><h>167</h></coordinates><panel_attributes>lt=<<<<-187 2</panel_attributes><additional_attributes>63;154;28;154;28;35;98;35;98;112</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1113</x><y>1 246</y><w>504</w><h>168</h></coordinates><panel_attributes>BondGraph184 #~bond()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1834</x><y>707</y><w>107</w><h>125</h></coordinates><panel_attributes>lt=<<<<- 185 3</panel_attributes><additional_attributes>42;112;91;112;91;35;21;35;21;49</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1169</x><y>896</y><w>132</w><h>49</h></coordinates><panel_attributes>lt=<<<<- 186 2</panel_attributes><additional_attributes>21;35;119;35</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>770</x><y>742</y><w>111</w><h>167</h></coordinates><panel_attributes>lt=<<<<- 187 2</panel_attributes><additional_attributes>63;154;28;154;28;35;98;35;98;112</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1113</x><y>1330</y><w>504</w><h>168</h></coordinates><panel_attributes>BondGraph 188 188 -- 189 189 max_distance: double … … 199 199 double &MinDistance, double &MaxDistance, bool IsAngstroem) 200 200 #CovalentMinMaxDistance(BondedParticle * const Walker, BondedParticle * const OtherWalker, 201 double &MinDistance, double &MaxDistance, bool IsAngstroem)</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1596</x><y>1 323</y><w>167</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;154;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1750</x><y>1281</y><w>147</w><h>133</h></coordinates><panel_attributes>MatrixContainer201 double &MinDistance, double &MaxDistance, bool IsAngstroem)</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1596</x><y>1407</y><w>167</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;154;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1750</x><y>1365</y><w>147</w><h>133</h></coordinates><panel_attributes>MatrixContainer 202 202 -- 203 203 -id: Long … … 209 209 Responsibilities 210 210 -- Resp1 211 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>0</x><y> 455</y><w>511</w><h>1050</h></coordinates><panel_attributes>config211 *-- Resp2*</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>0</x><y>539</y><w>511</w><h>1050</h></coordinates><panel_attributes>config 212 212 -- 213 213 PsiType: int … … 297 297 #SetDefaultPath(const char * const path); 298 298 #InitThermostats(); 299 #ParseThermostats(class ConfigFileBuffer * const fb);</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>1 344</y><w>636</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;623;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1596</x><y>0</y><w>121</w><h>139</h></coordinates><panel_attributes>lt=<<<<-300 2</panel_attributes><additional_attributes>70;126;105;126;105;35;21;35;21;63</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2520</x><y> 896</y><w>224</w><h>140</h></coordinates><panel_attributes><<Singleton>>299 #ParseThermostats(class ConfigFileBuffer * const fb);</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>1428</y><w>636</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;623;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1596</x><y>84</y><w>121</w><h>139</h></coordinates><panel_attributes>lt=<<<<- 300 2</panel_attributes><additional_attributes>70;126;105;126;105;35;21;35;21;63</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2520</x><y>980</y><w>224</w><h>140</h></coordinates><panel_attributes><<Singleton>> 301 301 errorLogger 302 302 -- … … 310 310 #static setVerbosity(int verbosityLevel); 311 311 #protected errorLogger() 312 #protected ~errorLogger()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2093</x><y> 980</y><w>364</w><h>35</h></coordinates><panel_attributes>KeyCompare312 #protected ~errorLogger()</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2093</x><y>1064</y><w>364</w><h>35</h></coordinates><panel_attributes>KeyCompare 313 313 -- 314 314 -- 315 315 #operator() (const KeySet SubgraphA, const KeySet SubgraphB) const: bool 316 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1169</x><y>1 134</y><w>147</w><h>105</h></coordinates><panel_attributes>UniqueFragments316 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1169</x><y>1218</y><w>147</w><h>105</h></coordinates><panel_attributes>UniqueFragments 317 317 -- 318 318 ANOVAOrder: int … … 322 322 ShortestPathList: int * 323 323 UsedList: bool ** 324 BondsPerSPCount: int *</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>1 169</y><w>692</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>679;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1120</x><y>896</y><w>251</w><h>307</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>49;294;21;294;21;224;238;224;238;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>840</x><y>1043</y><w>245</w><h>28</h></coordinates><panel_attributes>Graph324 BondsPerSPCount: int *</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>1253</y><w>692</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>679;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1120</x><y>980</y><w>251</w><h>307</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>49;294;21;294;21;224;238;224;238;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>840</x><y>1127</y><w>245</w><h>28</h></coordinates><panel_attributes>Graph 325 325 {map <KeySet, NumberValuePair, KeyCompare>} 326 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>861</x><y>1 050</y><w>321</w><h>153</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>308;140;21;140;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>945</x><y>1106</y><w>56</w><h>28</h></coordinates><panel_attributes>KeySet327 {set<int>}</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>945</x><y>11 13</y><w>237</w><h>90</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>224;77;21;77;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1085</x><y>973</y><w>99</w><h>230</h></coordinates><panel_attributes>lt=<<<<-328 0...N X 0...N</panel_attributes><additional_attributes>84;217;56;217;56;112;21;112;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1736</x><y>2 198</y><w>147</w><h>42</h></coordinates><panel_attributes>LSQ_params326 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>861</x><y>1134</y><w>321</w><h>153</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>308;140;21;140;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>945</x><y>1190</y><w>56</w><h>28</h></coordinates><panel_attributes>KeySet 327 {set<int>}</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>945</x><y>1197</y><w>237</w><h>90</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>224;77;21;77;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1085</x><y>1057</y><w>99</w><h>230</h></coordinates><panel_attributes>lt=<<<<- 328 0...N X 0...N</panel_attributes><additional_attributes>84;217;56;217;56;112;21;112;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1736</x><y>2282</y><w>147</w><h>42</h></coordinates><panel_attributes>LSQ_params 329 329 -- 330 330 vectors: const Vector ** 331 331 num: int 332 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1043</x><y> 182</y><w>147</w><h>35</h></coordinates><panel_attributes>lsq_params333 -- 334 x: gsl_vector *</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1169</x><y> 182</y><w>118</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;105;21</additional_attributes></element></umlet_diagram>332 </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1043</x><y>266</y><w>147</w><h>35</h></coordinates><panel_attributes>lsq_params 333 -- 334 x: gsl_vector *</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1169</x><y>266</y><w>118</w><h>34</h></coordinates><panel_attributes>lt=<<<<-</panel_attributes><additional_attributes>21;21;105;21</additional_attributes></element></umlet_diagram> -
src/Actions/MapOfActions.cpp
r51a5c8 rf0f1cc 42 42 #include "Actions/MoleculeAction/FillWithMoleculeAction.hpp" 43 43 #include "Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.hpp" 44 #include "Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.hpp"45 44 #include "Actions/MoleculeAction/SaveAdjacencyAction.hpp" 46 45 #include "Actions/MoleculeAction/SaveBondsAction.hpp" 47 46 #include "Actions/MoleculeAction/SaveTemperatureAction.hpp" 48 #include "Actions/MoleculeAction/SuspendInWaterAction.hpp"49 47 #include "Actions/MoleculeAction/TranslateAction.hpp" 50 48 #include "Actions/MoleculeAction/VerletIntegrationAction.hpp" … … 290 288 291 289 // put action into each menu category 292 MenuDescription["analysis"] = pair<std::string,std::string>("Analysis (pair correlation, volume)", "Analysis");293 MenuDescription["atom"] = pair<std::string,std::string>("Edit atoms", "Edit atoms");294 MenuDescription["command"] = pair<std::string,std::string>("Configuration", "Configuration");295 MenuDescription["fragmentation"] = pair<std::string,std::string>("Fragmentation", "Fragmentation");296 MenuDescription["molecule"] = pair<std::string,std::string>("Parse files into system", "Parse files");297 MenuDescription["parser"] = pair<std::string,std::string>("Edit molecules (load, parse, save)", "Edit molecules");298 MenuDescription["tesselation"] = pair<std::string,std::string>("Tesselate molecules", "Tesselate molecules");299 MenuDescription["world"] = pair<std::string,std::string>("Edit world", "Edit world");300 301 290 MenuContainsActionMap.insert( pair<std::string, std::string> ("analysis", "molecular-volume") ); 302 291 MenuContainsActionMap.insert( pair<std::string, std::string> ("analysis", "pair-correlation") ); … … 456 445 new MoleculeFillWithMoleculeAction(); 457 446 new MoleculeLinearInterpolationofTrajectoriesAction(); 458 new MoleculeRotateToPrincipalAxisSystemAction();459 447 new MoleculeSaveAdjacencyAction(); 460 448 new MoleculeSaveBondsAction(); 461 449 new MoleculeSaveTemperatureAction(); 462 new MoleculeSuspendInWaterAction();463 450 new MoleculeTranslateAction(); 464 451 new MoleculeVerletIntegrationAction(); -
src/Actions/MapOfActions.hpp
r51a5c8 rf0f1cc 145 145 146 146 std::multimap <std::string, std::string> MenuContainsActionMap; 147 std::map <std::string, std::pair<std::string,std::string> > MenuDescription;148 147 149 148 // instantiates and puts all known actions into the ActionRegistry -
src/Actions/MoleculeAction/SuspendInWaterAction.cpp
r51a5c8 rf0f1cc 55 55 double volume = 0.; 56 56 57 dialog->query Double(NAME, &density, MapOfActions::getInstance().getDescription(NAME));58 dialog->query Molecule("molecule-by-id", &mol, MapOfActions::getInstance().getDescription("molecule-by-id"));57 dialog->queryMolecule(NAME, &mol, MapOfActions::getInstance().getDescription(NAME)); 58 dialog->queryDouble("density", &density, MapOfActions::getInstance().getDescription("density")); 59 59 60 60 if(dialog->display()) { -
src/Actions/Process.cpp
r51a5c8 rf0f1cc 41 41 42 42 int Process::getCurrStep(){ 43 OBSERVE; 43 44 return currStep; 44 45 } 45 46 46 47 void Process::setCurrStep(int _currStep){ 47 OBSERVE;48 48 currStep = _currStep; 49 49 } … … 55 55 return 0; 56 56 } 57 57 58 int Process::getMaxSteps(){ 58 59 return maxSteps; -
src/Actions/TesselationAction/ConvexEnvelopeAction.hpp
r51a5c8 rf0f1cc 31 31 }; 32 32 33 33 34 #endif // CONVEXENVELOPEACTION_HPP -
src/Legacy/oldmenu.cpp
r51a5c8 rf0f1cc 10 10 11 11 #include "Legacy/oldmenu.hpp" 12 #include "analysis_bonds.hpp"13 12 #include "analysis_correlation.hpp" 14 13 #include "World.hpp" … … 510 509 Log() << Verbose(0) << " f - calculate temperature from current velocity" << endl; 511 510 Log() << Verbose(0) << " g - output all temperatures per step from velocities" << endl; 512 Log() << Verbose(0) << " h - count the number of hydrogen bonds" << endl;513 511 Log() << Verbose(0) << "all else - go back" << endl; 514 512 Log() << Verbose(0) << "===============================================" << endl; … … 599 597 output->close(); 600 598 delete(output); 601 }602 break;603 case 'h':604 {605 int Z1;606 cout << "Please enter first interface element: ";607 cin >> Z1;608 const element * InterfaceElement = World::getInstance().getPeriode()->FindElement(Z1);609 int Z2;610 cout << "Please enter second interface element: ";611 cin >> Z2;612 const element * InterfaceElement2 = World::getInstance().getPeriode()->FindElement(Z2);613 cout << endl << "There are " << CountHydrogenBridgeBonds(World::getInstance().getMolecules(), InterfaceElement, InterfaceElement2) << " hydrogen bridges with connections to " << (InterfaceElement != 0 ? InterfaceElement->name : "None") << " and " << (InterfaceElement2 != 0 ? InterfaceElement2->name : "None") << "." << endl;614 599 } 615 600 break; -
src/Makefile.am
r51a5c8 rf0f1cc 102 102 Patterns/Singleton.hpp 103 103 104 QTUIMOC_HEADER = UIElements/QT4/QTDialog.hpp \105 UIElements/QT4/QTMainWindow.hpp \106 UIElements/Menu/QT4/QTMenu.hpp \107 UIElements/Views/QT4/QTWorldView.hpp \108 UIElements/Views/QT4/GLMoleculeView.hpp \109 UIElements/Views/QT4/QTMoleculeView.hpp \110 UIElements/Views/QT4/QTStatusBar.hpp111 112 QTUIMOC_TARGETS = QTMainWindow.moc.cpp \113 QTMenu.moc.cpp\114 QTDialog.moc.cpp \115 QTWorldView.moc.cpp \116 GLMoleculeView.moc.cpp \117 QTMoleculeView.moc.cpp \118 QTStatusBar.moc.cpp119 120 104 DESCRIPTORSOURCE = Descriptors/AtomDescriptor.cpp \ 121 105 Descriptors/AtomIdDescriptor.cpp \ … … 146 130 Exceptions/SkewException.hpp \ 147 131 Exceptions/ZeroVectorException.hpp 148 149 QTUISOURCE = ${QTUIMOC_TARGETS} \150 UIElements/QT4/QTMainWindow.cpp \151 UIElements/QT4/QTDialog.cpp \152 UIElements/QT4/QTUIFactory.cpp \153 UIElements/Menu/QT4/QTMenu.cpp \154 UIElements/Views/QT4/QTWorldView.cpp \155 UIElements/Views/QT4/GLMoleculeView.cpp \156 UIElements/Views/QT4/QTMoleculeView.cpp \157 UIElements/Views/QT4/QTStatusBar.cpp158 159 QTUIHEADER = ${QTUIMOC_HEADER} UIElements/QT4/QTUIFactory.hpp160 161 QTUI_DEFS =162 132 163 133 SOURCE = \ … … 257 227 258 228 BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) 259 GUI_LIBS = ${QT_LDADD} ${QT_LIB_GUI} -lQtOpenGL ${GLU_LIBS}260 229 INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements 261 230 262 noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a libmenu.a libparser.a 263 bin_PROGRAMS = molecuilder molecuildergui joiner analyzer 264 231 noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a libparser.a 232 bin_PROGRAMS = molecuilder joiner analyzer 265 233 molecuilderdir = ${bindir} 266 267 234 libmolecuilder_a_SOURCES = ${SOURCE} ${HEADER} 268 269 libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER}270 235 libparser_a_SOURCES = ${PARSERSOURCE} ${PARSERHEADER} 271 236 libgslwrapper_a_SOURCES = ${LINALGSOURCE} ${LINALGHEADER} 272 273 237 molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db 274 275 molecuilder_CXXFLAGS = $(BOOST_CPPFLAGS) 276 #molecuilder_CXXFLAGS += -DNO_CACHING 277 molecuilder_LDFLAGS = $(BOOST_LIB) 278 molecuilder_SOURCES = ${LEGACYSOURCE} builder.cpp 279 molecuilder_SOURCES += $(srcdir)/version.c 280 molecuilder_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions.a libmolecuilder.a libparser.a libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB} 281 282 #Stuff for building the GUI using QT 283 molecuildergui_SOURCES = ${QTUISOURCE} ${LEGACYSOURCE} builder.cpp 284 molecuildergui_SOURCES += $(srcdir)/version.c 285 molecuildergui_CXXFLAGS = ${QT_CXXFLAGS} ${GLU_CXXFLAGS} -DUSE_GUI_QT 286 molecuildergui_LDFLAGS = $(BOOST_LIB) ${QT_LDFLAGS} ${GLU_LDFLAGS} 287 molecuildergui_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions.a libmolecuilder.a libparser.a libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB} ${GUI_LIBS} 288 238 molecuilder_LDFLAGS = $(BOOST_LDFLAGS) 239 molecuilder_SOURCES = builder.cpp 240 molecuilder_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions.a libmolecuilder.a libparser.a libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB} 289 241 joiner_SOURCES = joiner.cpp datacreator.cpp parser.cpp datacreator.hpp helpers.hpp parser.hpp periodentafel.hpp 290 242 joiner_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB} 291 292 243 analyzer_SOURCES = analyzer.cpp datacreator.cpp parser.cpp helpers.hpp periodentafel.hpp parser.hpp datacreator.hpp 293 244 analyzer_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB} 294 295 #Rules needed for QT4296 # UI-Files are scattered throughout several subdirectories297 # Therfore `%'-rules do not seem to work298 #Quick fix to get it done otherwise299 ${QTUIMOC_TARGETS}: ${QTUIMOC_HEADER}300 list='$(QTUIMOC_HEADER)'; for header in $$list; do \301 echo "Making mocfile for $$header"; \302 target=`basename $$header | sed "s/\(.*\)\..*/\1.moc.cpp/"`;\303 $(MOC) $(srcdir)/$$header -o $$target \304 || eval $$failcom; \305 done;306 307 MOSTLYCLEANFILES = ${QTUIMOC_TARGETS}308 309 #EXTRA_DIST = ${molecuilder_DATA}310 245 311 246 FORCE: … … 323 258 echo "const char *ESPACKVersion = \"$(PACKAGE_NAME) -- git version: "`cat $(srcdir)/.git-version`"\";" > $@ 324 259 325 260 molecuilder_SOURCES += $(srcdir)/version.c -
src/UIElements/Dialog.cpp
r51a5c8 rf0f1cc 34 34 35 35 bool Dialog::display(){ 36 if(checkAll()){37 setAll();38 return true;39 }40 else{41 return false;42 }43 }44 45 bool Dialog::checkAll(){46 36 list<Query*>::iterator iter; 47 37 bool retval = true; … … 54 44 } 55 45 } 46 if (retval){ 47 // if all queries succeeded we can set the targets to appropriate values 48 for(iter=queries.begin(); iter!=queries.end(); iter++) { 49 (*iter)->setResult(); 50 } 51 } 56 52 return retval; 57 }58 59 void Dialog::setAll(){60 list<Query*>::iterator iter;61 for(iter=queries.begin(); iter!=queries.end(); iter++) {62 (*iter)->setResult();63 }64 53 } 65 54 -
src/UIElements/Dialog.hpp
r51a5c8 rf0f1cc 36 36 37 37 virtual bool display(); 38 39 virtual bool checkAll();40 virtual void setAll();41 38 42 39 protected: -
src/UIElements/MainWindow.cpp
r51a5c8 rf0f1cc 11 11 12 12 MainWindow::MainWindow() 13 {} 13 { 14 // TODO Auto-generated constructor stub 15 16 } 14 17 15 18 MainWindow::~MainWindow() 16 {} 19 { 20 // TODO Auto-generated destructor stub 21 } -
src/UIElements/TextUI/TextUIFactory.cpp
r51a5c8 rf0f1cc 9 9 #include "UIElements/TextUI/TextWindow.hpp" 10 10 #include "UIElements/TextUI/TextDialog.hpp" 11 11 12 12 13 TextUIFactory::TextUIFactory() -
src/UIElements/TextUI/TextUIFactory.hpp
r51a5c8 rf0f1cc 13 13 class TextUIFactory : public UIFactory 14 14 { 15 15 friend class UIFactory; 16 16 17 17 public: -
src/UIElements/TextUI/TextWindow.cpp
r51a5c8 rf0f1cc 25 25 #include "Views/StreamStringView.hpp" 26 26 #include "Views/MethodStringView.hpp" 27 #include "Helpers/MemDebug.hpp"28 27 29 28 #include "defs.hpp" … … 71 70 new ActionMenuItem('a',"set molecule (in)active",main_menu,setMoleculeAction); 72 71 73 TextMenu *Menu = NULL; 74 std::set <char> ShortcutList; 75 for(map<std::string, pair<std::string,std::string> >::iterator iter = MapOfActions::getInstance().MenuDescription.begin(); iter != MapOfActions::getInstance().MenuDescription.end(); ++iter) { 76 Menu = new TextMenu(Log() << Verbose(0), iter->second.second); 77 NametoTextMenuMap.insert( pair <std::string, TextMenu *> (iter->first, Menu) ); 78 new SubMenuItem(getSuitableShortForm(ShortcutList,iter->first),iter->second.first.c_str(),main_menu,Menu); 79 } 72 TextMenu *AnalysisMenu = new TextMenu(Log() << Verbose(0), "Analysis"); 73 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("analysis", AnalysisMenu) ); 74 new SubMenuItem('A',"Analysis (pair correlation, volume)",main_menu,AnalysisMenu); 75 76 TextMenu *CommandMenu = new TextMenu(Log() << Verbose(0), "Configuration"); 77 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("command", CommandMenu) ); 78 new SubMenuItem('c',"configuration",main_menu,CommandMenu); 79 80 TextMenu *AtomMenu = new TextMenu(Log() << Verbose(0), "Atoms"); 81 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("atom", AtomMenu) ); 82 new SubMenuItem('e',"edit atoms",main_menu,AtomMenu); 83 84 TextMenu *FragmentationMenu = new TextMenu(Log() << Verbose(0), "Fragmentation"); 85 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("fragmentation", FragmentationMenu) ); 86 new SubMenuItem('f',"fragmentation",main_menu,FragmentationMenu); 87 88 TextMenu *ParserMenu = new TextMenu(Log() << Verbose(0), "Parse files"); 89 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("parser", ParserMenu) ); 90 new SubMenuItem('p',"parse files into system",main_menu,ParserMenu); 91 92 TextMenu *MoleculesMenu = new TextMenu(Log() << Verbose(0), "Edit Molecules"); 93 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("analysis", AnalysisMenu) ); 94 new SubMenuItem('m',"edit molecules (load, parse, save)",main_menu,MoleculesMenu); 95 96 TextMenu *TesselationMenu = new TextMenu(Log() << Verbose(0), "Tesselate Molecules"); 97 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("tesselation", TesselationMenu) ); 98 new SubMenuItem('t',"tesselate molecules",main_menu,TesselationMenu); 99 100 TextMenu *WorldMenu = new TextMenu(Log() << Verbose(0), "World"); 101 NametoTextMenuMap.insert( pair <std::string, TextMenu *> ("world", WorldMenu) ); 102 new SubMenuItem('w',"edit world",main_menu,WorldMenu); 80 103 81 104 new SeperatorItem(main_menu); -
src/UIElements/UIFactory.cpp
r51a5c8 rf0f1cc 12 12 #include "UIElements/UIFactory.hpp" 13 13 #include "Helpers/Assert.hpp" 14 #include "Helpers/MemDebug.hpp"15 14 16 15 using namespace std; -
src/UIElements/UIFactory.hpp
r51a5c8 rf0f1cc 30 30 friend class Singleton<UIFactory,false>; 31 31 public: 32 33 32 /** 34 33 * Produce some kind of main window, of whichever type was chosen when the factory was created -
src/analysis_bonds.cpp
r51a5c8 rf0f1cc 121 121 * \param *molecules molecules to count bonds 122 122 * \param *InterfaceElement or NULL 123 * \param *Interface2Element or NULL 124 */ 125 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL) 123 */ 124 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL) 126 125 { 127 126 int count = 0; … … 129 128 double Otherangle = 0.; 130 129 bool InterfaceFlag = false; 131 bool Interface2Flag = false;132 130 bool OtherHydrogenFlag = true; 133 131 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); ++MolWalker) { … … 147 145 OtherHydrogens = 0; 148 146 InterfaceFlag = (InterfaceElement == NULL); 149 Interface2Flag = (Interface2Element == NULL);150 147 for (BondList::const_iterator BondRunner = (*Runner)->ListOfBonds.begin(); BondRunner != (*Runner)->ListOfBonds.end(); BondRunner++) { 151 148 atom * const OtherAtom = (*BondRunner)->GetOtherAtom(*Runner); … … 158 155 } 159 156 InterfaceFlag = InterfaceFlag || (OtherAtom->type == InterfaceElement); 160 Interface2Flag = Interface2Flag || (OtherAtom->type == Interface2Element);161 157 } 162 158 DoLog(1) && (Log() << Verbose(1) << "Otherangle is " << Otherangle << " for " << OtherHydrogens << " hydrogens." << endl); … … 172 168 break; 173 169 } 174 if (InterfaceFlag && Interface2Flag &&OtherHydrogenFlag) {170 if (InterfaceFlag && OtherHydrogenFlag) { 175 171 // on this element (Walker) we check for bond to hydrogen, i.e. part of water molecule 176 172 for (BondList::const_iterator BondRunner = (*Walker)->ListOfBonds.begin(); BondRunner != (*Walker)->ListOfBonds.end(); BondRunner++) { -
src/analysis_bonds.hpp
r51a5c8 rf0f1cc 33 33 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max); 34 34 35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement , const element * Interface2Element);35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement); 36 36 int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second); 37 37 int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third); -
src/boundary.cpp
r51a5c8 rf0f1cc 1004 1004 // // Purges surplus triangles. 1005 1005 // TesselStruct->RemoveDegeneratedTriangles(); 1006 // 1007 //// check envelope for consistency1008 //status = CheckListOfBaselines(TesselStruct);1006 1007 // check envelope for consistency 1008 status = CheckListOfBaselines(TesselStruct); 1009 1009 1010 1010 cout << "before correction" << endl; -
src/builder.cpp
r51a5c8 rf0f1cc 60 60 #include "config.hpp" 61 61 #include "log.hpp" 62 #include "memoryusageobserver.hpp"63 #include "molecule.hpp"64 #include "periodentafel.hpp"65 #include "tesselationhelpers.hpp"66 #include "UIElements/UIFactory.hpp"67 #include "UIElements/TextUI/TextUIFactory.hpp"68 #include "UIElements/CommandLineUI/CommandLineUIFactory.hpp"69 #ifdef USE_GUI_QT70 #include "UIElements/QT4/QTUIFactory.hpp"71 #endif72 #include "UIElements/MainWindow.hpp"73 #include "UIElements/Dialog.hpp"74 #include "Menu/ActionMenuItem.hpp"75 62 #include "verbose.hpp" 76 63 #include "World.hpp" … … 159 146 UIFactory::makeUserInterface("CommandLine"); 160 147 } else { 161 #ifdef USE_GUI_QT 162 DoLog(0) && (Log() << Verbose(0) << "Setting UI to QT4." << endl); 163 UIFactory::registerFactory(new QTUIFactory::description()); 164 UIFactory::makeUserInterface("QT4"); 165 #else 166 DoLog(0) && (Log() << Verbose(0) << "Setting UI to Text." << endl); 167 cout << ESPACKVersion << endl; 168 UIFactory::registerFactory(new TextUIFactory::description()); 169 UIFactory::makeUserInterface("Text"); 170 #endif 148 DoLog(0) && (Log() << Verbose(0) << "Setting UI to Text." << endl); 149 UIFactory::registerFactory(new TextUIFactory::description()); 150 UIFactory::makeUserInterface("Text"); 171 151 } 172 152 } -
src/defs.hpp
r51a5c8 rf0f1cc 82 82 #define STD_SEPERATOR_SPACER '-' 83 83 84 #define MOLECUILDER_NAME "Molecuilder"85 86 84 #endif /*DEFS_HPP_*/ -
src/molecule.hpp
r51a5c8 rf0f1cc 29 29 #include <string> 30 30 31 #include " types.hpp"31 #include "defs.hpp" 32 32 #include "graph.hpp" 33 33 #include "stackclass.hpp" -
src/tesselation.cpp
r51a5c8 rf0f1cc 231 231 { 232 232 Info FunctionInfo(__func__); 233 double angle = CalculateConvexity();234 if (angle > -MYEPSILON) {235 DoLog(0) && (Log() << Verbose(0) << "ACCEPT: Angle is greater than pi: convex." << endl);236 return true;237 } else {238 DoLog(0) && (Log() << Verbose(0) << "REJECT: Angle is less than pi: concave." << endl);239 return false;240 }241 }242 243 244 /** Calculates the angle between two triangles with respect to their normal vector.245 * We sum the two angles of each height vector with respect to the center of the baseline.246 * \return angle > 0 then convex, if < 0 then concave247 */248 double BoundaryLineSet::CalculateConvexity() const249 {250 Info FunctionInfo(__func__);251 233 Vector BaseLineCenter, BaseLineNormal, BaseLine, helper[2], NormalCheck; 252 234 // get the two triangles … … 297 279 BaseLineNormal.Scale(-1.); 298 280 double angle = GetAngle(helper[0], helper[1], BaseLineNormal); 299 return (angle - M_PI); 281 if ((angle - M_PI) > -MYEPSILON) { 282 DoLog(0) && (Log() << Verbose(0) << "ACCEPT: Angle is greater than pi: convex." << endl); 283 return true; 284 } else { 285 DoLog(0) && (Log() << Verbose(0) << "REJECT: Angle is less than pi: concave." << endl); 286 return false; 287 } 300 288 } 301 289 … … 316 304 /** Returns other endpoint of the line. 317 305 * \param *point other endpoint 318 * \return NULL - if endpoint not contained in BoundaryLineSet ::lines, or pointer to BoundaryPointSet otherwise306 * \return NULL - if endpoint not contained in BoundaryLineSet, or pointer to BoundaryPointSet otherwise 319 307 */ 320 308 class BoundaryPointSet *BoundaryLineSet::GetOtherEndpoint(const BoundaryPointSet * const point) const … … 327 315 else 328 316 return NULL; 329 }330 ;331 332 /** Returns other triangle of the line.333 * \param *point other endpoint334 * \return NULL - if triangle not contained in BoundaryLineSet::triangles, or pointer to BoundaryTriangleSet otherwise335 */336 class BoundaryTriangleSet *BoundaryLineSet::GetOtherTriangle(const BoundaryTriangleSet * const triangle) const337 {338 Info FunctionInfo(__func__);339 if (triangles.size() == 2) {340 for (TriangleMap::const_iterator TriangleRunner = triangles.begin(); TriangleRunner != triangles.end(); ++TriangleRunner)341 if (TriangleRunner->second != triangle)342 return TriangleRunner->second;343 }344 return NULL;345 317 } 346 318 ; … … 689 661 ; 690 662 691 /** Returns the baseline which does not contain the given boundary point \a *point.692 * \param *point endpoint which is neither endpoint of the desired line693 * \return pointer to desired third baseline694 */695 class BoundaryLineSet *BoundaryTriangleSet::GetThirdLine(const BoundaryPointSet * const point) const696 {697 Info FunctionInfo(__func__);698 // sanity check699 if (!ContainsBoundaryPoint(point))700 return NULL;701 for (int i = 0; i < 3; i++)702 if (!lines[i]->ContainsBoundaryPoint(point))703 return lines[i];704 // actually, that' impossible :)705 return NULL;706 }707 ;708 709 663 /** Calculates the center point of the triangle. 710 664 * Is third of the sum of all endpoints. … … 1156 1110 TesselPointList *ListofPoints = LC->GetPointsInsideSphere(RADIUS, (*VRunner)); 1157 1111 1158 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << (*VRunner)<< ":" << endl);1112 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << OtherOptCenter << ":" << endl); 1159 1113 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1160 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance( *(*VRunner)) << "." << endl);1114 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance(OtherOptCenter) << "." << endl); 1161 1115 1162 1116 // remove baseline's endpoints and candidates … … 1174 1128 DoeLog(1) && (eLog() << Verbose(1) << "External atoms inside of sphere at " << *(*VRunner) << ":" << endl); 1175 1129 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1176 DoeLog(1) && (eLog() << Verbose(1) << " " << *(*Runner) << " at distance " << setprecision(13) << (*Runner)->node->distance(*(*VRunner)) << setprecision(6) << "." << endl); 1177 1178 // check with animate_sphere.tcl VMD script 1179 if (ThirdPoint != NULL) { 1180 DoeLog(1) && (eLog() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " " << ThirdPoint->Nr + 1 << " " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl); 1181 } else { 1182 DoeLog(1) && (eLog() << Verbose(1) << "Check by: ... missing third point ..." << endl); 1183 DoeLog(1) && (eLog() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " ??? " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl); 1184 } 1130 DoeLog(1) && (eLog() << Verbose(1) << " " << *(*Runner) << endl); 1185 1131 } 1186 1132 delete (ListofPoints); 1187 1133 1134 // check with animate_sphere.tcl VMD script 1135 if (ThirdPoint != NULL) { 1136 DoLog(1) && (Log() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " " << ThirdPoint->Nr + 1 << " " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl); 1137 } else { 1138 DoLog(1) && (Log() << Verbose(1) << "Check by: ... missing third point ..." << endl); 1139 DoLog(1) && (Log() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " ??? " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl); 1140 } 1188 1141 } 1189 1142 return flag; … … 3337 3290 } 3338 3291 } else { 3339 Do eLog(0) && (eLog() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl);3292 DoLog(1) && (Log() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl); 3340 3293 } 3341 3294 } else { … … 4637 4590 4638 4591 DoLog(0) && (Log() << Verbose(0) << "FindAllDegeneratedTriangles() found " << DegeneratedTriangles->size() << " triangles:" << endl); 4639 for (IndexToIndex::iterator it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4592 IndexToIndex::iterator it; 4593 for (it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4640 4594 DoLog(0) && (Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl); 4641 4595 … … 4655 4609 int count = 0; 4656 4610 4657 // iterate over all degenerated triangles 4658 for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); !DegeneratedTriangles->empty(); TriangleKeyRunner = DegeneratedTriangles->begin()) { 4659 DoLog(0) && (Log() << Verbose(0) << "Checking presence of triangles " << TriangleKeyRunner->first << " and " << TriangleKeyRunner->second << "." << endl); 4660 // both ways are stored in the map, only use one 4661 if (TriangleKeyRunner->first > TriangleKeyRunner->second) 4662 continue; 4663 4664 // determine from the keys in the map the two _present_ triangles 4611 for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); TriangleKeyRunner != DegeneratedTriangles->end(); ++TriangleKeyRunner) { 4665 4612 finder = TrianglesOnBoundary.find(TriangleKeyRunner->first); 4666 4613 if (finder != TrianglesOnBoundary.end()) 4667 4614 triangle = finder->second; 4668 4615 else 4669 continue;4616 break; 4670 4617 finder = TrianglesOnBoundary.find(TriangleKeyRunner->second); 4671 4618 if (finder != TrianglesOnBoundary.end()) 4672 4619 partnerTriangle = finder->second; 4673 4620 else 4674 continue; 4675 4676 // determine which lines are shared by the two triangles 4621 break; 4622 4677 4623 bool trianglesShareLine = false; 4678 4624 for (int i = 0; i < 3; ++i) -
src/tesselation.hpp
r51a5c8 rf0f1cc 138 138 bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const; 139 139 bool CheckConvexityCriterion() const; 140 double CalculateConvexity() const;141 140 class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const; 142 class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const;143 141 144 142 class BoundaryPointSet *endpoints[2]; … … 166 164 bool ContainsBoundaryPoint(const TesselPoint * const point) const; 167 165 class BoundaryPointSet *GetThirdEndpoint(const BoundaryLineSet * const line) const; 168 class BoundaryLineSet *GetThirdLine(const BoundaryPointSet * const point) const;169 166 bool IsPresentTupel(const BoundaryPointSet * const Points[3]) const; 170 167 bool IsPresentTupel(const BoundaryTriangleSet * const T) const; -
src/tesselationhelpers.cpp
r51a5c8 rf0f1cc 12 12 #include "info.hpp" 13 13 #include "linkedcell.hpp" 14 #include "linearsystemofequations.hpp"15 14 #include "log.hpp" 16 15 #include "tesselation.hpp" … … 186 185 beta = M_PI - SideC.Angle(SideA); 187 186 gamma = M_PI - SideA.Angle(SideB); 188 Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl;187 //Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl; 189 188 if (fabs(M_PI - alpha - beta - gamma) > HULLEPSILON) { 190 189 DoeLog(2) && (eLog()<< Verbose(2) << "GetCenterofCircumcircle: Sum of angles " << (alpha+beta+gamma)/M_PI*180. << " > 180 degrees by " << fabs(M_PI - alpha - beta - gamma)/M_PI*180. << "!" << endl); … … 199 198 (*Center) += helper; 200 199 Center->Scale(1./(sin(2.*alpha) + sin(2.*beta) + sin(2.*gamma))); 201 Log() << Verbose(1) << "INFO: Center (1st algo) is at " << *Center << "." << endl;202 203 // LinearSystemOfEquations LSofEq(NDIM,NDIM);204 // double *matrix = new double[NDIM*NDIM];205 // matrix[0] = 0.;206 // matrix[1] = a.DistanceSquared(b);207 // matrix[2] = a.DistanceSquared(c);208 // matrix[3] = a.DistanceSquared(b);209 // matrix[4] = 0.;210 // matrix[5] = b.DistanceSquared(c);211 // matrix[6] = a.DistanceSquared(c);212 // matrix[7] = b.DistanceSquared(c);213 // matrix[8] = 0.;214 // cout << "Matrix is: ";215 // for (int i=0;i<NDIM*NDIM;i++)216 // cout << matrix[i] << "\t";217 // cout << endl;218 // LSofEq.SetA(matrix);219 // delete[](matrix);220 // LSofEq.Setb(new Vector(1.,1.,1.));221 // LSofEq.SetSymmetric(true);222 // helper.Zero();223 // if (!LSofEq.GetSolutionAsVector(helper)) {224 // DoLog(0) && (eLog()<< Verbose(0) << "Could not solve the linear system in GetCenterofCircumCircle()!" << endl);225 // }226 // cout << "Solution is " << helper << endl;227 // is equivalent to the three lines below228 helper[0] = SideA.NormSquared()*(SideB.NormSquared()+SideC.NormSquared() - SideA.NormSquared());229 helper[1] = SideB.NormSquared()*(SideC.NormSquared()+SideA.NormSquared() - SideB.NormSquared());230 helper[2] = SideC.NormSquared()*(SideA.NormSquared()+SideB.NormSquared() - SideC.NormSquared());231 232 Center->Zero();233 *Center += helper[0] * a;234 *Center += helper[1] * b;235 *Center += helper[2] * c;236 Center->Scale(1./(helper[0]+helper[1]+helper[2]));237 Log() << Verbose(1) << "INFO: Center (2nd algo) is at " << *Center << "." << endl;238 200 }; 239 201 … … 457 419 /** Calculates the volume of a general tetraeder. 458 420 * \param *a first vector 459 * \param * b secondvector460 * \param * c thirdvector461 * \param * d fourthvector421 * \param *a first vector 422 * \param *a first vector 423 * \param *a first vector 462 424 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot (a-b)) \f$ 463 425 */ … … 477 439 volume = 1./6. * fabs(Point.ScalarProduct(TetraederVector[2])); 478 440 return volume; 479 };480 481 /** Calculates the area of a general triangle.482 * We use the Heron's formula of area, [Bronstein, S. 138]483 * \param &A first vector484 * \param &B second vector485 * \param &C third vector486 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot (a-b)) \f$487 */488 double CalculateAreaofGeneralTriangle(const Vector &A, const Vector &B, const Vector &C)489 {490 Info FunctionInfo(__func__);491 492 const double sidea = B.distance(C);493 const double sideb = A.distance(C);494 const double sidec = A.distance(B);495 const double s = (sidea+sideb+sidec)/2.;496 497 const double area = sqrt(s*(s-sidea)*(s-sideb)*(s-sidec));498 return area;499 441 }; 500 442 … … 940 882 class BoundaryPointSet *point = NULL; 941 883 class BoundaryLineSet *line = NULL; 942 class BoundaryTriangleSet *triangle = NULL; 943 double ConcavityPerLine = 0.; 944 double ConcavityPerTriangle = 0.; 945 double area = 0.; 946 double totalarea = 0.; 947 884 885 // calculate remaining concavity 948 886 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 949 887 point = PointRunner->second; 950 888 DoLog(1) && (Log() << Verbose(1) << "INFO: Current point is " << *point << "." << endl); 951 952 // calculate mean concavity over all connected line 953 ConcavityPerLine = 0.; 889 point->value = 0; 954 890 for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) { 955 891 line = LineRunner->second; 956 892 //Log() << Verbose(1) << "INFO: Current line of point " << *point << " is " << *line << "." << endl; 957 ConcavityPerLine -= line->CalculateConvexity(); 958 } 959 ConcavityPerLine /= point->lines.size(); 960 961 // weigh with total area of the surrounding triangles 962 totalarea = 0.; 963 TriangleSet *triangles = TesselStruct->GetAllTriangles(PointRunner->second); 964 for (TriangleSet::iterator TriangleRunner = triangles->begin(); TriangleRunner != triangles->end(); ++TriangleRunner) { 965 totalarea += CalculateAreaofGeneralTriangle(*(*TriangleRunner)->endpoints[0]->node->node, *(*TriangleRunner)->endpoints[1]->node->node, *(*TriangleRunner)->endpoints[2]->node->node); 966 } 967 ConcavityPerLine *= totalarea; 968 969 // calculate mean concavity over all attached triangles 970 ConcavityPerTriangle = 0.; 971 for (TriangleSet::const_iterator TriangleRunner = triangles->begin(); TriangleRunner != triangles->end(); ++TriangleRunner) { 972 line = (*TriangleRunner)->GetThirdLine(PointRunner->second); 973 triangle = line->GetOtherTriangle(*TriangleRunner); 974 area = CalculateAreaofGeneralTriangle(*triangle->endpoints[0]->node->node, *triangle->endpoints[1]->node->node, *triangle->endpoints[2]->node->node); 975 area += CalculateAreaofGeneralTriangle(*(*TriangleRunner)->endpoints[0]->node->node, *(*TriangleRunner)->endpoints[1]->node->node, *(*TriangleRunner)->endpoints[2]->node->node); 976 area *= -line->CalculateConvexity(); 977 if (area > 0) 978 ConcavityPerTriangle += area; 979 // else 980 // ConcavityPerTriangle -= area; 981 } 982 ConcavityPerTriangle /= triangles->size()/totalarea; 983 delete(triangles); 984 985 // add up 986 point->value = ConcavityPerLine + ConcavityPerTriangle; 987 } 988 }; 989 990 991 992 /** Calculates the concavity for each of the BoundaryPointSet's in a Tesselation. 993 * Sets BoundaryPointSet::value equal to the nearest distance to convex envelope. 994 * \param *out output stream for debugging 995 * \param *TesselStruct pointer to Tesselation structure 996 * \param *Convex pointer to convex Tesselation structure as reference 997 */ 998 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex) 999 { 1000 Info FunctionInfo(__func__); 1001 double distance = 0.; 1002 1003 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 1004 DoeLog(1) && (eLog() << Verbose(1) << "INFO: Current point is " << * PointRunner->second << "." << endl); 1005 1006 distance = 0.; 1007 for (TriangleMap::const_iterator TriangleRunner = Convex->TrianglesOnBoundary.begin(); TriangleRunner != Convex->TrianglesOnBoundary.end(); TriangleRunner++) { 1008 const double CurrentDistance = Convex->GetDistanceSquaredToTriangle(*PointRunner->second->node->node, TriangleRunner->second); 1009 if (CurrentDistance < distance) 1010 distance = CurrentDistance; 1011 } 1012 1013 PointRunner->second->value = distance; 1014 } 1015 }; 893 if (!line->CheckConvexityCriterion()) 894 point->value += 1; 895 } 896 } 897 }; 898 1016 899 1017 900 /** Checks whether each BoundaryLineSet in the Tesselation has two triangles. -
src/tesselationhelpers.hpp
r51a5c8 rf0f1cc 43 43 /********************************************** definitions *********************************/ 44 44 45 #define HULLEPSILON 1e- 9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities45 #define HULLEPSILON 1e-10 46 46 47 47 /********************************************** declarations *******************************/ … … 55 55 bool existsIntersection(const Vector &point1, const Vector &point2, const Vector &point3, const Vector &point4); 56 56 double CalculateVolumeofGeneralTetraeder(const Vector &a, const Vector &b, const Vector &c, const Vector &d); 57 double CalculateAreaofGeneralTriangle(const Vector &A, const Vector &B, const Vector &C);58 57 double GetAngle(const Vector &point, const Vector &reference, const Vector &OrthogonalVector); 59 58 … … 69 68 void WriteVrmlFile(ofstream * const vrmlfile, const Tesselation * const Tess, const PointCloud * const cloud); 70 69 void CalculateConcavityPerBoundaryPoint(const Tesselation * const TesselStruct); 71 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex);72 70 double DistanceToTrianglePlane(const Vector *x, const BoundaryTriangleSet * const triangle); 73 71 -
src/unittests/CountBondsUnitTest.cpp
r51a5c8 rf0f1cc 154 154 Translator = Vector(3,0,0); 155 155 TestMolecule2->Translate(&Translator); 156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen , NULL) );156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) ); 157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen) ); 158 158 //OutputTestMolecule(TestMolecule2, "testmolecule2-1.xyz"); 159 159 Translator = Vector(-3,0,0); … … 163 163 Translator = Vector(0,3,0); 164 164 TestMolecule2->Translate(&Translator); 165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) ); 166 166 //OutputTestMolecule(TestMolecule2, "testmolecule2-2.xyz"); 167 167 Translator = Vector(0,-3,0); … … 172 172 TestMolecule2->Scale((const double ** const)&mirror); 173 173 TestMolecule2->Translate(&Translator); 174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 175 175 //OutputTestMolecule(TestMolecule2, "testmolecule2-3.xyz"); 176 176 Translator = Vector(0,3,0); … … 181 181 Translator = Vector(2,1,0); 182 182 TestMolecule2->Translate(&Translator); 183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) ); 184 184 //OutputTestMolecule(TestMolecule2, "testmolecule2-4.xyz"); 185 185 Translator = Vector(-2,-1,0); … … 189 189 Translator = Vector(0,0,3); 190 190 TestMolecule2->Translate(&Translator); 191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 192 192 //OutputTestMolecule(TestMolecule2, "testmolecule2-5.xyz"); 193 193 Translator = Vector(0,0,-3); … … 198 198 TestMolecule2->Scale((const double ** const)&mirror); 199 199 TestMolecule2->Translate(&Translator); 200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 201 201 //OutputTestMolecule(TestMolecule2, "testmolecule2-6.xyz"); 202 202 Translator = Vector(3,0,0); … … 208 208 TestMolecule2->Scale((const double ** const)&mirror); 209 209 TestMolecule2->Translate(&Translator); 210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 211 211 //OutputTestMolecule(TestMolecule2, "testmolecule2-7.xyz"); 212 212 Translator = Vector(-3,0,0); … … 219 219 TestMolecule2->Translate(&Translator); 220 220 //OutputTestMolecule(TestMolecule2, "testmolecule2-8.xyz"); 221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL , NULL) );221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 222 222 Translator = Vector(0,-3,0); 223 223 TestMolecule2->Translate(&Translator); -
src/unittests/TestRunnerMain.cpp
r51a5c8 rf0f1cc 17 17 #include "../../../TestRunnerClient.h" 18 18 #include "../../../TestRunnerClient.cpp" 19 #else 20 #include "UnitTestMain.cpp" 21 #endif 19 22 20 #else21 22 #include "unittests/UnitTestMain.cpp"23 24 #endif /* HAVE_ECUT */ -
src/unittests/UnitTestMain.cpp
r51a5c8 rf0f1cc 6 6 */ 7 7 8 #include <cppunit/CompilerOutputter.h> 9 #include <cppunit/extensions/TestFactoryRegistry.h> 10 #include <cppunit/ui/text/TestRunner.h> 11 8 12 // include config.h 9 13 #ifdef HAVE_CONFIG_H 10 14 #include <config.h> 11 15 #endif 12 13 #include <cppunit/CompilerOutputter.h>14 #include <cppunit/extensions/TestFactoryRegistry.h>15 #include <cppunit/ui/text/TestRunner.h>16 16 17 17 /********************************************** Main routine **************************************/ … … 35 35 return wasSucessful ? 0 : 1; 36 36 }; 37 -
tests/Tesselations/heptan/1.5/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=23, E=64, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 18.72295 -7.27e-07 -1.22006 -0.849545 18.72296 -1.2492 0.921941 0.930455 18.72277 -1.2492 0.921941 -0.849545 18.72278 1.2492 0.921941 -0.849545 18.72229 1.2492 0.921941 0.930455 27.064110 -2.4985 -1.22006 -0.849545 19.976911 -2.4985 -1.22006 0.930455 27.472712 2.4985 -1.22006 0.930455 19.976913 2.4985 -1.22006 -0.849545 27.472714 -4.6377 -0.336759 0.0404545 21.54115 -3.7477 0.921941 0.930455 18.885316 -3.7477 0.921941 -0.849545 18.885317 4.6377 -0.336759 0.0404545 10.661818 3.7477 0.921941 -0.849545 18.540619 3.7477 0.921941 0.930455 12.198820 -7.27e-07 -0.590759 0.0404545 23.017421 -1.2492 0.292641 0.0404545 23.016722 1.2492 0.292641 0.0404545 20.163223 -2.4985 -0.590759 0.0404545 18.979824 2.4985 -0.590759 0.0404545 18.979825 -3.7477 0.292641 0.0404545 39.526726 3.7477 0.292641 0.0404545 23.25124 -7.27e-07 -1.22006 0.930455 3 5 -7.27e-07 -1.22006 -0.849545 3 6 -1.2492 0.921941 0.930455 3 7 -1.2492 0.921941 -0.849545 3 8 1.2492 0.921941 -0.849545 3 9 1.2492 0.921941 0.930455 3 10 -2.4985 -1.22006 -0.849545 4 11 -2.4985 -1.22006 0.930455 4 12 2.4985 -1.22006 0.930455 4 13 2.4985 -1.22006 -0.849545 4 14 -4.6377 -0.336759 0.0404545 6 15 -3.7477 0.921941 0.930455 5 16 -3.7477 0.921941 -0.849545 5 17 4.6377 -0.336759 0.0404545 4 18 3.7477 0.921941 -0.849545 4 19 3.7477 0.921941 0.930455 4 20 -7.27e-07 -0.590759 0.0404545 6 21 -1.2492 0.292641 0.0404545 6 22 1.2492 0.292641 0.0404545 6 23 -2.4985 -0.590759 0.0404545 6 24 2.4985 -0.590759 0.0404545 6 25 -3.7477 0.292641 0.0404545 12 26 3.7477 0.292641 0.0404545 12 27 27 28 28 14 15 23 … … 38 38 5 18 19 39 39 4 5 18 40 6 18 1941 3 6 1842 40 3 4 18 43 41 3 4 18 42 3 18 19 43 3 6 19 44 44 4 18 22 45 45 4 13 22 … … 48 48 12 13 22 49 49 12 13 22 50 6 19 23 51 6 16 23 50 16 19 23 51 6 16 19 52 14 16 23 53 14 16 23 54 9 14 23 55 9 16 23 52 56 11 13 22 53 57 11 13 22 … … 58 62 8 11 22 59 63 8 12 22 60 14 16 23 61 14 16 23 62 9 14 23 63 9 16 23 64 4 7 13 65 2 4 7 66 2 4 5 67 2 5 10 68 5 10 15 64 69 3 8 12 65 70 1 3 8 … … 67 72 1 6 9 68 73 6 9 16 69 4 7 1370 2 4 771 2 4 572 2 5 1073 5 10 1574 74 10 14 21 75 75 9 10 21 … … 84 84 2 17 20 85 85 2 7 20 86 1 17 20 87 1 8 20 86 88 7 8 20 87 89 7 8 20 88 90 7 11 20 89 91 8 11 20 90 8 17 2091 1 8 17 -
tests/Tesselations/heptan/2.5/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/Tesselations/heptan/2/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/Tesselations/heptan/25/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/Tesselations/heptan/3.5/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/Tesselations/heptan/3/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/Tesselations/heptan/4/NonConvexEnvelope-heptan.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -7.27e-07 -1.22006 0.930455 0 5 -7.27e-07 -1.22006 -0.849545 0 6 -1.2492 0.921941 0.930455 0 7 -1.2492 0.921941 -0.849545 0 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.4985 -1.22006 -0.849545 0 14 -4.6377 -0.336759 0.0404545 0 15 -3.7477 0.921941 0.930455 0 16 -3.7477 0.921941 -0.849545 0 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 7 11 13 30 4 7 13 31 2 4 7 32 2 4 5 33 2 5 10 34 5 10 15 35 10 14 15 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 9 14 16 43 6 9 16 44 1 6 9 45 1 3 6 46 1 3 8 47 3 8 12 48 8 11 12 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 -
tests/regression/Tesselation/1/post/NonConvexEnvelope.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/ConvexEnvelope.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/NonConvexEnvelope.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/3/post/NonConvexEnvelope.dat
r51a5c8 rf0f1cc 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=44, E=86, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 6.9077 1.1106 0.1214 -6.997155 0.3612 -3.628 1.323 6.004166 0.4884 -3.5983 -0.4521 11.84287 1.4985 -2.5112 0.5308 6.079518 -1.9534 -3.5752 0.5362 -4.269149 -1.1883 -0.199 1.5176 14.299210 -0.7165 -1.6046 2.5129 6.213411 1.7627 -1.4479 -0.8349 7.1505312 -1.003 -1.3584 -2.8848 32.04313 0.0217 -2.6629 -2.2008 1 6.800914 -2.8885 -1.5706 1.7543 -1.7707615 -2.0579 -3.6765 -1.7622 -7.0531916 -2.9259 -2.1146 -1.7672 33.666317 1.0353 0.1785 2.542 48.886918 1.6325 -1.3323 1.8306 1.4410819 0.7271 1.177 0.3594 27.987220 1.3374 -0.2942 -2.961 13.645921 0.6036 1.0859 -2.1126 98.52122 -3.2034 -0.5041 -1.0881 8.4480523 -5.1809 -1.8679 0.9687 -6.0744824 -4.6025 -2.4721 -0.6025 -6.5205725 -4.3385 -3.4329 0.8725 -4.1271626 3.191 1.3217 -2.8354 -10.596827 -4.0905 0.6312 1.6028 21.874528 2.8131 1.4776 2.5103 -0.77419429 3.9137 2.2936 1.3739 -2.5180630 2.159 2.5738 1.2698 151.49431 3.6606 -0.4593 2.1396 2 .6000432 3.2007 -1.4419 0.7311 2.2927233 -3.3002 2.3589 0.0094 461.06534 -4.377 1.6962 -1.2433 43.464935 5.2593 1.4547 -1.7445 -6.2608236 4.6863 2.7674 -0.6775 -8.5593137 5.746 -0.9031 1.204 -1.2954438 5.1212 -0.8867 -0.4582 31.517739 -5.2641 2.8314 1.4476 21.551640 5.2727 1.6068 1.2828 -2.5727141 -6.2394 4.6427 0.0632 -9.2439242 -4.4738 4.5591 -0.1458 62.521143 -5.5506 3.8964 -1.3985 -10.361344 -6.7081 0.9923 0.6224 -7.0888545 -7.5442 2.5597 0.5118 -11.425246 -6.8554 1.8134 -0.9499 3.8044447 7.1391 2.0447 0.0264 -7.887134 6.9077 1.1106 0.1214 1 5 0.3612 -3.628 1.323 1 6 0.4884 -3.5983 -0.4521 3 7 1.4985 -2.5112 0.5308 4 8 -1.9534 -3.5752 0.5362 2 9 -1.1883 -0.199 1.5176 3 10 -0.7165 -1.6046 2.5129 1 11 1.7627 -1.4479 -0.8349 4 12 -1.003 -1.3584 -2.8848 2 13 0.0217 -2.6629 -2.2008 1 14 -2.8885 -1.5706 1.7543 2 15 -2.0579 -3.6765 -1.7622 0 16 -2.9259 -2.1146 -1.7672 1 17 1.0353 0.1785 2.542 3 18 1.6325 -1.3323 1.8306 2 19 0.7271 1.177 0.3594 3 20 1.3374 -0.2942 -2.961 2 21 0.6036 1.0859 -2.1126 3 22 -3.2034 -0.5041 -1.0881 3 23 -5.1809 -1.8679 0.9687 1 24 -4.6025 -2.4721 -0.6025 2 25 -4.3385 -3.4329 0.8725 0 26 3.191 1.3217 -2.8354 1 27 -4.0905 0.6312 1.6028 3 28 2.8131 1.4776 2.5103 0 29 3.9137 2.2936 1.3739 0 30 2.159 2.5738 1.2698 5 31 3.6606 -0.4593 2.1396 2 32 3.2007 -1.4419 0.7311 4 33 -3.3002 2.3589 0.0094 8 34 -4.377 1.6962 -1.2433 3 35 5.2593 1.4547 -1.7445 0 36 4.6863 2.7674 -0.6775 0 37 5.746 -0.9031 1.204 0 38 5.1212 -0.8867 -0.4582 4 39 -5.2641 2.8314 1.4476 0 40 5.2727 1.6068 1.2828 2 41 -6.2394 4.6427 0.0632 0 42 -4.4738 4.5591 -0.1458 3 43 -5.5506 3.8964 -1.3985 0 44 -6.7081 0.9923 0.6224 2 45 -7.5442 2.5597 0.5118 0 46 -6.8554 1.8134 -0.9499 1 47 7.1391 2.0447 0.0264 0 48 48 49 49 1 32 44 -
tests/regression/testsuite-filling.at
r51a5c8 rf0f1cc 18 18 AT_KEYWORDS([filling]) 19 19 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/2/pre/test.conf .], 0) 20 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -u 1.3 --molecule-by-id 0], 0, [stdout], [stderr])20 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -u 1.3], 0, [stdout], [stderr]) 21 21 #AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/2/post/$file], 0, [ignore], [ignore]) 22 22 AT_CLEANUP -
tests/regression/testsuite-molecules.at
r51a5c8 rf0f1cc 61 61 AT_KEYWORDS([Molecules]) 62 62 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/8/pre/test.* .], 0) 63 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -m 0], 0, [stdout], [stderr])63 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -m 1], 0, [stdout], [stderr]) 64 64 #AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/8/post/$file], 0, [ignore], [ignore]) 65 65 AT_CLEANUP
Note:
See TracChangeset
for help on using the changeset viewer.