Changeset 7f3b9d for src/datacreator.cpp
- Timestamp:
- May 23, 2008, 9:17:19 AM (17 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 040f93
- Parents:
- 6097ea
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/datacreator.cpp
r6097ea r7f3b9d 48 48 output << "#Order\tFrag.No.\t" << Energy.Header << endl; 49 49 for (int BondOrder=0;BondOrder<KeySet.Order;BondOrder++) { 50 for(int i= 0;i<KeySet.FragmentsPerOrder[BondOrder];i++) {51 for(int j= 0;j<Energy.RowCounter[ KeySet.OrderSet[BondOrder][i] ];j++)52 for(int k= 0;k<Energy.ColumnCounter;k++)50 for(int i=KeySet.FragmentsPerOrder[BondOrder];i--;) { 51 for(int j=Energy.RowCounter[ KeySet.OrderSet[BondOrder][i] ];j--;) 52 for(int k=Energy.ColumnCounter;k--;) 53 53 Energy.Matrix[Energy.MatrixCounter][j][k] -= EnergyFragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][k]; 54 54 } … … 89 89 } 90 90 if (j != -1) 91 for(int k= 0;k<Force.ColumnCounter;k++) {91 for(int k=Force.ColumnCounter;k--;) { 92 92 Force.Matrix[Force.MatrixCounter][j][k] += ForceFragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][l][k]; 93 93 } … … 136 136 void CreateMaxFragmentOrder(class MatrixContainer &Fragments, class KeySetsContainer &KeySet, int BondOrder) 137 137 { 138 for(int j= 0;j<Fragments.RowCounter[ Fragments.MatrixCounter ];j++) {139 for(int i= 0;i<KeySet.FragmentsPerOrder[BondOrder];i++) {138 for(int j=Fragments.RowCounter[ Fragments.MatrixCounter ];j--;) { 139 for(int i=KeySet.FragmentsPerOrder[BondOrder];i--;) { 140 140 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) < fabs(Fragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][1])) { 141 for (int k= 0;k<Fragments.ColumnCounter;k++)141 for (int k=Fragments.ColumnCounter;k--;) 142 142 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][k]; 143 143 } … … 156 156 int i=0; 157 157 do { // first get a minimum value unequal to 0 158 for (int k= 0;k<Fragments.ColumnCounter;k++)158 for (int k=Fragments.ColumnCounter;k--;) 159 159 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][k]; 160 160 i++; … … 162 162 for(;i<KeySet.FragmentsPerOrder[BondOrder];i++) { // then find lowest 163 163 if (fabs(Fragments.Matrix[ Fragments.MatrixCounter ][j][1]) > fabs(Fragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][1])) { 164 for (int k= 0;k<Fragments.ColumnCounter;k++)164 for (int k=Fragments.ColumnCounter;k--;) 165 165 Fragments.Matrix[ Fragments.MatrixCounter ][j][k] = Fragments.Matrix[ KeySet.OrderSet[BondOrder][i] ][j][k]; 166 166 } … … 211 211 void CreateMinimumForce(class MatrixContainer &Force, int MatrixNumber) 212 212 { 213 for (int l= 0;l<Force.ColumnCounter;l++)213 for (int l=Force.ColumnCounter;l--;) 214 214 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l] = 0.; 215 215 for (int l=5;l<Force.ColumnCounter;l+=3) { … … 217 217 int k=0; 218 218 do { 219 for (int m= 0;m<3;m++) {219 for (int m=NDIM;m--;) { 220 220 stored += Force.Matrix[MatrixNumber][ k ][l+m] 221 221 * Force.Matrix[MatrixNumber][ k ][l+m]; … … 226 226 for (;k<Force.RowCounter[MatrixNumber];k++) { 227 227 double tmp = 0; 228 for (int m= 0;m<3;m++)228 for (int m=NDIM;m--;) 229 229 tmp += Force.Matrix[MatrixNumber][ k ][l+m] 230 230 * Force.Matrix[MatrixNumber][ k ][l+m]; 231 231 if ((fabs(tmp) > MYEPSILON) && (tmp < stored)) { // current force is greater than stored 232 for (int m= 0;m<3;m++)232 for (int m=NDIM;m--;) 233 233 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l+m] = Force.Matrix[MatrixNumber][ k ][l+m]; 234 234 stored = tmp; … … 246 246 { 247 247 int divisor = 0; 248 for (int l= 0;l<Force.ColumnCounter;l++)248 for (int l=Force.ColumnCounter;l--;) 249 249 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l] = 0.; 250 250 for (int l=5;l<Force.ColumnCounter;l+=3) { 251 251 double tmp = 0; 252 for (int k= 0;k<Force.RowCounter[MatrixNumber];k++) {252 for (int k=Force.RowCounter[MatrixNumber];k--;) { 253 253 double norm = 0.; 254 for (int m= 0;m<3;m++)254 for (int m=NDIM;m--;) 255 255 norm += Force.Matrix[MatrixNumber][ k ][l+m] 256 256 * Force.Matrix[MatrixNumber][ k ][l+m]; … … 272 272 for (int l=5;l<Force.ColumnCounter;l+=3) { 273 273 double stored = 0; 274 for (int k= 0;k<Force.RowCounter[MatrixNumber];k++) {274 for (int k=Force.RowCounter[MatrixNumber];k--;) { 275 275 double tmp = 0; 276 for (int m= 0;m<3;m++)276 for (int m=NDIM;m--;) 277 277 tmp += Force.Matrix[MatrixNumber][ k ][l+m] 278 278 * Force.Matrix[MatrixNumber][ k ][l+m]; 279 279 if (tmp > stored) { // current force is greater than stored 280 for (int m= 0;m<3;m++)280 for (int m=NDIM;m--;) 281 281 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l+m] = Force.Matrix[MatrixNumber][ k ][l+m]; 282 282 stored = tmp; … … 293 293 void CreateVectorSumForce(class MatrixContainer &Force, int MatrixNumber) 294 294 { 295 for (int l= 0;l<Force.ColumnCounter;l++)295 for (int l=Force.ColumnCounter;l--;) 296 296 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l] = 0.; 297 297 for (int l=5;l<Force.ColumnCounter;l++) { 298 for (int k= 0;k<Force.RowCounter[MatrixNumber];k++)298 for (int k=Force.RowCounter[MatrixNumber];k--;) 299 299 Force.Matrix[MatrixNumber][ Force.RowCounter[MatrixNumber] ][l] += Force.Matrix[MatrixNumber][k][l]; 300 300 } … … 423 423 line >> item; 424 424 line >> item; 425 for (int i=7; i< Force.ColumnCounter;i+= 3) {425 for (int i=7; i< Force.ColumnCounter;i+=NDIM) { 426 426 line >> item; 427 427 item[strlen(item)-1] = '\0'; // kill residual index char (the '0') … … 452 452 line >> item; 453 453 line >> item; 454 for (int i=7; i< Force.ColumnCounter;i+= 3) {454 for (int i=7; i< Force.ColumnCounter;i+=NDIM) { 455 455 line >> item; 456 456 item[strlen(item)-1] = '\0'; // kill residual index char (the '0') … … 482 482 line >> item; 483 483 line >> item; 484 for (int i=7; i< Force.ColumnCounter;i+= 3) {484 for (int i=7; i< Force.ColumnCounter;i+=NDIM) { 485 485 line >> item; 486 486 item[strlen(item)-1] = '\0'; // kill residual index char (the '0') … … 512 512 line >> item; 513 513 line >> item; 514 for (int i=7; i< Force.ColumnCounter;i+= 3) {514 for (int i=7; i< Force.ColumnCounter;i+=NDIM) { 515 515 line >> item; 516 516 item[strlen(item)-1] = '\0'; // kill residual index char (the '0')
Note:
See TracChangeset
for help on using the changeset viewer.