Changeset 348b6a
- Timestamp:
- Oct 30, 2008, 12:55:19 AM (17 years ago)
- Children:
- 25f5089
- Parents:
- 5fd79e
- Location:
- molecuilder/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/analyzer.cpp
r5fd79e r348b6a 34 34 ForceMatrix Shielding; 35 35 ForceMatrix ShieldingPAS; 36 ForceMatrix Chi; 37 ForceMatrix ChiPAS; 36 38 EnergyMatrix Time; 37 39 ForceMatrix ShieldingFragments; 38 40 ForceMatrix ShieldingPASFragments; 41 ForceMatrix ChiFragments; 42 ForceMatrix ChiPASFragments; 39 43 KeySetsContainer KeySet; 40 44 ofstream output; … … 105 109 if (!Shielding.ParseFragmentMatrix(argv[1], dir, ShieldingSuffix, 1, 0)) return 1; 106 110 if (!ShieldingPAS.ParseFragmentMatrix(argv[1], dir, ShieldingPASSuffix, 1, 0)) return 1; 111 if (!Chi.ParseFragmentMatrix(argv[1], dir, ChiSuffix, 1, 0)) return 1; 112 if (!ChiPAS.ParseFragmentMatrix(argv[1], dir, ChiPASSuffix, 1, 0)) return 1; 107 113 } 108 114 … … 132 138 if(!ShieldingFragments.ParseIndices(argv[1])) return 1; 133 139 if(!ShieldingPASFragments.ParseIndices(argv[1])) return 1; 140 if(!Chi.ParseIndices(argv[1])) return 1; 141 if(!ChiPAS.ParseIndices(argv[1])) return 1; 142 if (!ChiFragments.AllocateMatrix(Chi.Header, Chi.MatrixCounter, Chi.RowCounter, Chi.ColumnCounter)) return 1; 143 if (!ChiPASFragments.AllocateMatrix(ChiPAS.Header, ChiPAS.MatrixCounter, ChiPAS.RowCounter, ChiPAS.ColumnCounter)) return 1; 144 if(!ChiFragments.ParseIndices(argv[1])) return 1; 145 if(!ChiPASFragments.ParseIndices(argv[1])) return 1; 134 146 } 135 147 … … 148 160 if (!ShieldingFragments.ParseFragmentMatrix(argv[1], dir, ShieldingFragmentSuffix, 1, 0)) return 1; 149 161 if (!ShieldingPASFragments.ParseFragmentMatrix(argv[1], dir, ShieldingPASFragmentSuffix, 1, 0)) return 1; 162 if (!ChiFragments.ParseFragmentMatrix(argv[1], dir, ChiFragmentSuffix, 1, 0)) return 1; 163 if (!ChiPASFragments.ParseFragmentMatrix(argv[1], dir, ChiPASFragmentSuffix, 1, 0)) return 1; 150 164 } 151 165 … … 195 209 for(int k=0;k<ShieldingPAS.ColumnCounter[ShieldingPAS.MatrixCounter];k++) 196 210 output << scientific << ShieldingPAS.Matrix[ ShieldingPAS.MatrixCounter ][j][k] << "\t"; 211 output << endl; 212 } 213 output << endl; 214 215 output << endl << "Total Chis" << endl << "===============" << endl << Chi.Header[Hessian.MatrixCounter] << endl; 216 for(int j=0;j<Chi.RowCounter[Chi.MatrixCounter];j++) { 217 for(int k=0;k<Chi.ColumnCounter[Chi.MatrixCounter];k++) 218 output << scientific << Chi.Matrix[ Chi.MatrixCounter ][j][k] << "\t"; 219 output << endl; 220 } 221 output << endl; 222 223 output << endl << "Total Chis PAS" << endl << "===============" << endl << ChiPAS.Header[ChiPAS.MatrixCounter] << endl; 224 for(int j=0;j<ChiPAS.RowCounter[ChiPAS.MatrixCounter];j++) { 225 for(int k=0;k<ChiPAS.ColumnCounter[ChiPAS.MatrixCounter];k++) 226 output << scientific << ChiPAS.Matrix[ ChiPAS.MatrixCounter ][j][k] << "\t"; 197 227 output << endl; 198 228 } … … 286 316 output << endl; 287 317 } 288 } 289 output.close(); 318 output.close(); 319 if (!CreateDataDeltaForcesOrderPerAtom(ChiPAS, ChiPASFragments, KeySet, argv[3], "DeltaChisPAS-Order", "Plot of error between approximated Chis and full Chis versus the Bond Order", datum)) return 1; 320 if (!CreateDataForcesOrderPerAtom(ChiPASFragments, KeySet, argv[3], "ChisPAS-Order", "Plot of approximated Chis versus the Bond Order", datum)) return 1; 321 if (!AppendOutputFile(output, argv[3], "ChisPAS-Order.dat" )) return false; 322 output << endl << "# Full" << endl; 323 for(int j=0;j<ChiPAS.RowCounter[ChiPAS.MatrixCounter];j++) { 324 output << j << "\t"; 325 for(int k=0;k<ChiPAS.ColumnCounter[ChiPAS.MatrixCounter];k++) 326 output << scientific << ChiPAS.Matrix[ ChiPAS.MatrixCounter ][j][k] << "\t"; //*(((k>1) && (k<6))? 1.e6 : 1.) << "\t"; 327 output << endl; 328 } 329 output.close(); 330 } 290 331 291 332 … … 466 507 output.close(); 467 508 output2.close(); 509 510 if(!OpenOutputFile(output, argv[3], "ChisPAS-Order.pyx")) return 1; 511 if(!OpenOutputFile(output2, argv[3], "DeltaChisPAS-Order.pyx")) return 1; 512 CreatePlotHeader(output, "ChisPAS-Order", 1, "top right", NULL, NULL, 1, 5, "nuclei index", "iso chemical Chi value [ppm]"); 513 CreatePlotHeader(output2, "DeltaChisPAS-Order", 1, "top right", NULL, NULL, 1, 5, "nuclei index", "iso chemical Chi value [ppm]"); 514 output << "set boxwidth " << step << endl; 515 output << "plot [0:" << ChiPAS.RowCounter[ChiPAS.MatrixCounter]+10 << "]\\" << endl; 516 output2 << "plot [0:" << ChiPAS.RowCounter[ChiPAS.MatrixCounter]+10 << "]\\" << endl; 517 for (int BondOrder=0;BondOrder<KeySet.Order;BondOrder++) { 518 output << "'ChisPAS-Order.dat' index " << BondOrder << " title 'Order " << BondOrder+1 << "' using ($1+" << step*(double)BondOrder << "):7 with boxes, \\" << endl; 519 output2 << "'DeltaChisPAS-Order.dat' index " << BondOrder << " title 'Order " << BondOrder+1 << "' using ($1):7 with linespoints"; 520 if (BondOrder-1 != KeySet.Order) 521 output2 << ", \\" << endl; 522 } 523 output << "'ChisPAS-Order.dat' index " << KeySet.Order << " title 'Full' using ($1+" << step*(double)KeySet.Order << "):7 with boxes" << endl; 524 output.close(); 525 output2.close(); 468 526 } 469 527 -
molecuilder/src/joiner.cpp
r5fd79e r348b6a 34 34 ForceMatrix ShieldingFragments; 35 35 ForceMatrix ShieldingPASFragments; 36 EnergyMatrix Chi; 37 EnergyMatrix ChiPAS; 38 EnergyMatrix ChiFragments; 39 EnergyMatrix ChiPASFragments; 36 40 KeySetsContainer KeySet; 37 41 stringstream prefix; … … 80 84 if (!Shielding.ParseFragmentMatrix(argv[1], dir, ShieldingSuffix, 1, 0)) return 1; 81 85 if (!ShieldingPAS.ParseFragmentMatrix(argv[1], dir, ShieldingPASSuffix, 1, 0)) return 1; 86 if (!Chi.ParseFragmentMatrix(argv[1], dir, ChiSuffix, 1, 0)) return 1; 87 if (!ChiPAS.ParseFragmentMatrix(argv[1], dir, ChiPASSuffix, 1, 0)) return 1; 82 88 } 83 89 … … 98 104 if(!Shielding.ParseIndices(argv[1])) return 1; 99 105 if(!ShieldingPAS.ParseIndices(argv[1])) return 1; 106 if(!Chi.ParseIndices(argv[1])) return 1; 107 if(!ChiPAS.ParseIndices(argv[1])) return 1; 100 108 } 101 109 102 110 // ---------- Parse the KeySets into an array --------------- 103 111 if (!KeySet.ParseKeySets(argv[1], Force.RowCounter, Force.MatrixCounter)) return 1; 104 105 112 if (!KeySet.ParseManyBodyTerms()) return 1; 113 106 114 if (!EnergyFragments.AllocateMatrix(Energy.Header, Energy.MatrixCounter, Energy.RowCounter, Energy.ColumnCounter)) return 1; 107 115 if (!NoHCorrection) … … 113 121 if (!ShieldingFragments.AllocateMatrix(Shielding.Header, Shielding.MatrixCounter, Shielding.RowCounter, Shielding.ColumnCounter)) return 1; 114 122 if (!ShieldingPASFragments.AllocateMatrix(ShieldingPAS.Header, ShieldingPAS.MatrixCounter, ShieldingPAS.RowCounter, ShieldingPAS.ColumnCounter)) return 1; 123 if (!ChiFragments.AllocateMatrix(Chi.Header, Chi.MatrixCounter, Chi.RowCounter, Chi.ColumnCounter)) return 1; 124 if (!ChiPASFragments.AllocateMatrix(ChiPAS.Header, ChiPAS.MatrixCounter, ChiPAS.RowCounter, ChiPAS.ColumnCounter)) return 1; 115 125 } 116 126 … … 123 133 if(!Shielding.SetLastMatrix(0., 2)) return 1; 124 134 if(!ShieldingPAS.SetLastMatrix(0., 2)) return 1; 135 if(!Chi.SetLastMatrix(0., 2)) return 1; 136 if(!ChiPAS.SetLastMatrix(0., 2)) return 1; 125 137 } 126 138 … … 149 161 } 150 162 if (periode != NULL) { // also look for PAS values 151 cout << "Summing shieldings of order " << BondOrder+1 << " ..." << endl;163 cout << "Summing shieldings and susceptibilities of order " << BondOrder+1 << " ..." << endl; 152 164 if (!ShieldingFragments.SumSubManyBodyTerms(Shielding, KeySet, BondOrder)) return 1; 153 165 if (!Shielding.SumSubForces(ShieldingFragments, KeySet, BondOrder, 1.)) return 1; 154 166 if (!ShieldingPASFragments.SumSubManyBodyTerms(ShieldingPAS, KeySet, BondOrder)) return 1; 155 167 if (!ShieldingPAS.SumSubForces(ShieldingPASFragments, KeySet, BondOrder, 1.)) return 1; 168 if (!ChiFragments.SumSubManyBodyTerms(Chi, KeySet, BondOrder)) return 1; 169 if (!Chi.SumSubForces(ChiFragments, KeySet, BondOrder, 1.)) return 1; 170 if (!ChiPASFragments.SumSubManyBodyTerms(ChiPAS, KeySet, BondOrder)) return 1; 171 if (!ChiPAS.SumSubForces(ChiPASFragments, KeySet, BondOrder, 1.)) return 1; 156 172 } 157 173 … … 171 187 if (!Shielding.WriteLastMatrix(argv[1], (prefix.str()).c_str(), ShieldingSuffix)) return 1; 172 188 if (!ShieldingPAS.WriteLastMatrix(argv[1], (prefix.str()).c_str(), ShieldingPASSuffix)) return 1; 189 if (!Chi.WriteLastMatrix(argv[1], (prefix.str()).c_str(), ChiSuffix)) return 1; 190 if (!ChiPAS.WriteLastMatrix(argv[1], (prefix.str()).c_str(), ChiPASSuffix)) return 1; 173 191 } 174 192 } … … 198 216 prefix << dir << ShieldingPASFragmentSuffix; 199 217 if (!ShieldingPASFragments.WriteTotalFragments(argv[1], (prefix.str()).c_str())) return 1; 218 prefix.str(" "); 219 prefix << dir << ChiFragmentSuffix; 220 if (!ChiFragments.WriteTotalFragments(argv[1], (prefix.str()).c_str())) return 1; 221 prefix.str(" "); 222 prefix << dir << ChiPASFragmentSuffix; 223 if (!ChiPASFragments.WriteTotalFragments(argv[1], (prefix.str()).c_str())) return 1; 200 224 } 201 225 … … 209 233 if (!Shielding.WriteLastMatrix(argv[1], dir, ShieldingFragmentSuffix)) return 1; 210 234 if (!ShieldingPAS.WriteLastMatrix(argv[1], dir, ShieldingPASFragmentSuffix)) return 1; 235 if (!Chi.WriteLastMatrix(argv[1], dir, ChiFragmentSuffix)) return 1; 236 if (!ChiPAS.WriteLastMatrix(argv[1], dir, ChiPASFragmentSuffix)) return 1; 211 237 } 212 238 -
molecuilder/src/parser.hpp
r5fd79e r348b6a 31 31 #define ShieldingFragmentSuffix ".sigma_all_fragment.all" 32 32 #define ShieldingPASFragmentSuffix ".sigma_all_PAS_fragment.all" 33 #define ChiSuffix ".chi_all.csv" 34 #define ChiPASSuffix ".chi_all_PAS.csv" 35 #define ChiFragmentSuffix ".chi_all_fragment.all" 36 #define ChiPASFragmentSuffix ".chi_all_PAS_fragment.all" 33 37 #define TimeSuffix ".speed" 34 38
Note:
See TracChangeset
for help on using the changeset viewer.