Changeset 17b3a5c for molecuilder/src/datacreator.cpp
- Timestamp:
- Oct 9, 2009, 10:54:52 AM (16 years ago)
- Children:
- 3efb4a
- Parents:
- 70b7aa
- File:
-
- 1 edited
-
molecuilder/src/datacreator.cpp (modified) (35 diffs)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/datacreator.cpp
r70b7aa r17b3a5c 8 8 9 9 #include "datacreator.hpp" 10 #include "helpers.hpp" 11 #include "parser.hpp" 10 12 11 13 //=========================== FUNCTIONS============================ … … 49 51 /** Plots an energy vs. order. 50 52 * \param &Fragments EnergyMatrix class containing matrix values 51 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order53 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 52 54 * \param *prefix prefix in filename (without ending) 53 55 * \param *msg message to be place in first line as a comment 54 56 * \return true if file was written successfully 55 57 */ 56 bool CreateDataEnergyOrder(class EnergyMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)58 bool CreateDataEnergyOrder(class EnergyMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 57 59 { 58 60 stringstream filename; … … 64 66 output << "# " << msg << ", created on " << datum; 65 67 output << "#Order\tFrag.No.\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 66 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {67 for(int i=KeySet .FragmentsPerOrder[BondOrder];i--;) {68 for(int j=Fragments.RowCounter[ KeySet .OrderSet[BondOrder][i] ];j--;)69 for(int k=Fragments.ColumnCounter[ KeySet .OrderSet[BondOrder][i] ];k--;)70 Fragments.Matrix[Fragments.MatrixCounter][j][k] += Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][k];71 } 72 output << BondOrder+1 << "\t" << KeySet .FragmentsPerOrder[BondOrder];68 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 69 for(int i=KeySets.FragmentsPerOrder[BondOrder];i--;) { 70 for(int j=Fragments.RowCounter[ KeySets.OrderSet[BondOrder][i] ];j--;) 71 for(int k=Fragments.ColumnCounter[ KeySets.OrderSet[BondOrder][i] ];k--;) 72 Fragments.Matrix[Fragments.MatrixCounter][j][k] += Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][k]; 73 } 74 output << BondOrder+1 << "\t" << KeySets.FragmentsPerOrder[BondOrder]; 73 75 for (int l=0;l<Fragments.ColumnCounter[Fragments.MatrixCounter];l++) 74 76 output << scientific << "\t" << Fragments.Matrix[Fragments.MatrixCounter][ Fragments.RowCounter[Fragments.MatrixCounter]-1 ][l]; … … 82 84 * \param &Energy EnergyMatrix class containing reference values (in MatrixCounter matrix) 83 85 * \param &Fragments EnergyMatrix class containing matrix values 84 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order86 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 85 87 * \param *prefix prefix in filename (without ending) 86 88 * \param *msg message to be place in first line as a comment 87 89 * \return true if file was written successfully 88 90 */ 89 bool CreateDataDeltaEnergyOrder(class EnergyMatrix &Energy, class EnergyMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)91 bool CreateDataDeltaEnergyOrder(class EnergyMatrix &Energy, class EnergyMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 90 92 { 91 93 stringstream filename; … … 98 100 output << "#Order\tFrag.No.\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 99 101 Fragments.SetLastMatrix(Energy.Matrix[Energy.MatrixCounter],0); 100 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {101 for(int i=KeySet .FragmentsPerOrder[BondOrder];i--;) {102 for(int j=Fragments.RowCounter[ KeySet .OrderSet[BondOrder][i] ];j--;)103 for(int k=Fragments.ColumnCounter[ KeySet .OrderSet[BondOrder][i] ];k--;)104 Fragments.Matrix[Fragments.MatrixCounter][j][k] -= Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][k];105 } 106 output << BondOrder+1 << "\t" << KeySet .FragmentsPerOrder[BondOrder];102 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 103 for(int i=KeySets.FragmentsPerOrder[BondOrder];i--;) { 104 for(int j=Fragments.RowCounter[ KeySets.OrderSet[BondOrder][i] ];j--;) 105 for(int k=Fragments.ColumnCounter[ KeySets.OrderSet[BondOrder][i] ];k--;) 106 Fragments.Matrix[Fragments.MatrixCounter][j][k] -= Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][k]; 107 } 108 output << BondOrder+1 << "\t" << KeySets.FragmentsPerOrder[BondOrder]; 107 109 for (int l=0;l<Fragments.ColumnCounter[Energy.MatrixCounter];l++) 108 110 if (fabs(Energy.Matrix[Energy.MatrixCounter][ Energy.RowCounter[Energy.MatrixCounter]-1 ][l]) < MYEPSILON) … … 118 120 /** Plot forces vs. order. 119 121 * \param &Fragments ForceMatrix class containing matrix values 120 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order122 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 121 123 * \param *prefix prefix in filename (without ending) 122 124 * \param *msg message to be place in first line as a comment … … 124 126 * \return true if file was written successfully 125 127 */ 126 bool CreateDataForcesOrder(class ForceMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix,const char *msg, const char *datum, void (*CreateForce)(class MatrixContainer &, int))128 bool CreateDataForcesOrder(class ForceMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix,const char *msg, const char *datum, void (*CreateForce)(class MatrixContainer &, int)) 127 129 { 128 130 stringstream filename; … … 135 137 output << "# Order\tFrag.No.\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 136 138 Fragments.SetLastMatrix(0.,0); 137 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {138 Fragments.SumSubForces(Fragments, KeySet , BondOrder, 1.);139 output << BondOrder+1 << "\t" << KeySet .FragmentsPerOrder[BondOrder];139 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 140 Fragments.SumSubForces(Fragments, KeySets, BondOrder, 1.); 141 output << BondOrder+1 << "\t" << KeySets.FragmentsPerOrder[BondOrder]; 140 142 CreateForce(Fragments, Fragments.MatrixCounter); 141 143 for (int l=0;l<Fragments.ColumnCounter[Fragments.MatrixCounter];l++) … … 150 152 * \param &Force ForceMatrix containing reference values (in MatrixCounter matrix) 151 153 * \param &Fragments ForceMatrix class containing matrix values 152 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order154 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 153 155 * \param *prefix prefix in filename (without ending) 154 156 * \param *msg message to be place in first line as a comment … … 156 158 * \return true if file was written successfully 157 159 */ 158 bool CreateDataDeltaForcesOrder(class ForceMatrix &Force, class ForceMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateForce)(class MatrixContainer &, int))160 bool CreateDataDeltaForcesOrder(class ForceMatrix &Force, class ForceMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateForce)(class MatrixContainer &, int)) 159 161 { 160 162 stringstream filename; … … 167 169 output << "# Order\tFrag.No.\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 168 170 Fragments.SetLastMatrix(Force.Matrix[Force.MatrixCounter],0); 169 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {170 Fragments.SumSubForces(Fragments, KeySet , BondOrder, -1.);171 output << BondOrder+1 << "\t" << KeySet .FragmentsPerOrder[BondOrder];171 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 172 Fragments.SumSubForces(Fragments, KeySets, BondOrder, -1.); 173 output << BondOrder+1 << "\t" << KeySets.FragmentsPerOrder[BondOrder]; 172 174 CreateForce(Fragments, Fragments.MatrixCounter); 173 175 for (int l=0;l<Fragments.ColumnCounter[Fragments.MatrixCounter];l++) … … 182 184 * \param &Force ForceMatrix containing reference values (in MatrixCounter matrix) 183 185 * \param &Fragments ForceMatrix class containing matrix values 184 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order186 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 185 187 * \param *prefix prefix in filename (without ending) 186 188 * \param *msg message to be place in first line as a comment … … 188 190 * \return true if file was written successfully 189 191 */ 190 bool CreateDataDeltaForcesOrderPerAtom(class ForceMatrix &Force, class ForceMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)192 bool CreateDataDeltaForcesOrderPerAtom(class ForceMatrix &Force, class ForceMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 191 193 { 192 194 stringstream filename; … … 200 202 output << "# AtomNo\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 201 203 Fragments.SetLastMatrix(Force.Matrix[Force.MatrixCounter], 0); 202 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {204 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 203 205 //cout << "Current order is " << BondOrder << "." << endl; 204 Fragments.SumSubForces(Fragments, KeySet , BondOrder, -1.);206 Fragments.SumSubForces(Fragments, KeySets, BondOrder, -1.); 205 207 // errors per atom 206 208 output << endl << "#Order\t" << BondOrder+1 << endl; … … 229 231 /** Plot forces error vs. vs atom vs. order. 230 232 * \param &Fragments ForceMatrix class containing matrix values 231 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order233 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 232 234 * \param *prefix prefix in filename (without ending) 233 235 * \param *msg message to be place in first line as a comment … … 235 237 * \return true if file was written successfully 236 238 */ 237 bool CreateDataForcesOrderPerAtom(class ForceMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)239 bool CreateDataForcesOrderPerAtom(class ForceMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 238 240 { 239 241 stringstream filename; … … 245 247 output << "# " << msg << ", created on " << datum; 246 248 output << "# AtomNo\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 247 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {249 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 248 250 //cout << "Current order is " << BondOrder << "." << endl; 249 Fragments.SumSubForces(Fragments, KeySet , BondOrder, 1.);251 Fragments.SumSubForces(Fragments, KeySets, BondOrder, 1.); 250 252 // errors per atom 251 253 output << endl << "#Order\t" << BondOrder+1 << endl; … … 266 268 * \param &Hessian HessianMatrix containing reference values (in MatrixCounter matrix) 267 269 * \param &Fragments HessianMatrix class containing matrix values 268 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order270 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 269 271 * \param *prefix prefix in filename (without ending) 270 272 * \param *msg message to be place in first line as a comment … … 272 274 * \return true if file was written successfully 273 275 */ 274 bool CreateDataDeltaHessianOrderPerAtom(class HessianMatrix &Hessian, class HessianMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)276 bool CreateDataDeltaHessianOrderPerAtom(class HessianMatrix &Hessian, class HessianMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 275 277 { 276 278 stringstream filename; … … 283 285 output << "# AtomNo\t" << Fragments.Header[Fragments.MatrixCounter] << endl; 284 286 Fragments.SetLastMatrix(Hessian.Matrix[Hessian.MatrixCounter], 0); 285 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {287 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 286 288 //cout << "Current order is " << BondOrder << "." << endl; 287 Fragments.SumSubHessians(Fragments, KeySet , BondOrder, -1.);289 Fragments.SumSubHessians(Fragments, KeySets, BondOrder, -1.); 288 290 // errors per atom 289 291 output << endl << "#Order\t" << BondOrder+1 << endl; … … 304 306 * \param &Hessian HessianMatrix containing reference values (in MatrixCounter matrix) 305 307 * \param &Fragments HessianMatrix class containing matrix values 306 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order308 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 307 309 * \param *prefix prefix in filename (without ending) 308 310 * \param *msg message to be place in first line as a comment … … 310 312 * \return true if file was written successfully 311 313 */ 312 bool CreateDataDeltaFrobeniusOrderPerAtom(class HessianMatrix &Hessian, class HessianMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)314 bool CreateDataDeltaFrobeniusOrderPerAtom(class HessianMatrix &Hessian, class HessianMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 313 315 { 314 316 stringstream filename; … … 323 325 output << "# AtomNo\t"; 324 326 Fragments.SetLastMatrix(Hessian.Matrix[Hessian.MatrixCounter], 0); 325 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {327 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 326 328 output << "Order" << BondOrder+1 << "\t"; 327 329 } 328 330 output << endl; 329 331 output << Fragments.RowCounter[ Fragments.MatrixCounter ] << "\t"; 330 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {332 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 331 333 //cout << "Current order is " << BondOrder << "." << endl; 332 Fragments.SumSubHessians(Fragments, KeySet , BondOrder, -1.);334 Fragments.SumSubHessians(Fragments, KeySets, BondOrder, -1.); 333 335 // frobenius norm of errors per atom 334 336 norm = 0.; … … 348 350 /** Plot hessian error vs. vs atom vs. order. 349 351 * \param &Fragments HessianMatrix class containing matrix values 350 * \param KeySet KeySetContainer class holding bond KeySetContainer::Order352 * \param KeySets KeySetContainer class holding bond KeySetContainer::Order 351 353 * \param *prefix prefix in filename (without ending) 352 354 * \param *msg message to be place in first line as a comment … … 354 356 * \return true if file was written successfully 355 357 */ 356 bool CreateDataHessianOrderPerAtom(class HessianMatrix &Fragments, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum)358 bool CreateDataHessianOrderPerAtom(class HessianMatrix &Fragments, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum) 357 359 { 358 360 stringstream filename; … … 365 367 output << "# AtomNo\t" << Fragments.Header[ Fragments.MatrixCounter ] << endl; 366 368 Fragments.SetLastMatrix(0., 0); 367 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {369 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 368 370 //cout << "Current order is " << BondOrder << "." << endl; 369 Fragments.SumSubHessians(Fragments, KeySet , BondOrder, 1.);371 Fragments.SumSubHessians(Fragments, KeySets, BondOrder, 1.); 370 372 // errors per atom 371 373 output << endl << "#Order\t" << BondOrder+1 << endl; … … 384 386 /** Plot matrix vs. fragment. 385 387 */ 386 bool CreateDataFragment(class MatrixContainer &Fragment, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateFragment)(class MatrixContainer &, int))388 bool CreateDataFragment(class MatrixContainer &Fragment, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateFragment)(class MatrixContainer &, int)) 387 389 { 388 390 stringstream filename; … … 394 396 output << "# " << msg << ", created on " << datum << endl; 395 397 output << "#Order\tFrag.No.\t" << Fragment.Header[ Fragment.MatrixCounter ] << endl; 396 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {397 for(int i=0;i<KeySet .FragmentsPerOrder[BondOrder];i++) {398 output << BondOrder+1 << "\t" << KeySet .OrderSet[BondOrder][i]+1;399 CreateFragment(Fragment, KeySet .OrderSet[BondOrder][i]);400 for (int l=0;l<Fragment.ColumnCounter[ KeySet .OrderSet[BondOrder][i] ];l++)401 output << scientific << "\t" << Fragment.Matrix[ KeySet .OrderSet[BondOrder][i] ][ Fragment.RowCounter[ KeySet.OrderSet[BondOrder][i] ] ][l];398 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 399 for(int i=0;i<KeySets.FragmentsPerOrder[BondOrder];i++) { 400 output << BondOrder+1 << "\t" << KeySets.OrderSet[BondOrder][i]+1; 401 CreateFragment(Fragment, KeySets.OrderSet[BondOrder][i]); 402 for (int l=0;l<Fragment.ColumnCounter[ KeySets.OrderSet[BondOrder][i] ];l++) 403 output << scientific << "\t" << Fragment.Matrix[ KeySets.OrderSet[BondOrder][i] ][ Fragment.RowCounter[ KeySets.OrderSet[BondOrder][i] ] ][l]; 402 404 output << endl; 403 405 } … … 409 411 /** Copies fragment energy values into last matrix of \a Matrix with greatest total energy. 410 412 * \param &Matrix MatrixContainer with all fragment energy values 411 * \param &KeySet KeySetsContainer with associations of each fragment to a bond order413 * \param &KeySets KeySetsContainer with associations of each fragment to a bond order 412 414 * \param BondOrder current bond order 413 415 */ 414 void CreateMaxFragmentOrder(class MatrixContainer &Fragments, class KeySetsContainer &KeySet , int BondOrder)416 void CreateMaxFragmentOrder(class MatrixContainer &Fragments, class KeySetsContainer &KeySets, int BondOrder) 415 417 { 416 418 for(int j=Fragments.RowCounter[ Fragments.MatrixCounter ];j--;) { 417 for(int i=KeySet .FragmentsPerOrder[BondOrder];i--;) {418 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) < fabs(Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][1])) {419 for(int i=KeySets.FragmentsPerOrder[BondOrder];i--;) { 420 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) < fabs(Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][1])) { 419 421 for (int k=Fragments.ColumnCounter[ Fragments.MatrixCounter ];k--;) 420 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][k];422 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][k]; 421 423 } 422 424 } … … 426 428 /** Copies fragment energy values into last matrix of \a Matrix with smallest total energy. 427 429 * \param &Matrix MatrixContainer with all fragment energy values 428 * \param &KeySet KeySetsContainer with associations of each fragment to a bond order430 * \param &KeySets KeySetsContainer with associations of each fragment to a bond order 429 431 * \param BondOrder current bond order 430 432 */ 431 void CreateMinFragmentOrder(class MatrixContainer &Fragments, class KeySetsContainer &KeySet , int BondOrder)433 void CreateMinFragmentOrder(class MatrixContainer &Fragments, class KeySetsContainer &KeySets, int BondOrder) 432 434 { 433 435 for(int j=0;j<Fragments.RowCounter[ Fragments.MatrixCounter ];j++) { … … 435 437 do { // first get a minimum value unequal to 0 436 438 for (int k=Fragments.ColumnCounter[ Fragments.MatrixCounter ];k--;) 437 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][k];439 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][k]; 438 440 i++; 439 } while ((fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) < MYEPSILON) && (i<KeySet .FragmentsPerOrder[BondOrder]));440 for(;i<KeySet .FragmentsPerOrder[BondOrder];i++) { // then find lowest441 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) > fabs(Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][1])) {441 } while ((fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) < MYEPSILON) && (i<KeySets.FragmentsPerOrder[BondOrder])); 442 for(;i<KeySets.FragmentsPerOrder[BondOrder];i++) { // then find lowest 443 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) > fabs(Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][1])) { 442 444 for (int k=Fragments.ColumnCounter[ Fragments.MatrixCounter ];k--;) 443 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet .OrderSet[BondOrder][i] ][j][k];445 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySets.OrderSet[BondOrder][i] ][j][k]; 444 446 } 445 447 } … … 449 451 /** Plot matrix vs. fragment. 450 452 */ 451 bool CreateDataFragmentOrder(class MatrixContainer &Fragment, class KeySetsContainer &KeySet , const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateFragmentOrder)(class MatrixContainer &, class KeySetsContainer &, int))453 bool CreateDataFragmentOrder(class MatrixContainer &Fragment, class KeySetsContainer &KeySets, const char *dir, const char *prefix, const char *msg, const char *datum, void (*CreateFragmentOrder)(class MatrixContainer &, class KeySetsContainer &, int)) 452 454 { 453 455 stringstream filename; … … 460 462 output << "#Order\tFrag.No.\t" << Fragment.Header[ Fragment.MatrixCounter ] << endl; 461 463 // max 462 for (int BondOrder=0;BondOrder<KeySet .Order;BondOrder++) {464 for (int BondOrder=0;BondOrder<KeySets.Order;BondOrder++) { 463 465 Fragment.SetLastMatrix(0.,0); 464 CreateFragmentOrder(Fragment, KeySet , BondOrder);465 output << BondOrder+1 << "\t" << KeySet .FragmentsPerOrder[BondOrder];466 CreateFragmentOrder(Fragment, KeySets, BondOrder); 467 output << BondOrder+1 << "\t" << KeySets.FragmentsPerOrder[BondOrder]; 466 468 for (int l=0;l<Fragment.ColumnCounter[ Fragment.MatrixCounter ];l++) 467 469 output << scientific << "\t" << Fragment.Matrix[ Fragment.MatrixCounter ][ Fragment.RowCounter[ Fragment.MatrixCounter ]-1 ][l]; … … 618 620 /** Creates the pyxplotfile for energy data. 619 621 * \param Matrix MatrixContainer with matrix values 620 * \param KeySet contains bond order622 * \param KeySets contains bond order 621 623 * \param *dir directory 622 624 * \param *prefix prefix for all filenames (without ending) … … 635 637 * \return true if file was written successfully 636 638 */ 637 bool CreatePlotOrder(class MatrixContainer &Matrix, const class KeySetsContainer &KeySet , const char *dir, const char *prefix, const int keycolumns, const char *key, const char *logscale, const char *extraline, const int mxtics, const int xtics, const char *xlabel, const char *ylabel, const char *xrange, const char *yrange, const char *xargument, const char *uses, void (*CreatePlotLines)(ofstream &, class MatrixContainer &, const char *, const char *, const char *))639 bool CreatePlotOrder(class MatrixContainer &Matrix, const class KeySetsContainer &KeySets, const char *dir, const char *prefix, const int keycolumns, const char *key, const char *logscale, const char *extraline, const int mxtics, const int xtics, const char *xlabel, const char *ylabel, const char *xrange, const char *yrange, const char *xargument, const char *uses, void (*CreatePlotLines)(ofstream &, class MatrixContainer &, const char *, const char *, const char *)) 638 640 { 639 641 stringstream filename;
Note:
See TracChangeset
for help on using the changeset viewer.
