Changeset 1f2e46 for molecuilder/src/molecule_dynamics.cpp
- Timestamp:
- Apr 22, 2010, 2:00:03 PM (16 years ago)
- Children:
- 423c7b
- Parents:
- c43766
- File:
-
- 1 edited
-
molecuilder/src/molecule_dynamics.cpp (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/molecule_dynamics.cpp
rc43766 r1f2e46 207 207 doubles++; 208 208 if (doubles >0) 209 Log() << Verbose(2) << "Found " << doubles << " Doubles." << endl;209 DoLog(2) && (Log() << Verbose(2) << "Found " << doubles << " Doubles." << endl); 210 210 Free(&DoubleList); 211 211 // Log() << Verbose(2) << zeile1.str() << endl << zeile2.str() << endl; … … 249 249 Params.DoubleList[Params.DistanceList[Walker->nr]->begin()->second->nr]++; // increase this target's source count (>1? not injective) 250 250 Params.DistanceIterators[Walker->nr] = Params.DistanceList[Walker->nr]->begin(); // and remember which one we picked 251 Log() << Verbose(2) << *Walker << " starts with distance " << Params.DistanceList[Walker->nr]->begin()->first << "." << endl;251 DoLog(2) && (Log() << Verbose(2) << *Walker << " starts with distance " << Params.DistanceList[Walker->nr]->begin()->first << "." << endl); 252 252 } 253 253 }; … … 277 277 Params.DistanceIterators[Walker->nr] = NewBase; 278 278 OldPotential = Potential; 279 Log() << Verbose(3) << "Found a new permutation, new potential is " << OldPotential << "." << endl;279 DoLog(3) && (Log() << Verbose(3) << "Found a new permutation, new potential is " << OldPotential << "." << endl); 280 280 } 281 281 } … … 309 309 performCriticalExit(); 310 310 } 311 Log() << Verbose(1) << "done." << endl;311 DoLog(1) && (Log() << Verbose(1) << "done." << endl); 312 312 }; 313 313 … … 358 358 Params.PenaltyConstants[2] = 1e+7; // just a huge penalty 359 359 // generate the distance list 360 Log() << Verbose(1) << "Allocating, initializting and filling the distance list ... " << endl;360 DoLog(1) && (Log() << Verbose(1) << "Allocating, initializting and filling the distance list ... " << endl); 361 361 FillDistanceList(this, Params); 362 362 … … 365 365 366 366 // make the PermutationMap injective by checking whether we have a non-zero constants[2] term in it 367 Log() << Verbose(1) << "Making the PermutationMap injective ... " << endl;367 DoLog(1) && (Log() << Verbose(1) << "Making the PermutationMap injective ... " << endl); 368 368 MakeInjectivePermutation(this, Params); 369 369 Free(&Params.DoubleList); 370 370 371 371 // argument minimise the constrained potential in this injective PermutationMap 372 Log() << Verbose(1) << "Argument minimising the PermutationMap." << endl;372 DoLog(1) && (Log() << Verbose(1) << "Argument minimising the PermutationMap." << endl); 373 373 OldPotential = 1e+10; 374 374 round = 0; 375 375 do { 376 Log() << Verbose(2) << "Starting round " << ++round << ", at current potential " << OldPotential << " ... " << endl;376 DoLog(2) && (Log() << Verbose(2) << "Starting round " << ++round << ", at current potential " << OldPotential << " ... " << endl); 377 377 OlderPotential = OldPotential; 378 378 do { … … 424 424 } else { 425 425 Params.DistanceIterators[Runner->nr] = Rider; // if successful also move the pointer in the iterator list 426 Log() << Verbose(3) << "Found a better permutation, new potential is " << Potential << " vs." << OldPotential << "." << endl;426 DoLog(3) && (Log() << Verbose(3) << "Found a better permutation, new potential is " << Potential << " vs." << OldPotential << "." << endl); 427 427 OldPotential = Potential; 428 428 } … … 443 443 } while (Walker->next != end); 444 444 } while ((OlderPotential - OldPotential) > 1e-3); 445 Log() << Verbose(1) << "done." << endl;445 DoLog(1) && (Log() << Verbose(1) << "done." << endl); 446 446 447 447 … … 466 466 { 467 467 /// evaluate forces (only the distance to target dependent part) with the final PermutationMap 468 Log() << Verbose(1) << "Calculating forces and adding onto ForceMatrix ... " << endl;468 DoLog(1) && (Log() << Verbose(1) << "Calculating forces and adding onto ForceMatrix ... " << endl); 469 469 ActOnAllAtoms( &atom::EvaluateConstrainedForce, startstep, endstep, PermutationMap, Force ); 470 Log() << Verbose(1) << "done." << endl;470 DoLog(1) && (Log() << Verbose(1) << "done." << endl); 471 471 }; 472 472 … … 503 503 504 504 // go through all steps and add the molecular configuration to the list and to the Trajectories of \a this molecule 505 Log() << Verbose(1) << "Filling intermediate " << MaxSteps << " steps with MDSteps of " << MDSteps << "." << endl;505 DoLog(1) && (Log() << Verbose(1) << "Filling intermediate " << MaxSteps << " steps with MDSteps of " << MDSteps << "." << endl); 506 506 for (int step = 0; step <= MaxSteps; step++) { 507 507 mol = new molecule(elemente); … … 652 652 switch(Thermostat) { 653 653 case None: 654 Log() << Verbose(2) << "Applying no thermostat..." << endl;654 DoLog(2) && (Log() << Verbose(2) << "Applying no thermostat..." << endl); 655 655 break; 656 656 case Woodcock: 657 657 if ((configuration.ScaleTempStep > 0) && ((MDSteps-1) % configuration.ScaleTempStep == 0)) { 658 Log() << Verbose(2) << "Applying Woodcock thermostat..." << endl;658 DoLog(2) && (Log() << Verbose(2) << "Applying Woodcock thermostat..." << endl); 659 659 ActOnAllAtoms( &atom::Thermostat_Woodcock, sqrt(ScaleTempFactor), MDSteps, &ekin ); 660 660 } 661 661 break; 662 662 case Gaussian: 663 Log() << Verbose(2) << "Applying Gaussian thermostat..." << endl;663 DoLog(2) && (Log() << Verbose(2) << "Applying Gaussian thermostat..." << endl); 664 664 ActOnAllAtoms( &atom::Thermostat_Gaussian_init, MDSteps, &G, &E ); 665 665 666 Log() << Verbose(1) << "Gaussian Least Constraint constant is " << G/E << "." << endl;666 DoLog(1) && (Log() << Verbose(1) << "Gaussian Least Constraint constant is " << G/E << "." << endl); 667 667 ActOnAllAtoms( &atom::Thermostat_Gaussian_least_constraint, MDSteps, G/E, &ekin, &configuration); 668 668 669 669 break; 670 670 case Langevin: 671 Log() << Verbose(2) << "Applying Langevin thermostat..." << endl;671 DoLog(2) && (Log() << Verbose(2) << "Applying Langevin thermostat..." << endl); 672 672 // init random number generator 673 673 gsl_rng_env_setup(); … … 679 679 680 680 case Berendsen: 681 Log() << Verbose(2) << "Applying Berendsen-VanGunsteren thermostat..." << endl;681 DoLog(2) && (Log() << Verbose(2) << "Applying Berendsen-VanGunsteren thermostat..." << endl); 682 682 ActOnAllAtoms( &atom::Thermostat_Berendsen, MDSteps, ScaleTempFactor, &ekin, &configuration ); 683 683 break; 684 684 685 685 case NoseHoover: 686 Log() << Verbose(2) << "Applying Nose-Hoover thermostat..." << endl;686 DoLog(2) && (Log() << Verbose(2) << "Applying Nose-Hoover thermostat..." << endl); 687 687 // dynamically evolve alpha (the additional degree of freedom) 688 688 delta_alpha = 0.; … … 690 690 delta_alpha = (delta_alpha - (3.*AtomCount+1.) * configuration.TargetTemp)/(configuration.HooverMass*Units2Electronmass); 691 691 configuration.alpha += delta_alpha*configuration.Deltat; 692 Log() << Verbose(3) << "alpha = " << delta_alpha << " * " << configuration.Deltat << " = " << configuration.alpha << "." << endl;692 DoLog(3) && (Log() << Verbose(3) << "alpha = " << delta_alpha << " * " << configuration.Deltat << " = " << configuration.alpha << "." << endl); 693 693 // apply updated alpha as additional force 694 694 ActOnAllAtoms( &atom::Thermostat_NoseHoover_scale, MDSteps, &ekin, &configuration ); 695 695 break; 696 696 } 697 Log() << Verbose(1) << "Kinetic energy is " << ekin << "." << endl;698 }; 697 DoLog(1) && (Log() << Verbose(1) << "Kinetic energy is " << ekin << "." << endl); 698 };
Note:
See TracChangeset
for help on using the changeset viewer.
