Changes in src/config.cpp [49e1ae:a67d19]
- File:
-
- 1 edited
-
src/config.cpp (modified) (43 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/config.cpp
r49e1ae ra67d19 19 19 #include "molecule.hpp" 20 20 #include "periodentafel.hpp" 21 #include "World.hpp" 21 22 22 23 /******************************** Functions for class ConfigFileBuffer **********************/ … … 73 74 file= new ifstream(filename); 74 75 if (file == NULL) { 75 eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;76 DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl); 76 77 return; 77 78 } … … 84 85 file->clear(); 85 86 file->seekg(file_position, ios::beg); 86 Log() << Verbose(1) << NoLines-1 << " lines were recognized." << endl;87 DoLog(1) && (Log() << Verbose(1) << NoLines-1 << " lines were recognized." << endl); 87 88 88 89 // allocate buffer's 1st dimension 89 90 if (buffer != NULL) { 90 eLog() << Verbose(1) << "FileBuffer->buffer is not NULL!" << endl;91 DoeLog(1) && (eLog()<< Verbose(1) << "FileBuffer->buffer is not NULL!" << endl); 91 92 return; 92 93 } else … … 104 105 lines++; 105 106 } while((!file->eof()) && (lines < NoLines)); 106 Log() << Verbose(1) << lines-1 << " lines were read into the buffer." << endl;107 DoLog(1) && (Log() << Verbose(1) << lines-1 << " lines were read into the buffer." << endl); 107 108 108 109 // close and exit … … 143 144 map<const char *, int, IonTypeCompare> IonTypeLineMap; 144 145 if (LineMapping == NULL) { 145 eLog() << Verbose(0) << "map pointer is NULL: " << LineMapping << endl;146 DoeLog(0) && (eLog()<< Verbose(0) << "map pointer is NULL: " << LineMapping << endl); 146 147 performCriticalExit(); 147 148 return; … … 159 160 LineMapping[CurrentLine+(nr++)] = runner->second; 160 161 else { 161 eLog() << Verbose(0) << "config::MapIonTypesInBuffer - NoAtoms is wrong: We are past the end of the file!" << endl;162 DoeLog(0) && (eLog()<< Verbose(0) << "config::MapIonTypesInBuffer - NoAtoms is wrong: We are past the end of the file!" << endl); 162 163 performCriticalExit(); 163 164 } … … 249 250 Thermostat = None; 250 251 } else { 251 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;252 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 252 253 Thermostat = None; 253 254 } … … 257 258 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read scaling frequency 258 259 } else { 259 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;260 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 260 261 Thermostat = None; 261 262 } … … 265 266 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read collision rate 266 267 } else { 267 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;268 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 268 269 Thermostat = None; 269 270 } … … 273 274 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read gamma 274 275 if (ParseForParameter(verbose,fb,"Thermostat", 0, 3, 1, double_type, &alpha, 1, optional)) { 275 Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << alpha << "." << endl;276 DoLog(2) && (Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << alpha << "." << endl); 276 277 } else { 277 278 alpha = 1.; 278 279 } 279 280 } else { 280 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;281 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 281 282 Thermostat = None; 282 283 } … … 286 287 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read \tau_T 287 288 } else { 288 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;289 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 289 290 Thermostat = None; 290 291 } … … 295 296 alpha = 0.; 296 297 } else { 297 Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;298 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 298 299 Thermostat = None; 299 300 } 300 301 } else { 301 Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl;302 DoLog(1) && (Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl); 302 303 Thermostat = None; 303 304 } 304 305 } else { 305 306 if ((MaxOuterStep > 0) && (TargetTemp != 0)) 306 Log() << Verbose(2) << "No thermostat chosen despite finite temperature MD, falling back to None." << endl;307 DoLog(2) && (Log() << Verbose(2) << "No thermostat chosen despite finite temperature MD, falling back to None." << endl); 307 308 Thermostat = None; 308 309 } … … 320 321 321 322 do { 322 Log() << Verbose(0) << "===========EDIT CONFIGURATION============================" << endl;323 Log() << Verbose(0) << " A - mainname (prefix for all runtime files)" << endl;324 Log() << Verbose(0) << " B - Default path (for runtime files)" << endl;325 Log() << Verbose(0) << " C - Path of pseudopotential files" << endl;326 Log() << Verbose(0) << " D - Number of coefficient sharing processes" << endl;327 Log() << Verbose(0) << " E - Number of wave function sharing processes" << endl;328 Log() << Verbose(0) << " F - 0: Don't output density for OpenDX, 1: do" << endl;329 Log() << Verbose(0) << " G - 0: Don't output physical data, 1: do" << endl;330 Log() << Verbose(0) << " H - 0: Don't output densities of each unperturbed orbital for OpenDX, 1: do" << endl;331 Log() << Verbose(0) << " I - 0: Don't output current density for OpenDX, 1: do" << endl;332 Log() << Verbose(0) << " J - 0: Don't do the full current calculation, 1: do" << endl;333 Log() << Verbose(0) << " K - 0: Don't do perturbation calculation to obtain susceptibility and shielding, 1: do" << endl;334 Log() << Verbose(0) << " L - 0: Wannier centres as calculated, 1: common centre for all, 2: unite centres according to spread, 3: cell centre, 4: shifted to nearest grid point" << endl;335 Log() << Verbose(0) << " M - Absolute begin of unphysical sawtooth transfer for position operator within cell" << endl;336 Log() << Verbose(0) << " N - (0,1,2) x,y,z-plane to do two-dimensional current vector cut" << endl;337 Log() << Verbose(0) << " O - Absolute position along vector cut axis for cut plane" << endl;338 Log() << Verbose(0) << " P - Additional Gram-Schmidt-Orthonormalization to stabilize numerics" << endl;339 Log() << Verbose(0) << " Q - Initial integer value of random number generator" << endl;340 Log() << Verbose(0) << " R - for perturbation 0, for structure optimization defines upper limit of iterations" << endl;341 Log() << Verbose(0) << " T - Output visual after ...th step" << endl;342 Log() << Verbose(0) << " U - Output source densities of wave functions after ...th step" << endl;343 Log() << Verbose(0) << " X - minimization iterations per wave function, if unsure leave at default value 0" << endl;344 Log() << Verbose(0) << " Y - tolerance value for total spread in iterative Jacobi diagonalization" << endl;345 Log() << Verbose(0) << " Z - Maximum number of minimization iterations" << endl;346 Log() << Verbose(0) << " a - Relative change in total energy to stop min. iteration" << endl;347 Log() << Verbose(0) << " b - Relative change in kinetic energy to stop min. iteration" << endl;348 Log() << Verbose(0) << " c - Check stop conditions every ..th step during min. iteration" << endl;349 Log() << Verbose(0) << " e - Maximum number of minimization iterations during initial level" << endl;350 Log() << Verbose(0) << " f - Relative change in total energy to stop min. iteration during initial level" << endl;351 Log() << Verbose(0) << " g - Relative change in kinetic energy to stop min. iteration during initial level" << endl;352 Log() << Verbose(0) << " h - Check stop conditions every ..th step during min. iteration during initial level" << endl;323 DoLog(0) && (Log() << Verbose(0) << "===========EDIT CONFIGURATION============================" << endl); 324 DoLog(0) && (Log() << Verbose(0) << " A - mainname (prefix for all runtime files)" << endl); 325 DoLog(0) && (Log() << Verbose(0) << " B - Default path (for runtime files)" << endl); 326 DoLog(0) && (Log() << Verbose(0) << " C - Path of pseudopotential files" << endl); 327 DoLog(0) && (Log() << Verbose(0) << " D - Number of coefficient sharing processes" << endl); 328 DoLog(0) && (Log() << Verbose(0) << " E - Number of wave function sharing processes" << endl); 329 DoLog(0) && (Log() << Verbose(0) << " F - 0: Don't output density for OpenDX, 1: do" << endl); 330 DoLog(0) && (Log() << Verbose(0) << " G - 0: Don't output physical data, 1: do" << endl); 331 DoLog(0) && (Log() << Verbose(0) << " H - 0: Don't output densities of each unperturbed orbital for OpenDX, 1: do" << endl); 332 DoLog(0) && (Log() << Verbose(0) << " I - 0: Don't output current density for OpenDX, 1: do" << endl); 333 DoLog(0) && (Log() << Verbose(0) << " J - 0: Don't do the full current calculation, 1: do" << endl); 334 DoLog(0) && (Log() << Verbose(0) << " K - 0: Don't do perturbation calculation to obtain susceptibility and shielding, 1: do" << endl); 335 DoLog(0) && (Log() << Verbose(0) << " L - 0: Wannier centres as calculated, 1: common centre for all, 2: unite centres according to spread, 3: cell centre, 4: shifted to nearest grid point" << endl); 336 DoLog(0) && (Log() << Verbose(0) << " M - Absolute begin of unphysical sawtooth transfer for position operator within cell" << endl); 337 DoLog(0) && (Log() << Verbose(0) << " N - (0,1,2) x,y,z-plane to do two-dimensional current vector cut" << endl); 338 DoLog(0) && (Log() << Verbose(0) << " O - Absolute position along vector cut axis for cut plane" << endl); 339 DoLog(0) && (Log() << Verbose(0) << " P - Additional Gram-Schmidt-Orthonormalization to stabilize numerics" << endl); 340 DoLog(0) && (Log() << Verbose(0) << " Q - Initial integer value of random number generator" << endl); 341 DoLog(0) && (Log() << Verbose(0) << " R - for perturbation 0, for structure optimization defines upper limit of iterations" << endl); 342 DoLog(0) && (Log() << Verbose(0) << " T - Output visual after ...th step" << endl); 343 DoLog(0) && (Log() << Verbose(0) << " U - Output source densities of wave functions after ...th step" << endl); 344 DoLog(0) && (Log() << Verbose(0) << " X - minimization iterations per wave function, if unsure leave at default value 0" << endl); 345 DoLog(0) && (Log() << Verbose(0) << " Y - tolerance value for total spread in iterative Jacobi diagonalization" << endl); 346 DoLog(0) && (Log() << Verbose(0) << " Z - Maximum number of minimization iterations" << endl); 347 DoLog(0) && (Log() << Verbose(0) << " a - Relative change in total energy to stop min. iteration" << endl); 348 DoLog(0) && (Log() << Verbose(0) << " b - Relative change in kinetic energy to stop min. iteration" << endl); 349 DoLog(0) && (Log() << Verbose(0) << " c - Check stop conditions every ..th step during min. iteration" << endl); 350 DoLog(0) && (Log() << Verbose(0) << " e - Maximum number of minimization iterations during initial level" << endl); 351 DoLog(0) && (Log() << Verbose(0) << " f - Relative change in total energy to stop min. iteration during initial level" << endl); 352 DoLog(0) && (Log() << Verbose(0) << " g - Relative change in kinetic energy to stop min. iteration during initial level" << endl); 353 DoLog(0) && (Log() << Verbose(0) << " h - Check stop conditions every ..th step during min. iteration during initial level" << endl); 353 354 // Log() << Verbose(0) << " j - six lower diagonal entries of matrix, defining the unit cell" << endl; 354 Log() << Verbose(0) << " k - Energy cutoff of plane wave basis in Hartree" << endl;355 Log() << Verbose(0) << " l - Maximum number of levels in multi-level-ansatz" << endl;356 Log() << Verbose(0) << " m - Factor by which grid nodes increase between standard and upper level" << endl;357 Log() << Verbose(0) << " n - 0: Don't use RiemannTensor, 1: Do" << endl;358 Log() << Verbose(0) << " o - Factor by which grid nodes increase between Riemann and standard(?) level" << endl;359 Log() << Verbose(0) << " p - Number of Riemann levels" << endl;360 Log() << Verbose(0) << " r - 0: Don't Use RiemannTensor, 1: Do" << endl;361 Log() << Verbose(0) << " s - 0: Doubly occupied orbitals, 1: Up-/Down-Orbitals" << endl;362 Log() << Verbose(0) << " t - Number of orbitals (depends pn SpinType)" << endl;363 Log() << Verbose(0) << " u - Number of SpinUp orbitals (depends on SpinType)" << endl;364 Log() << Verbose(0) << " v - Number of SpinDown orbitals (depends on SpinType)" << endl;365 Log() << Verbose(0) << " w - Number of additional, unoccupied orbitals" << endl;366 Log() << Verbose(0) << " x - radial cutoff for ewald summation in Bohrradii" << endl;367 Log() << Verbose(0) << " y - 0: Don't do structure optimization beforehand, 1: Do" << endl;368 Log() << Verbose(0) << " z - 0: Units are in Bohr radii, 1: units are in Aengstrom" << endl;369 Log() << Verbose(0) << " i - 0: Coordinates given in file are absolute, 1: ... are relative to unit cell" << endl;370 Log() << Verbose(0) << "=========================================================" << endl;371 Log() << Verbose(0) << "INPUT: ";355 DoLog(0) && (Log() << Verbose(0) << " k - Energy cutoff of plane wave basis in Hartree" << endl); 356 DoLog(0) && (Log() << Verbose(0) << " l - Maximum number of levels in multi-level-ansatz" << endl); 357 DoLog(0) && (Log() << Verbose(0) << " m - Factor by which grid nodes increase between standard and upper level" << endl); 358 DoLog(0) && (Log() << Verbose(0) << " n - 0: Don't use RiemannTensor, 1: Do" << endl); 359 DoLog(0) && (Log() << Verbose(0) << " o - Factor by which grid nodes increase between Riemann and standard(?) level" << endl); 360 DoLog(0) && (Log() << Verbose(0) << " p - Number of Riemann levels" << endl); 361 DoLog(0) && (Log() << Verbose(0) << " r - 0: Don't Use RiemannTensor, 1: Do" << endl); 362 DoLog(0) && (Log() << Verbose(0) << " s - 0: Doubly occupied orbitals, 1: Up-/Down-Orbitals" << endl); 363 DoLog(0) && (Log() << Verbose(0) << " t - Number of orbitals (depends pn SpinType)" << endl); 364 DoLog(0) && (Log() << Verbose(0) << " u - Number of SpinUp orbitals (depends on SpinType)" << endl); 365 DoLog(0) && (Log() << Verbose(0) << " v - Number of SpinDown orbitals (depends on SpinType)" << endl); 366 DoLog(0) && (Log() << Verbose(0) << " w - Number of additional, unoccupied orbitals" << endl); 367 DoLog(0) && (Log() << Verbose(0) << " x - radial cutoff for ewald summation in Bohrradii" << endl); 368 DoLog(0) && (Log() << Verbose(0) << " y - 0: Don't do structure optimization beforehand, 1: Do" << endl); 369 DoLog(0) && (Log() << Verbose(0) << " z - 0: Units are in Bohr radii, 1: units are in Aengstrom" << endl); 370 DoLog(0) && (Log() << Verbose(0) << " i - 0: Coordinates given in file are absolute, 1: ... are relative to unit cell" << endl); 371 DoLog(0) && (Log() << Verbose(0) << "=========================================================" << endl); 372 DoLog(0) && (Log() << Verbose(0) << "INPUT: "); 372 373 cin >> choice; 373 374 374 375 switch (choice) { 375 376 case 'A': // mainname 376 Log() << Verbose(0) << "Old: " << config::mainname << "\t new: ";377 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::mainname << "\t new: "); 377 378 cin >> config::mainname; 378 379 break; 379 380 case 'B': // defaultpath 380 Log() << Verbose(0) << "Old: " << config::defaultpath << "\t new: ";381 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::defaultpath << "\t new: "); 381 382 cin >> config::defaultpath; 382 383 break; 383 384 case 'C': // pseudopotpath 384 Log() << Verbose(0) << "Old: " << config::pseudopotpath << "\t new: ";385 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::pseudopotpath << "\t new: "); 385 386 cin >> config::pseudopotpath; 386 387 break; 387 388 388 389 case 'D': // ProcPEGamma 389 Log() << Verbose(0) << "Old: " << config::ProcPEGamma << "\t new: ";390 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ProcPEGamma << "\t new: "); 390 391 cin >> config::ProcPEGamma; 391 392 break; 392 393 case 'E': // ProcPEPsi 393 Log() << Verbose(0) << "Old: " << config::ProcPEPsi << "\t new: ";394 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ProcPEPsi << "\t new: "); 394 395 cin >> config::ProcPEPsi; 395 396 break; 396 397 case 'F': // DoOutVis 397 Log() << Verbose(0) << "Old: " << config::DoOutVis << "\t new: ";398 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutVis << "\t new: "); 398 399 cin >> config::DoOutVis; 399 400 break; 400 401 case 'G': // DoOutMes 401 Log() << Verbose(0) << "Old: " << config::DoOutMes << "\t new: ";402 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutMes << "\t new: "); 402 403 cin >> config::DoOutMes; 403 404 break; 404 405 case 'H': // DoOutOrbitals 405 Log() << Verbose(0) << "Old: " << config::DoOutOrbitals << "\t new: ";406 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutOrbitals << "\t new: "); 406 407 cin >> config::DoOutOrbitals; 407 408 break; 408 409 case 'I': // DoOutCurrent 409 Log() << Verbose(0) << "Old: " << config::DoOutCurrent << "\t new: ";410 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutCurrent << "\t new: "); 410 411 cin >> config::DoOutCurrent; 411 412 break; 412 413 case 'J': // DoFullCurrent 413 Log() << Verbose(0) << "Old: " << config::DoFullCurrent << "\t new: ";414 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoFullCurrent << "\t new: "); 414 415 cin >> config::DoFullCurrent; 415 416 break; 416 417 case 'K': // DoPerturbation 417 Log() << Verbose(0) << "Old: " << config::DoPerturbation << "\t new: ";418 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoPerturbation << "\t new: "); 418 419 cin >> config::DoPerturbation; 419 420 break; 420 421 case 'L': // CommonWannier 421 Log() << Verbose(0) << "Old: " << config::CommonWannier << "\t new: ";422 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::CommonWannier << "\t new: "); 422 423 cin >> config::CommonWannier; 423 424 break; 424 425 case 'M': // SawtoothStart 425 Log() << Verbose(0) << "Old: " << config::SawtoothStart << "\t new: ";426 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::SawtoothStart << "\t new: "); 426 427 cin >> config::SawtoothStart; 427 428 break; 428 429 case 'N': // VectorPlane 429 Log() << Verbose(0) << "Old: " << config::VectorPlane << "\t new: ";430 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::VectorPlane << "\t new: "); 430 431 cin >> config::VectorPlane; 431 432 break; 432 433 case 'O': // VectorCut 433 Log() << Verbose(0) << "Old: " << config::VectorCut << "\t new: ";434 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::VectorCut << "\t new: "); 434 435 cin >> config::VectorCut; 435 436 break; 436 437 case 'P': // UseAddGramSch 437 Log() << Verbose(0) << "Old: " << config::UseAddGramSch << "\t new: ";438 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::UseAddGramSch << "\t new: "); 438 439 cin >> config::UseAddGramSch; 439 440 break; 440 441 case 'Q': // Seed 441 Log() << Verbose(0) << "Old: " << config::Seed << "\t new: ";442 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::Seed << "\t new: "); 442 443 cin >> config::Seed; 443 444 break; 444 445 445 446 case 'R': // MaxOuterStep 446 Log() << Verbose(0) << "Old: " << config::MaxOuterStep << "\t new: ";447 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxOuterStep << "\t new: "); 447 448 cin >> config::MaxOuterStep; 448 449 break; 449 450 case 'T': // OutVisStep 450 Log() << Verbose(0) << "Old: " << config::OutVisStep << "\t new: ";451 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::OutVisStep << "\t new: "); 451 452 cin >> config::OutVisStep; 452 453 break; 453 454 case 'U': // OutSrcStep 454 Log() << Verbose(0) << "Old: " << config::OutSrcStep << "\t new: ";455 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::OutSrcStep << "\t new: "); 455 456 cin >> config::OutSrcStep; 456 457 break; 457 458 case 'X': // MaxPsiStep 458 Log() << Verbose(0) << "Old: " << config::MaxPsiStep << "\t new: ";459 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxPsiStep << "\t new: "); 459 460 cin >> config::MaxPsiStep; 460 461 break; 461 462 case 'Y': // EpsWannier 462 Log() << Verbose(0) << "Old: " << config::EpsWannier << "\t new: ";463 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::EpsWannier << "\t new: "); 463 464 cin >> config::EpsWannier; 464 465 break; 465 466 466 467 case 'Z': // MaxMinStep 467 Log() << Verbose(0) << "Old: " << config::MaxMinStep << "\t new: ";468 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxMinStep << "\t new: "); 468 469 cin >> config::MaxMinStep; 469 470 break; 470 471 case 'a': // RelEpsTotalEnergy 471 Log() << Verbose(0) << "Old: " << config::RelEpsTotalEnergy << "\t new: ";472 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelEpsTotalEnergy << "\t new: "); 472 473 cin >> config::RelEpsTotalEnergy; 473 474 break; 474 475 case 'b': // RelEpsKineticEnergy 475 Log() << Verbose(0) << "Old: " << config::RelEpsKineticEnergy << "\t new: ";476 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelEpsKineticEnergy << "\t new: "); 476 477 cin >> config::RelEpsKineticEnergy; 477 478 break; 478 479 case 'c': // MaxMinStopStep 479 Log() << Verbose(0) << "Old: " << config::MaxMinStopStep << "\t new: ";480 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxMinStopStep << "\t new: "); 480 481 cin >> config::MaxMinStopStep; 481 482 break; 482 483 case 'e': // MaxInitMinStep 483 Log() << Verbose(0) << "Old: " << config::MaxInitMinStep << "\t new: ";484 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxInitMinStep << "\t new: "); 484 485 cin >> config::MaxInitMinStep; 485 486 break; 486 487 case 'f': // InitRelEpsTotalEnergy 487 Log() << Verbose(0) << "Old: " << config::InitRelEpsTotalEnergy << "\t new: ";488 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitRelEpsTotalEnergy << "\t new: "); 488 489 cin >> config::InitRelEpsTotalEnergy; 489 490 break; 490 491 case 'g': // InitRelEpsKineticEnergy 491 Log() << Verbose(0) << "Old: " << config::InitRelEpsKineticEnergy << "\t new: ";492 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitRelEpsKineticEnergy << "\t new: "); 492 493 cin >> config::InitRelEpsKineticEnergy; 493 494 break; 494 495 case 'h': // InitMaxMinStopStep 495 Log() << Verbose(0) << "Old: " << config::InitMaxMinStopStep << "\t new: ";496 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitMaxMinStopStep << "\t new: "); 496 497 cin >> config::InitMaxMinStopStep; 497 498 break; … … 499 500 // case 'j': // BoxLength 500 501 // Log() << Verbose(0) << "enter lower triadiagonalo form of basis matrix" << endl << endl; 502 // double * const cell_size = World::get()->cell_size; 501 503 // for (int i=0;i<6;i++) { 502 504 // Log() << Verbose(0) << "Cell size" << i << ": "; 503 // cin >> mol->cell_size[i];505 // cin >> cell_size[i]; 504 506 // } 505 507 // break; 506 508 507 509 case 'k': // ECut 508 Log() << Verbose(0) << "Old: " << config::ECut << "\t new: ";510 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ECut << "\t new: "); 509 511 cin >> config::ECut; 510 512 break; 511 513 case 'l': // MaxLevel 512 Log() << Verbose(0) << "Old: " << config::MaxLevel << "\t new: ";514 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxLevel << "\t new: "); 513 515 cin >> config::MaxLevel; 514 516 break; 515 517 case 'm': // RiemannTensor 516 Log() << Verbose(0) << "Old: " << config::RiemannTensor << "\t new: ";518 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RiemannTensor << "\t new: "); 517 519 cin >> config::RiemannTensor; 518 520 break; 519 521 case 'n': // LevRFactor 520 Log() << Verbose(0) << "Old: " << config::LevRFactor << "\t new: ";522 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::LevRFactor << "\t new: "); 521 523 cin >> config::LevRFactor; 522 524 break; 523 525 case 'o': // RiemannLevel 524 Log() << Verbose(0) << "Old: " << config::RiemannLevel << "\t new: ";526 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RiemannLevel << "\t new: "); 525 527 cin >> config::RiemannLevel; 526 528 break; 527 529 case 'p': // Lev0Factor 528 Log() << Verbose(0) << "Old: " << config::Lev0Factor << "\t new: ";530 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::Lev0Factor << "\t new: "); 529 531 cin >> config::Lev0Factor; 530 532 break; 531 533 case 'r': // RTActualUse 532 Log() << Verbose(0) << "Old: " << config::RTActualUse << "\t new: ";534 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RTActualUse << "\t new: "); 533 535 cin >> config::RTActualUse; 534 536 break; 535 537 case 's': // PsiType 536 Log() << Verbose(0) << "Old: " << config::PsiType << "\t new: ";538 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiType << "\t new: "); 537 539 cin >> config::PsiType; 538 540 break; 539 541 case 't': // MaxPsiDouble 540 Log() << Verbose(0) << "Old: " << config::MaxPsiDouble << "\t new: ";542 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxPsiDouble << "\t new: "); 541 543 cin >> config::MaxPsiDouble; 542 544 break; 543 545 case 'u': // PsiMaxNoUp 544 Log() << Verbose(0) << "Old: " << config::PsiMaxNoUp << "\t new: ";546 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiMaxNoUp << "\t new: "); 545 547 cin >> config::PsiMaxNoUp; 546 548 break; 547 549 case 'v': // PsiMaxNoDown 548 Log() << Verbose(0) << "Old: " << config::PsiMaxNoDown << "\t new: ";550 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiMaxNoDown << "\t new: "); 549 551 cin >> config::PsiMaxNoDown; 550 552 break; 551 553 case 'w': // AddPsis 552 Log() << Verbose(0) << "Old: " << config::AddPsis << "\t new: ";554 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::AddPsis << "\t new: "); 553 555 cin >> config::AddPsis; 554 556 break; 555 557 556 558 case 'x': // RCut 557 Log() << Verbose(0) << "Old: " << config::RCut << "\t new: ";559 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RCut << "\t new: "); 558 560 cin >> config::RCut; 559 561 break; 560 562 case 'y': // StructOpt 561 Log() << Verbose(0) << "Old: " << config::StructOpt << "\t new: ";563 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::StructOpt << "\t new: "); 562 564 cin >> config::StructOpt; 563 565 break; 564 566 case 'z': // IsAngstroem 565 Log() << Verbose(0) << "Old: " << config::IsAngstroem << "\t new: ";567 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::IsAngstroem << "\t new: "); 566 568 cin >> config::IsAngstroem; 567 569 break; 568 570 case 'i': // RelativeCoord 569 Log() << Verbose(0) << "Old: " << config::RelativeCoord << "\t new: ";571 DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelativeCoord << "\t new: "); 570 572 cin >> config::RelativeCoord; 571 573 break; … … 646 648 } 647 649 strcpy(configname, ptr); 648 Log() << Verbose(0) << "Found configpath: " << configpath << ", dir slash was found at " << last << ", config name is " << configname << "." << endl;650 DoLog(0) && (Log() << Verbose(0) << "Found configpath: " << configpath << ", dir slash was found at " << last << ", config name is " << configname << "." << endl); 649 651 delete[](buffer); 650 652 }; … … 657 659 { 658 660 if (FileBuffer != NULL) { 659 eLog() << Verbose(2) << "deleting present FileBuffer in PrepareFileBuffer()." << endl;661 DoeLog(2) && (eLog()<< Verbose(2) << "deleting present FileBuffer in PrepareFileBuffer()." << endl); 660 662 delete(FileBuffer); 661 663 } … … 683 685 684 686 if (mol == NULL) { 685 eLog() << Verbose(0) << "Molecule is not allocated in LoadMolecule(), exit.";687 DoeLog(0) && (eLog()<< Verbose(0) << "Molecule is not allocated in LoadMolecule(), exit."); 686 688 performCriticalExit(); 687 689 } … … 689 691 ParseForParameter(verbose,FileBuffer,"MaxTypes", 0, 1, 1, int_type, &(MaxTypes), 1, critical); 690 692 if (MaxTypes == 0) { 691 eLog() << Verbose(0) << "There are no atoms according to MaxTypes in this config file." << endl;692 performCriticalExit();693 DoeLog(1) && (eLog()<< Verbose(1) << "There are no atoms according to MaxTypes in this config file." << endl); 694 //performCriticalExit(); 693 695 } else { 694 696 // prescan number of ions per type 695 Log() << Verbose(0) << "Prescanning ions per type: " << endl;697 DoLog(0) && (Log() << Verbose(0) << "Prescanning ions per type: " << endl); 696 698 int NoAtoms = 0; 697 699 for (int i=0; i < MaxTypes; i++) { … … 700 702 ParseForParameter(verbose,FileBuffer, name, 0, 2, 1, int_type, &Z, 1, critical); 701 703 elementhash[i] = periode->FindElement(Z); 702 Log() << Verbose(1) << i << ". Z = " << elementhash[i]->Z << " with " << No[i] << " ions." << endl;704 DoLog(1) && (Log() << Verbose(1) << i << ". Z = " << elementhash[i]->Z << " with " << No[i] << " ions." << endl); 703 705 NoAtoms += No[i]; 704 706 } … … 708 710 sprintf(name,"Ion_Type%i",MaxTypes); 709 711 if (!ParseForParameter(verbose,FileBuffer, (const char*)name, 1, 1, 1, int_type, &value[0], 1, critical)) { 710 eLog() << Verbose(0) << "There are no atoms in the config file!" << endl;712 DoeLog(0) && (eLog()<< Verbose(0) << "There are no atoms in the config file!" << endl); 711 713 performCriticalExit(); 712 714 return; … … 726 728 bool status = true; 727 729 while (status) { 728 Log() << Verbose(0) << "Currently parsing MD step " << repetition << "." << endl;730 DoLog(0) && (Log() << Verbose(0) << "Currently parsing MD step " << repetition << "." << endl); 729 731 for (int i=0; i < MaxTypes; i++) { 730 732 sprintf(name,"Ion_Type%i",i+1); … … 792 794 } 793 795 repetition--; 794 Log() << Verbose(0) << "Found " << repetition << " trajectory steps." << endl;796 DoLog(0) && (Log() << Verbose(0) << "Found " << repetition << " trajectory steps." << endl); 795 797 if (repetition <= 1) // if onyl one step, desactivate use of trajectories 796 798 mol->MDSteps = 0; … … 804 806 ParseForParameter(verbose,FileBuffer, "Ion_Type1_1", 0, 3, 1, double_type, &value[2], repetition, (repetition == 0) ? critical : optional)) 805 807 repetition++; 806 Log() << Verbose(0) << "I found " << repetition << " times the keyword Ion_Type1_1." << endl;808 DoLog(0) && (Log() << Verbose(0) << "I found " << repetition << " times the keyword Ion_Type1_1." << endl); 807 809 // parse in molecule coordinates 808 810 for (int i=0; i < MaxTypes; i++) { … … 853 855 ifstream *file = new ifstream(filename); 854 856 if (file == NULL) { 855 eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;857 DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl); 856 858 return; 857 859 } … … 965 967 // Unit cell and magnetic field 966 968 ParseForParameter(verbose,FileBuffer, "BoxLength", 0, 3, 3, lower_trigrid, BoxLength, 1, critical); /* Lattice->RealBasis */ 967 mol->cell_size[0] = BoxLength[0]; 968 mol->cell_size[1] = BoxLength[3]; 969 mol->cell_size[2] = BoxLength[4]; 970 mol->cell_size[3] = BoxLength[6]; 971 mol->cell_size[4] = BoxLength[7]; 972 mol->cell_size[5] = BoxLength[8]; 969 double * const cell_size = World::get()->cell_size; 970 cell_size[0] = BoxLength[0]; 971 cell_size[1] = BoxLength[3]; 972 cell_size[2] = BoxLength[4]; 973 cell_size[3] = BoxLength[6]; 974 cell_size[4] = BoxLength[7]; 975 cell_size[5] = BoxLength[8]; 973 976 //if (1) fprintf(stderr,"\n"); 974 977 … … 1060 1063 BG = new BondGraph(IsAngstroem); 1061 1064 if (BG->LoadBondLengthTable(BondGraphFileName)) { 1062 Log() << Verbose(0) << "Bond length table loaded successfully." << endl;1065 DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl); 1063 1066 } else { 1064 eLog() << Verbose(1) << "Bond length table loading failed." << endl;1067 DoeLog(1) && (eLog()<< Verbose(1) << "Bond length table loading failed." << endl); 1065 1068 } 1066 1069 } … … 1091 1094 ifstream *file = new ifstream(filename); 1092 1095 if (file == NULL) { 1093 eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;1096 DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl); 1094 1097 return; 1095 1098 } … … 1169 1172 1170 1173 ParseForParameter(verbose,file, "BoxLength", 0, 3, 3, lower_trigrid, BoxLength, 1, critical); /* Lattice->RealBasis */ 1171 mol->cell_size[0] = BoxLength[0]; 1172 mol->cell_size[1] = BoxLength[3]; 1173 mol->cell_size[2] = BoxLength[4]; 1174 mol->cell_size[3] = BoxLength[6]; 1175 mol->cell_size[4] = BoxLength[7]; 1176 mol->cell_size[5] = BoxLength[8]; 1174 double * const cell_size = World::get()->cell_size; 1175 cell_size[0] = BoxLength[0]; 1176 cell_size[1] = BoxLength[3]; 1177 cell_size[2] = BoxLength[4]; 1178 cell_size[3] = BoxLength[6]; 1179 cell_size[4] = BoxLength[7]; 1180 cell_size[5] = BoxLength[8]; 1177 1181 if (1) fprintf(stderr,"\n"); 1178 1182 config::DoPerturbation = 0; … … 1250 1254 BG = new BondGraph(IsAngstroem); 1251 1255 if (BG->LoadBondLengthTable(BondGraphFileName)) { 1252 Log() << Verbose(0) << "Bond length table loaded successfully." << endl;1256 DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl); 1253 1257 } else { 1254 Log() << Verbose(0) << "Bond length table loading failed." << endl;1258 DoLog(0) && (Log() << Verbose(0) << "Bond length table loading failed." << endl); 1255 1259 } 1256 1260 … … 1259 1263 for (i=MAX_ELEMENTS;i--;) 1260 1264 elementhash[i] = NULL; 1261 Log() << Verbose(0) << "Parsing Ions ..." << endl;1265 DoLog(0) && (Log() << Verbose(0) << "Parsing Ions ..." << endl); 1262 1266 No=0; 1263 1267 found = 0; 1264 1268 while (getline(*file,zeile,'\n')) { 1265 1269 if (zeile.find("Ions_Data") == 0) { 1266 Log() << Verbose(1) << "found Ions_Data...begin parsing" << endl;1270 DoLog(1) && (Log() << Verbose(1) << "found Ions_Data...begin parsing" << endl); 1267 1271 found ++; 1268 1272 } … … 1278 1282 input >> b; // element mass 1279 1283 elementhash[No] = periode->FindElement(Z); 1280 Log() << Verbose(1) << "AtomNo: " << AtomNo << "\tZ: " << Z << "\ta:" << a << "\tl:" << l << "\b:" << b << "\tElement:" << elementhash[No] << "\t:" << endl;1284 DoLog(1) && (Log() << Verbose(1) << "AtomNo: " << AtomNo << "\tZ: " << Z << "\ta:" << a << "\tl:" << l << "\b:" << b << "\tElement:" << elementhash[No] << "\t:" << endl); 1281 1285 for(i=0;i<AtomNo;i++) { 1282 1286 if (!getline(*file,zeile,'\n')) {// parse on and on 1283 Log() << Verbose(2) << "Error: Too few items in ionic list of element" << elementhash[No] << "." << endl << "Exiting." << endl;1287 DoLog(2) && (Log() << Verbose(2) << "Error: Too few items in ionic list of element" << elementhash[No] << "." << endl << "Exiting." << endl); 1284 1288 // return 1; 1285 1289 } else { … … 1312 1316 // bring MaxTypes up to date 1313 1317 mol->CountElements(); 1318 const double * const cell_size = World::get()->cell_size; 1314 1319 ofstream * const output = new ofstream(filename, ios::out); 1315 1320 if (output != NULL) { … … 1382 1387 *output << endl; 1383 1388 *output << "BoxLength\t\t\t# (Length of a unit cell)" << endl; 1384 *output << mol->cell_size[0] << "\t" << endl;1385 *output << mol->cell_size[1] << "\t" << mol->cell_size[2] << "\t" << endl;1386 *output << mol->cell_size[3] << "\t" << mol->cell_size[4] << "\t" << mol->cell_size[5] << "\t" << endl;1389 *output << cell_size[0] << "\t" << endl; 1390 *output << cell_size[1] << "\t" << cell_size[2] << "\t" << endl; 1391 *output << cell_size[3] << "\t" << cell_size[4] << "\t" << cell_size[5] << "\t" << endl; 1387 1392 // FIXME 1388 1393 *output << endl; … … 1428 1433 return result; 1429 1434 } else { 1430 eLog() << Verbose(1) << "Cannot open output file:" << filename << endl;1435 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open output file:" << filename << endl); 1431 1436 return false; 1432 1437 } … … 1450 1455 output = new ofstream(fname->str().c_str(), ios::out); 1451 1456 if (output == NULL) { 1452 eLog() << Verbose(1) << "Cannot open mpqc output file:" << fname << endl;1457 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc output file:" << fname << endl); 1453 1458 delete(fname); 1454 1459 return false; … … 1493 1498 output = new ofstream(fname->str().c_str(), ios::out); 1494 1499 if (output == NULL) { 1495 eLog() << Verbose(1) << "Cannot open mpqc hessian output file:" << fname << endl;1500 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc hessian output file:" << fname << endl); 1496 1501 delete(fname); 1497 1502 return false; … … 1549 1554 f = fopen(name, "w" ); 1550 1555 if (f == NULL) { 1551 eLog() << Verbose(1) << "Cannot open pdb output file:" << name << endl;1556 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open pdb output file:" << name << endl); 1552 1557 return false; 1553 1558 } … … 1604 1609 f = fopen(name, "w" ); 1605 1610 if (f == NULL) { 1606 eLog() << Verbose(1) << "Cannot open pdb output file:" << name << endl;1611 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open pdb output file:" << name << endl); 1607 1612 Free(&elementNo); 1608 1613 return false; … … 1641 1646 /** Stores all atoms in a TREMOLO data input file. 1642 1647 * Note that this format cannot be parsed again. 1648 * Note that TREMOLO does not like Id starting at 0, but at 1. Atoms with Id 0 are discarded! 1643 1649 * \param *filename name of file (without ".in" suffix!) 1644 1650 * \param *mol pointer to molecule … … 1653 1659 output = new ofstream(fname->str().c_str(), ios::out); 1654 1660 if (output == NULL) { 1655 eLog() << Verbose(1) << "Cannot open tremolo output file:" << fname << endl;1661 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open tremolo output file:" << fname << endl); 1656 1662 delete(fname); 1657 1663 return false; … … 1695 1701 /** Stores all atoms from all molecules in a TREMOLO data input file. 1696 1702 * Note that this format cannot be parsed again. 1703 * Note that TREMOLO does not like Id starting at 0, but at 1. Atoms with Id 0 are discarded! 1697 1704 * \param *filename name of file (without ".in" suffix!) 1698 1705 * \param *MolList pointer to MoleculeListClass containing all atoms … … 1707 1714 output = new ofstream(fname->str().c_str(), ios::out); 1708 1715 if (output == NULL) { 1709 eLog() << Verbose(1) << "Cannot open tremolo output file:" << fname << endl;1716 DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open tremolo output file:" << fname << endl); 1710 1717 delete(fname); 1711 1718 return false; … … 1747 1754 while (Walker->next != (*MolWalker)->end) { 1748 1755 Walker = Walker->next; 1749 *output << AtomNo << "\t";1756 *output << AtomNo+1 << "\t"; 1750 1757 *output << Walker->Name << "\t"; 1751 1758 *output << (*MolWalker)->name << "\t"; 1752 *output << MolCounter << "\t";1759 *output << MolCounter+1 << "\t"; 1753 1760 *output << Walker->node->x[0] << "\t" << Walker->node->x[1] << "\t" << Walker->node->x[2] << "\t"; 1754 1761 *output << (double)Walker->type->Valence << "\t"; 1755 1762 *output << Walker->type->symbol << "\t"; 1756 1763 for (BondList::iterator runner = Walker->ListOfBonds.begin(); runner != Walker->ListOfBonds.end(); runner++) 1757 *output << LocalNotoGlobalNoMap[MolCounter][ (*runner)->GetOtherAtom(Walker)->nr ] << "\t";1764 *output << LocalNotoGlobalNoMap[MolCounter][ (*runner)->GetOtherAtom(Walker)->nr ]+1 << "\t"; 1758 1765 for(int i=Walker->ListOfBonds.size(); i < MaxNeighbours; i++) 1759 1766 *output << "-\t";
Note:
See TracChangeset
for help on using the changeset viewer.
