- Timestamp:
- Jun 7, 2008, 1:21:33 PM (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:
- d52ea1b
- Parents:
- fa40b5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/vector.cpp
rfa40b5 r65684f 354 354 { 355 355 double projection; 356 projection = ScalarProduct(n)/ ((vector *)n)->ScalarProduct(n); // remove constancy from n (keep as logical one)356 projection = ScalarProduct(n)/n->ScalarProduct(n); // remove constancy from n (keep as logical one) 357 357 // withdraw projected vector twice from original one 358 358 cout << Verbose(1) << "Vector: "; … … 458 458 * \return true - success, false - failure (null vector given) 459 459 */ 460 bool vector::GetOneNormalVector(const vector * vector)460 bool vector::GetOneNormalVector(const vector *GivenVector) 461 461 { 462 462 int Components[NDIM]; // contains indices of non-zero components … … 466 466 467 467 cout << Verbose(4); 468 vector->Output((ofstream *)&cout);468 GivenVector->Output((ofstream *)&cout); 469 469 cout << endl; 470 470 for (j=NDIM;j--;) … … 472 472 // find two components != 0 473 473 for (j=0;j<NDIM;j++) 474 if (fabs( vector->x[j]) > MYEPSILON)474 if (fabs(GivenVector->x[j]) > MYEPSILON) 475 475 Components[Last++] = j; 476 476 cout << Verbose(4) << Last << " Components != 0: (" << Components[0] << "," << Components[1] << "," << Components[2] << ")" << endl; … … 479 479 case 3: // threecomponent system 480 480 case 2: // two component system 481 norm = sqrt(1./( vector->x[Components[1]]*vector->x[Components[1]]) + 1./(vector->x[Components[0]]*vector->x[Components[0]]));481 norm = sqrt(1./(GivenVector->x[Components[1]]*GivenVector->x[Components[1]]) + 1./(GivenVector->x[Components[0]]*GivenVector->x[Components[0]])); 482 482 x[Components[2]] = 0.; 483 483 // in skp both remaining parts shall become zero but with opposite sign and third is zero 484 x[Components[1]] = -1./ vector->x[Components[1]] / norm;485 x[Components[0]] = 1./ vector->x[Components[0]] / norm;484 x[Components[1]] = -1./GivenVector->x[Components[1]] / norm; 485 x[Components[0]] = 1./GivenVector->x[Components[0]] / norm; 486 486 return true; 487 487 break; … … 519 519 gsl_multimin_fminimizer_nmsimplex; 520 520 gsl_multimin_fminimizer *s = NULL; 521 gsl_vector *ss, * x;521 gsl_vector *ss, *y; 522 522 gsl_multimin_function minex_func; 523 523 … … 528 528 /* Initial vertex size vector */ 529 529 ss = gsl_vector_alloc (np); 530 x= gsl_vector_alloc (np);530 y = gsl_vector_alloc (np); 531 531 532 532 /* Set all step sizes to 1 */ … … 538 538 539 539 for (i=NDIM;i--;) 540 gsl_vector_set( x, i, (vectors[0]->x[i] - vectors[1]->x[i])/2.);540 gsl_vector_set(y, i, (vectors[0]->x[i] - vectors[1]->x[i])/2.); 541 541 542 542 /* Initialize method and iterate */ … … 546 546 547 547 s = gsl_multimin_fminimizer_alloc (T, np); 548 gsl_multimin_fminimizer_set (s, &minex_func, x, ss);548 gsl_multimin_fminimizer_set (s, &minex_func, y, ss); 549 549 550 550 do … … 575 575 for (i=(size_t)np;i--;) 576 576 this->x[i] = gsl_vector_get(s->x, i); 577 gsl_vector_free( x);577 gsl_vector_free(y); 578 578 gsl_vector_free(ss); 579 579 gsl_multimin_fminimizer_free (s);
Note:
See TracChangeset
for help on using the changeset viewer.