Changes in / [f0f1cc:51a5c8]
- Files:
-
- 20 added
- 43 edited
Legend:
- Unmodified
- Added
- Removed
-
configure.ac
rf0f1cc r51a5c8 33 33 AX_BOOST_THREAD 34 34 #AX_BOOST_SERIALIZATION 35 36 #QT4 libraries 37 gw_CHECK_QT4 38 AX_CHECK_GLU 39 AC_MSG_NOTICE(["GLU_CFLAGS: $GLU_CFLAGS, GLU_CXXFLAGS: $GLU_CXXFLAGS, GLU_LDFLAGS: $GLU_LDFLAGS, GLU_LIBS: $GLU_LIBS"]) 40 35 41 36 42 # Checks for header files. -
doc/class structure.uxf
rf0f1cc r51a5c8 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 94</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>210</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> 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>Element30 </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>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> 532</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>448</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> 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>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>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>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> 280</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>196</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> 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>BondList81 </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>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> 427</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>343</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> 609</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>525</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> 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>Atom111 </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>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> 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>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>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>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> 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>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>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>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> 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>TesselPoint155 #~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>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> 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>Bond165 *-- 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>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> 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>8 96</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>1 330</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>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>812</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>1246</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 407</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>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>1323</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>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> 539</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>455</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 428</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>>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>1344</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>> 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> 1064</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>980</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 218</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>1134</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 253</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>Graph324 BondsPerSPCount: int *</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>1169</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>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 134</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>KeySet327 {set<int>}</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>945</x><y>11 97</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>2 282</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>1050</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>KeySet 327 {set<int>}</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>945</x><y>1113</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>2198</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> 266</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> 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>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_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>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> -
src/Actions/MapOfActions.cpp
rf0f1cc r51a5c8 42 42 #include "Actions/MoleculeAction/FillWithMoleculeAction.hpp" 43 43 #include "Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.hpp" 44 #include "Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.hpp" 44 45 #include "Actions/MoleculeAction/SaveAdjacencyAction.hpp" 45 46 #include "Actions/MoleculeAction/SaveBondsAction.hpp" 46 47 #include "Actions/MoleculeAction/SaveTemperatureAction.hpp" 48 #include "Actions/MoleculeAction/SuspendInWaterAction.hpp" 47 49 #include "Actions/MoleculeAction/TranslateAction.hpp" 48 50 #include "Actions/MoleculeAction/VerletIntegrationAction.hpp" … … 288 290 289 291 // 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 290 301 MenuContainsActionMap.insert( pair<std::string, std::string> ("analysis", "molecular-volume") ); 291 302 MenuContainsActionMap.insert( pair<std::string, std::string> ("analysis", "pair-correlation") ); … … 445 456 new MoleculeFillWithMoleculeAction(); 446 457 new MoleculeLinearInterpolationofTrajectoriesAction(); 458 new MoleculeRotateToPrincipalAxisSystemAction(); 447 459 new MoleculeSaveAdjacencyAction(); 448 460 new MoleculeSaveBondsAction(); 449 461 new MoleculeSaveTemperatureAction(); 462 new MoleculeSuspendInWaterAction(); 450 463 new MoleculeTranslateAction(); 451 464 new MoleculeVerletIntegrationAction(); -
src/Actions/MapOfActions.hpp
rf0f1cc r51a5c8 145 145 146 146 std::multimap <std::string, std::string> MenuContainsActionMap; 147 std::map <std::string, std::pair<std::string,std::string> > MenuDescription; 147 148 148 149 // instantiates and puts all known actions into the ActionRegistry -
src/Actions/MoleculeAction/SuspendInWaterAction.cpp
rf0f1cc r51a5c8 55 55 double volume = 0.; 56 56 57 dialog->query Molecule(NAME, &mol, MapOfActions::getInstance().getDescription(NAME));58 dialog->query Double("density", &density, MapOfActions::getInstance().getDescription("density"));57 dialog->queryDouble(NAME, &density, MapOfActions::getInstance().getDescription(NAME)); 58 dialog->queryMolecule("molecule-by-id", &mol, MapOfActions::getInstance().getDescription("molecule-by-id")); 59 59 60 60 if(dialog->display()) { -
src/Actions/Process.cpp
rf0f1cc r51a5c8 41 41 42 42 int Process::getCurrStep(){ 43 OBSERVE;44 43 return currStep; 45 44 } 46 45 47 46 void Process::setCurrStep(int _currStep){ 47 OBSERVE; 48 48 currStep = _currStep; 49 49 } … … 55 55 return 0; 56 56 } 57 58 57 int Process::getMaxSteps(){ 59 58 return maxSteps; -
src/Actions/TesselationAction/ConvexEnvelopeAction.hpp
rf0f1cc r51a5c8 31 31 }; 32 32 33 34 33 #endif // CONVEXENVELOPEACTION_HPP -
src/Legacy/oldmenu.cpp
rf0f1cc r51a5c8 10 10 11 11 #include "Legacy/oldmenu.hpp" 12 #include "analysis_bonds.hpp" 12 13 #include "analysis_correlation.hpp" 13 14 #include "World.hpp" … … 509 510 Log() << Verbose(0) << " f - calculate temperature from current velocity" << endl; 510 511 Log() << Verbose(0) << " g - output all temperatures per step from velocities" << endl; 512 Log() << Verbose(0) << " h - count the number of hydrogen bonds" << endl; 511 513 Log() << Verbose(0) << "all else - go back" << endl; 512 514 Log() << Verbose(0) << "===============================================" << endl; … … 597 599 output->close(); 598 600 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; 599 614 } 600 615 break; -
src/Makefile.am
rf0f1cc r51a5c8 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.hpp 111 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.cpp 119 104 120 DESCRIPTORSOURCE = Descriptors/AtomDescriptor.cpp \ 105 121 Descriptors/AtomIdDescriptor.cpp \ … … 130 146 Exceptions/SkewException.hpp \ 131 147 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.cpp 158 159 QTUIHEADER = ${QTUIMOC_HEADER} UIElements/QT4/QTUIFactory.hpp 160 161 QTUI_DEFS = 132 162 133 163 SOURCE = \ … … 227 257 228 258 BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) 259 GUI_LIBS = ${QT_LDADD} ${QT_LIB_GUI} -lQtOpenGL ${GLU_LIBS} 229 260 INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements 230 261 231 noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a libparser.a 232 bin_PROGRAMS = molecuilder joiner analyzer 262 noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a libmenu.a libparser.a 263 bin_PROGRAMS = molecuilder molecuildergui joiner analyzer 264 233 265 molecuilderdir = ${bindir} 266 234 267 libmolecuilder_a_SOURCES = ${SOURCE} ${HEADER} 268 269 libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER} 235 270 libparser_a_SOURCES = ${PARSERSOURCE} ${PARSERHEADER} 236 271 libgslwrapper_a_SOURCES = ${LINALGSOURCE} ${LINALGHEADER} 272 237 273 molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db 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} 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 241 289 joiner_SOURCES = joiner.cpp datacreator.cpp parser.cpp datacreator.hpp helpers.hpp parser.hpp periodentafel.hpp 242 290 joiner_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB} 291 243 292 analyzer_SOURCES = analyzer.cpp datacreator.cpp parser.cpp helpers.hpp periodentafel.hpp parser.hpp datacreator.hpp 244 293 analyzer_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB} 294 295 #Rules needed for QT4 296 # UI-Files are scattered throughout several subdirectories 297 # Therfore `%'-rules do not seem to work 298 #Quick fix to get it done otherwise 299 ${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} 245 310 246 311 FORCE: … … 258 323 echo "const char *ESPACKVersion = \"$(PACKAGE_NAME) -- git version: "`cat $(srcdir)/.git-version`"\";" > $@ 259 324 260 molecuilder_SOURCES += $(srcdir)/version.c 325 -
src/UIElements/Dialog.cpp
rf0f1cc r51a5c8 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(){ 36 46 list<Query*>::iterator iter; 37 47 bool retval = true; … … 44 54 } 45 55 } 46 if (retval){47 // if all queries succeeded we can set the targets to appropriate values48 for(iter=queries.begin(); iter!=queries.end(); iter++) {49 (*iter)->setResult();50 }51 }52 56 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 } 53 64 } 54 65 -
src/UIElements/Dialog.hpp
rf0f1cc r51a5c8 36 36 37 37 virtual bool display(); 38 39 virtual bool checkAll(); 40 virtual void setAll(); 38 41 39 42 protected: -
src/UIElements/MainWindow.cpp
rf0f1cc r51a5c8 11 11 12 12 MainWindow::MainWindow() 13 { 14 // TODO Auto-generated constructor stub 15 16 } 13 {} 17 14 18 15 MainWindow::~MainWindow() 19 { 20 // TODO Auto-generated destructor stub 21 } 16 {} -
src/UIElements/TextUI/TextUIFactory.cpp
rf0f1cc r51a5c8 9 9 #include "UIElements/TextUI/TextWindow.hpp" 10 10 #include "UIElements/TextUI/TextDialog.hpp" 11 12 11 13 12 TextUIFactory::TextUIFactory() -
src/UIElements/TextUI/TextUIFactory.hpp
rf0f1cc r51a5c8 13 13 class TextUIFactory : public UIFactory 14 14 { 15 friend class UIFactory;15 friend class UIFactory; 16 16 17 17 public: -
src/UIElements/TextUI/TextWindow.cpp
rf0f1cc r51a5c8 25 25 #include "Views/StreamStringView.hpp" 26 26 #include "Views/MethodStringView.hpp" 27 #include "Helpers/MemDebug.hpp" 27 28 28 29 #include "defs.hpp" … … 70 71 new ActionMenuItem('a',"set molecule (in)active",main_menu,setMoleculeAction); 71 72 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); 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 } 103 80 104 81 new SeperatorItem(main_menu); -
src/UIElements/UIFactory.cpp
rf0f1cc r51a5c8 12 12 #include "UIElements/UIFactory.hpp" 13 13 #include "Helpers/Assert.hpp" 14 #include "Helpers/MemDebug.hpp" 14 15 15 16 using namespace std; -
src/UIElements/UIFactory.hpp
rf0f1cc r51a5c8 30 30 friend class Singleton<UIFactory,false>; 31 31 public: 32 32 33 /** 33 34 * Produce some kind of main window, of whichever type was chosen when the factory was created -
src/analysis_bonds.cpp
rf0f1cc r51a5c8 121 121 * \param *molecules molecules to count bonds 122 122 * \param *InterfaceElement or NULL 123 */ 124 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL) 123 * \param *Interface2Element or NULL 124 */ 125 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL) 125 126 { 126 127 int count = 0; … … 128 129 double Otherangle = 0.; 129 130 bool InterfaceFlag = false; 131 bool Interface2Flag = false; 130 132 bool OtherHydrogenFlag = true; 131 133 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); ++MolWalker) { … … 145 147 OtherHydrogens = 0; 146 148 InterfaceFlag = (InterfaceElement == NULL); 149 Interface2Flag = (Interface2Element == NULL); 147 150 for (BondList::const_iterator BondRunner = (*Runner)->ListOfBonds.begin(); BondRunner != (*Runner)->ListOfBonds.end(); BondRunner++) { 148 151 atom * const OtherAtom = (*BondRunner)->GetOtherAtom(*Runner); … … 155 158 } 156 159 InterfaceFlag = InterfaceFlag || (OtherAtom->type == InterfaceElement); 160 Interface2Flag = Interface2Flag || (OtherAtom->type == Interface2Element); 157 161 } 158 162 DoLog(1) && (Log() << Verbose(1) << "Otherangle is " << Otherangle << " for " << OtherHydrogens << " hydrogens." << endl); … … 168 172 break; 169 173 } 170 if (InterfaceFlag && OtherHydrogenFlag) {174 if (InterfaceFlag && Interface2Flag && OtherHydrogenFlag) { 171 175 // on this element (Walker) we check for bond to hydrogen, i.e. part of water molecule 172 176 for (BondList::const_iterator BondRunner = (*Walker)->ListOfBonds.begin(); BondRunner != (*Walker)->ListOfBonds.end(); BondRunner++) { -
src/analysis_bonds.hpp
rf0f1cc r51a5c8 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 );35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement, const element * Interface2Element); 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
rf0f1cc r51a5c8 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
rf0f1cc r51a5c8 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_QT 70 #include "UIElements/QT4/QTUIFactory.hpp" 71 #endif 72 #include "UIElements/MainWindow.hpp" 73 #include "UIElements/Dialog.hpp" 74 #include "Menu/ActionMenuItem.hpp" 62 75 #include "verbose.hpp" 63 76 #include "World.hpp" … … 146 159 UIFactory::makeUserInterface("CommandLine"); 147 160 } else { 148 DoLog(0) && (Log() << Verbose(0) << "Setting UI to Text." << endl); 149 UIFactory::registerFactory(new TextUIFactory::description()); 150 UIFactory::makeUserInterface("Text"); 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 151 171 } 152 172 } -
src/defs.hpp
rf0f1cc r51a5c8 82 82 #define STD_SEPERATOR_SPACER '-' 83 83 84 #define MOLECUILDER_NAME "Molecuilder" 85 84 86 #endif /*DEFS_HPP_*/ -
src/molecule.hpp
rf0f1cc r51a5c8 29 29 #include <string> 30 30 31 #include " defs.hpp"31 #include "types.hpp" 32 32 #include "graph.hpp" 33 33 #include "stackclass.hpp" -
src/tesselation.cpp
rf0f1cc r51a5c8 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 concave 247 */ 248 double BoundaryLineSet::CalculateConvexity() const 249 { 250 Info FunctionInfo(__func__); 233 251 Vector BaseLineCenter, BaseLineNormal, BaseLine, helper[2], NormalCheck; 234 252 // get the two triangles … … 279 297 BaseLineNormal.Scale(-1.); 280 298 double angle = GetAngle(helper[0], helper[1], BaseLineNormal); 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 } 299 return (angle - M_PI); 288 300 } 289 301 … … 304 316 /** Returns other endpoint of the line. 305 317 * \param *point other endpoint 306 * \return NULL - if endpoint not contained in BoundaryLineSet , or pointer to BoundaryPointSet otherwise318 * \return NULL - if endpoint not contained in BoundaryLineSet::lines, or pointer to BoundaryPointSet otherwise 307 319 */ 308 320 class BoundaryPointSet *BoundaryLineSet::GetOtherEndpoint(const BoundaryPointSet * const point) const … … 315 327 else 316 328 return NULL; 329 } 330 ; 331 332 /** Returns other triangle of the line. 333 * \param *point other endpoint 334 * \return NULL - if triangle not contained in BoundaryLineSet::triangles, or pointer to BoundaryTriangleSet otherwise 335 */ 336 class BoundaryTriangleSet *BoundaryLineSet::GetOtherTriangle(const BoundaryTriangleSet * const triangle) const 337 { 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; 317 345 } 318 346 ; … … 661 689 ; 662 690 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 line 693 * \return pointer to desired third baseline 694 */ 695 class BoundaryLineSet *BoundaryTriangleSet::GetThirdLine(const BoundaryPointSet * const point) const 696 { 697 Info FunctionInfo(__func__); 698 // sanity check 699 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 663 709 /** Calculates the center point of the triangle. 664 710 * Is third of the sum of all endpoints. … … 1110 1156 TesselPointList *ListofPoints = LC->GetPointsInsideSphere(RADIUS, (*VRunner)); 1111 1157 1112 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << OtherOptCenter<< ":" << endl);1158 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << (*VRunner) << ":" << endl); 1113 1159 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1114 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance( OtherOptCenter) << "." << endl);1160 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance(*(*VRunner)) << "." << endl); 1115 1161 1116 1162 // remove baseline's endpoints and candidates … … 1128 1174 DoeLog(1) && (eLog() << Verbose(1) << "External atoms inside of sphere at " << *(*VRunner) << ":" << endl); 1129 1175 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1130 DoeLog(1) && (eLog() << Verbose(1) << " " << *(*Runner) << endl); 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 } 1131 1185 } 1132 1186 delete (ListofPoints); 1133 1187 1134 // check with animate_sphere.tcl VMD script1135 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 }1141 1188 } 1142 1189 return flag; … … 3290 3337 } 3291 3338 } else { 3292 Do Log(1) && (Log() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl);3339 DoeLog(0) && (eLog() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl); 3293 3340 } 3294 3341 } else { … … 4590 4637 4591 4638 DoLog(0) && (Log() << Verbose(0) << "FindAllDegeneratedTriangles() found " << DegeneratedTriangles->size() << " triangles:" << endl); 4592 IndexToIndex::iterator it; 4593 for (it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4639 for (IndexToIndex::iterator it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4594 4640 DoLog(0) && (Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl); 4595 4641 … … 4609 4655 int count = 0; 4610 4656 4611 for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); TriangleKeyRunner != DegeneratedTriangles->end(); ++TriangleKeyRunner) { 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 4612 4665 finder = TrianglesOnBoundary.find(TriangleKeyRunner->first); 4613 4666 if (finder != TrianglesOnBoundary.end()) 4614 4667 triangle = finder->second; 4615 4668 else 4616 break;4669 continue; 4617 4670 finder = TrianglesOnBoundary.find(TriangleKeyRunner->second); 4618 4671 if (finder != TrianglesOnBoundary.end()) 4619 4672 partnerTriangle = finder->second; 4620 4673 else 4621 break; 4622 4674 continue; 4675 4676 // determine which lines are shared by the two triangles 4623 4677 bool trianglesShareLine = false; 4624 4678 for (int i = 0; i < 3; ++i) -
src/tesselation.hpp
rf0f1cc r51a5c8 138 138 bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const; 139 139 bool CheckConvexityCriterion() const; 140 double CalculateConvexity() const; 140 141 class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const; 142 class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const; 141 143 142 144 class BoundaryPointSet *endpoints[2]; … … 164 166 bool ContainsBoundaryPoint(const TesselPoint * const point) const; 165 167 class BoundaryPointSet *GetThirdEndpoint(const BoundaryLineSet * const line) const; 168 class BoundaryLineSet *GetThirdLine(const BoundaryPointSet * const point) const; 166 169 bool IsPresentTupel(const BoundaryPointSet * const Points[3]) const; 167 170 bool IsPresentTupel(const BoundaryTriangleSet * const T) const; -
src/tesselationhelpers.cpp
rf0f1cc r51a5c8 12 12 #include "info.hpp" 13 13 #include "linkedcell.hpp" 14 #include "linearsystemofequations.hpp" 14 15 #include "log.hpp" 15 16 #include "tesselation.hpp" … … 185 186 beta = M_PI - SideC.Angle(SideA); 186 187 gamma = M_PI - SideA.Angle(SideB); 187 //Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl;188 Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl; 188 189 if (fabs(M_PI - alpha - beta - gamma) > HULLEPSILON) { 189 190 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); … … 198 199 (*Center) += helper; 199 200 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 below 228 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; 200 238 }; 201 239 … … 419 457 /** Calculates the volume of a general tetraeder. 420 458 * \param *a first vector 421 * \param * a firstvector422 * \param * a firstvector423 * \param * a firstvector459 * \param *b second vector 460 * \param *c third vector 461 * \param *d fourth vector 424 462 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot (a-b)) \f$ 425 463 */ … … 439 477 volume = 1./6. * fabs(Point.ScalarProduct(TetraederVector[2])); 440 478 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 vector 484 * \param &B second vector 485 * \param &C third vector 486 * \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; 441 499 }; 442 500 … … 882 940 class BoundaryPointSet *point = NULL; 883 941 class BoundaryLineSet *line = NULL; 884 885 // calculate remaining concavity 942 class BoundaryTriangleSet *triangle = NULL; 943 double ConcavityPerLine = 0.; 944 double ConcavityPerTriangle = 0.; 945 double area = 0.; 946 double totalarea = 0.; 947 886 948 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 887 949 point = PointRunner->second; 888 950 DoLog(1) && (Log() << Verbose(1) << "INFO: Current point is " << *point << "." << endl); 889 point->value = 0; 951 952 // calculate mean concavity over all connected line 953 ConcavityPerLine = 0.; 890 954 for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) { 891 955 line = LineRunner->second; 892 956 //Log() << Verbose(1) << "INFO: Current line of point " << *point << " is " << *line << "." << endl; 893 if (!line->CheckConvexityCriterion()) 894 point->value += 1; 895 } 896 } 897 }; 898 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 }; 899 1016 900 1017 /** Checks whether each BoundaryLineSet in the Tesselation has two triangles. -
src/tesselationhelpers.hpp
rf0f1cc r51a5c8 43 43 /********************************************** definitions *********************************/ 44 44 45 #define HULLEPSILON 1e- 1045 #define HULLEPSILON 1e-9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities 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); 57 58 double GetAngle(const Vector &point, const Vector &reference, const Vector &OrthogonalVector); 58 59 … … 68 69 void WriteVrmlFile(ofstream * const vrmlfile, const Tesselation * const Tess, const PointCloud * const cloud); 69 70 void CalculateConcavityPerBoundaryPoint(const Tesselation * const TesselStruct); 71 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex); 70 72 double DistanceToTrianglePlane(const Vector *x, const BoundaryTriangleSet * const triangle); 71 73 -
src/unittests/CountBondsUnitTest.cpp
rf0f1cc r51a5c8 154 154 Translator = Vector(3,0,0); 155 155 TestMolecule2->Translate(&Translator); 156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL ) );157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen ) );156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen, NULL) ); 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 ) );165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, 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 ) );221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 222 222 Translator = Vector(0,-3,0); 223 223 TestMolecule2->Translate(&Translator); -
src/unittests/TestRunnerMain.cpp
rf0f1cc r51a5c8 17 17 #include "../../../TestRunnerClient.h" 18 18 #include "../../../TestRunnerClient.cpp" 19 19 20 #else 20 #include "UnitTestMain.cpp"21 #endif22 21 22 #include "unittests/UnitTestMain.cpp" 23 24 #endif /* HAVE_ECUT */ -
src/unittests/UnitTestMain.cpp
rf0f1cc r51a5c8 6 6 */ 7 7 8 #include <cppunit/CompilerOutputter.h>9 #include <cppunit/extensions/TestFactoryRegistry.h>10 #include <cppunit/ui/text/TestRunner.h>11 12 8 // include config.h 13 9 #ifdef HAVE_CONFIG_H 14 10 #include <config.h> 15 11 #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
rf0f1cc r51a5c8 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 35 -7.27e-07 -1.22006 -0.849545 36 -1.2492 0.921941 0.930455 37 -1.2492 0.921941 -0.849545 38 1.2492 0.921941 -0.849545 39 1.2492 0.921941 0.930455 310 -2.4985 -1.22006 -0.849545 411 -2.4985 -1.22006 0.930455 412 2.4985 -1.22006 0.930455 413 2.4985 -1.22006 -0.849545 414 -4.6377 -0.336759 0.0404545 615 -3.7477 0.921941 0.930455 516 -3.7477 0.921941 -0.849545 517 4.6377 -0.336759 0.0404545 418 3.7477 0.921941 -0.849545 419 3.7477 0.921941 0.930455 420 -7.27e-07 -0.590759 0.0404545 621 -1.2492 0.292641 0.0404545 622 1.2492 0.292641 0.0404545 623 -2.4985 -0.590759 0.0404545 624 2.4985 -0.590759 0.0404545 625 -3.7477 0.292641 0.0404545 1226 3.7477 0.292641 0.0404545 124 -7.27e-07 -1.22006 0.930455 18.7229 5 -7.27e-07 -1.22006 -0.849545 18.7229 6 -1.2492 0.921941 0.930455 18.7227 7 -1.2492 0.921941 -0.849545 18.7227 8 1.2492 0.921941 -0.849545 18.7222 9 1.2492 0.921941 0.930455 27.0641 10 -2.4985 -1.22006 -0.849545 19.9769 11 -2.4985 -1.22006 0.930455 27.4727 12 2.4985 -1.22006 0.930455 19.9769 13 2.4985 -1.22006 -0.849545 27.4727 14 -4.6377 -0.336759 0.0404545 21.541 15 -3.7477 0.921941 0.930455 18.8853 16 -3.7477 0.921941 -0.849545 18.8853 17 4.6377 -0.336759 0.0404545 10.6618 18 3.7477 0.921941 -0.849545 18.5406 19 3.7477 0.921941 0.930455 12.1988 20 -7.27e-07 -0.590759 0.0404545 23.0174 21 -1.2492 0.292641 0.0404545 23.0167 22 1.2492 0.292641 0.0404545 20.1632 23 -2.4985 -0.590759 0.0404545 18.9798 24 2.4985 -0.590759 0.0404545 18.9798 25 -3.7477 0.292641 0.0404545 39.5267 26 3.7477 0.292641 0.0404545 23.2512 27 27 28 28 14 15 23 … … 38 38 5 18 19 39 39 4 5 18 40 6 18 19 41 3 6 18 40 42 3 4 18 41 43 3 4 18 42 3 18 1943 3 6 1944 44 4 18 22 45 45 4 13 22 … … 48 48 12 13 22 49 49 12 13 22 50 16 19 23 51 6 16 19 52 14 16 23 53 14 16 23 54 9 14 23 55 9 16 23 50 6 19 23 51 6 16 23 56 52 11 13 22 57 53 11 13 22 … … 62 58 8 11 22 63 59 8 12 22 60 14 16 23 61 14 16 23 62 9 14 23 63 9 16 23 64 3 8 12 65 1 3 8 66 1 3 6 67 1 6 9 68 6 9 16 64 69 4 7 13 65 70 2 4 7 … … 67 72 2 5 10 68 73 5 10 15 69 3 8 1270 1 3 871 1 3 672 1 6 973 6 9 1674 74 10 14 21 75 75 9 10 21 … … 84 84 2 17 20 85 85 2 7 20 86 1 17 2087 1 8 2088 86 7 8 20 89 87 7 8 20 90 88 7 11 20 91 89 8 11 20 90 8 17 20 91 1 8 17 -
tests/Tesselations/heptan/2.5/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/Tesselations/heptan/2/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/Tesselations/heptan/25/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/Tesselations/heptan/3.5/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/Tesselations/heptan/3/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/Tesselations/heptan/4/NonConvexEnvelope-heptan.dat
rf0f1cc r51a5c8 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 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -7.27e-07 -1.22006 0.930455 -17.4952 5 -7.27e-07 -1.22006 -0.849545 -17.4952 6 -1.2492 0.921941 0.930455 -19.6818 7 -1.2492 0.921941 -0.849545 -15.323 8 1.2492 0.921941 -0.849545 -17.495 9 1.2492 0.921941 0.930455 -17.4951 10 -2.4985 -1.22006 -0.849545 -13.1263 11 -2.4985 -1.22006 0.930455 -10.8961 12 2.4985 -1.22006 0.930455 -13.1263 13 2.4985 -1.22006 -0.849545 -10.8961 14 -4.6377 -0.336759 0.0404545 -9.35471 15 -3.7477 0.921941 0.930455 -9.24444 16 -3.7477 0.921941 -0.849545 -11.4805 17 4.6377 -0.336759 0.0404545 -9.35473 18 3.7477 0.921941 -0.849545 -11.4805 19 3.7477 0.921941 0.930455 -9.24445 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 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 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 -
tests/regression/Tesselation/1/post/NonConvexEnvelope.dat
rf0f1cc r51a5c8 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 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 9.78209 2.64589 2.64589 -9.24443 5 9.78209 2.64589 4.42589 -11.4804 6 10.672 3.90454 3.53589 -9.35464 7 8.53279 4.78789 2.64589 -9.11459 8 8.53279 4.78789 4.42589 -9.11459 9 6.39363 3.90454 3.53589 -9.35431 10 7.28359 2.64589 2.64589 -11.4803 11 7.28359 2.64589 4.42589 -9.24433 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/ConvexEnvelope.dat
rf0f1cc r51a5c8 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 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 9.78209 2.64589 2.64589 -9.24443 5 9.78209 2.64589 4.42589 -11.4804 6 10.672 3.90454 3.53589 -9.35464 7 8.53279 4.78789 2.64589 -9.11459 8 8.53279 4.78789 4.42589 -9.11459 9 6.39363 3.90454 3.53589 -9.35431 10 7.28359 2.64589 2.64589 -11.4803 11 7.28359 2.64589 4.42589 -9.24433 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/NonConvexEnvelope.dat
rf0f1cc r51a5c8 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 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 9.78209 2.64589 2.64589 -9.24443 5 9.78209 2.64589 4.42589 -11.4804 6 10.672 3.90454 3.53589 -9.35464 7 8.53279 4.78789 2.64589 -9.11459 8 8.53279 4.78789 4.42589 -9.11459 9 6.39363 3.90454 3.53589 -9.35431 10 7.28359 2.64589 2.64589 -11.4803 11 7.28359 2.64589 4.42589 -9.24433 12 12 13 13 1 3 4 -
tests/regression/Tesselation/3/post/NonConvexEnvelope.dat
rf0f1cc r51a5c8 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 15 0.3612 -3.628 1.323 16 0.4884 -3.5983 -0.4521 37 1.4985 -2.5112 0.5308 48 -1.9534 -3.5752 0.5362 29 -1.1883 -0.199 1.5176 310 -0.7165 -1.6046 2.5129 111 1.7627 -1.4479 -0.8349 412 -1.003 -1.3584 -2.8848 213 0.0217 -2.6629 -2.2008 1 14 -2.8885 -1.5706 1.7543 215 -2.0579 -3.6765 -1.7622 016 -2.9259 -2.1146 -1.7672 117 1.0353 0.1785 2.542 318 1.6325 -1.3323 1.8306 219 0.7271 1.177 0.3594 320 1.3374 -0.2942 -2.961 221 0.6036 1.0859 -2.1126 322 -3.2034 -0.5041 -1.0881 323 -5.1809 -1.8679 0.9687 124 -4.6025 -2.4721 -0.6025 225 -4.3385 -3.4329 0.8725 026 3.191 1.3217 -2.8354 127 -4.0905 0.6312 1.6028 328 2.8131 1.4776 2.5103 029 3.9137 2.2936 1.3739 030 2.159 2.5738 1.2698 531 3.6606 -0.4593 2.1396 2 32 3.2007 -1.4419 0.7311 433 -3.3002 2.3589 0.0094 834 -4.377 1.6962 -1.2433 335 5.2593 1.4547 -1.7445 036 4.6863 2.7674 -0.6775 037 5.746 -0.9031 1.204 038 5.1212 -0.8867 -0.4582 439 -5.2641 2.8314 1.4476 040 5.2727 1.6068 1.2828 241 -6.2394 4.6427 0.0632 042 -4.4738 4.5591 -0.1458 343 -5.5506 3.8964 -1.3985 044 -6.7081 0.9923 0.6224 245 -7.5442 2.5597 0.5118 046 -6.8554 1.8134 -0.9499 147 7.1391 2.0447 0.0264 04 6.9077 1.1106 0.1214 -6.99715 5 0.3612 -3.628 1.323 6.00416 6 0.4884 -3.5983 -0.4521 11.8428 7 1.4985 -2.5112 0.5308 6.07951 8 -1.9534 -3.5752 0.5362 -4.26914 9 -1.1883 -0.199 1.5176 14.2992 10 -0.7165 -1.6046 2.5129 6.2134 11 1.7627 -1.4479 -0.8349 7.15053 12 -1.003 -1.3584 -2.8848 32.043 13 0.0217 -2.6629 -2.2008 16.8009 14 -2.8885 -1.5706 1.7543 -1.77076 15 -2.0579 -3.6765 -1.7622 -7.05319 16 -2.9259 -2.1146 -1.7672 33.6663 17 1.0353 0.1785 2.542 48.8869 18 1.6325 -1.3323 1.8306 1.44108 19 0.7271 1.177 0.3594 27.9872 20 1.3374 -0.2942 -2.961 13.6459 21 0.6036 1.0859 -2.1126 98.521 22 -3.2034 -0.5041 -1.0881 8.44805 23 -5.1809 -1.8679 0.9687 -6.07448 24 -4.6025 -2.4721 -0.6025 -6.52057 25 -4.3385 -3.4329 0.8725 -4.12716 26 3.191 1.3217 -2.8354 -10.5968 27 -4.0905 0.6312 1.6028 21.8745 28 2.8131 1.4776 2.5103 -0.774194 29 3.9137 2.2936 1.3739 -2.51806 30 2.159 2.5738 1.2698 151.494 31 3.6606 -0.4593 2.1396 2.60004 32 3.2007 -1.4419 0.7311 2.29272 33 -3.3002 2.3589 0.0094 461.065 34 -4.377 1.6962 -1.2433 43.4649 35 5.2593 1.4547 -1.7445 -6.26082 36 4.6863 2.7674 -0.6775 -8.55931 37 5.746 -0.9031 1.204 -1.29544 38 5.1212 -0.8867 -0.4582 31.5177 39 -5.2641 2.8314 1.4476 21.5516 40 5.2727 1.6068 1.2828 -2.57271 41 -6.2394 4.6427 0.0632 -9.24392 42 -4.4738 4.5591 -0.1458 62.5211 43 -5.5506 3.8964 -1.3985 -10.3613 44 -6.7081 0.9923 0.6224 -7.08885 45 -7.5442 2.5597 0.5118 -11.4252 46 -6.8554 1.8134 -0.9499 3.80444 47 7.1391 2.0447 0.0264 -7.88713 48 48 49 49 1 32 44 -
tests/regression/testsuite-filling.at
rf0f1cc r51a5c8 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 ], 0, [stdout], [stderr])20 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -u 1.3 --molecule-by-id 0], 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
rf0f1cc r51a5c8 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 1], 0, [stdout], [stderr])63 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -m 0], 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.