Changeset 884d8c for src/Potentials
- Timestamp:
- Nov 11, 2016, 2:25:35 PM (8 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, 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_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
- Children:
- 824bba
- Parents:
- c738f1
- git-author:
- Frederik Heber <heber@…> (10/05/16 20:29:23)
- git-committer:
- Frederik Heber <heber@…> (11/11/16 14:25:35)
- Location:
- src/Potentials/Specifics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Potentials/Specifics/FourBodyPotential_Improper.cpp
rc738f1 r884d8c 114 114 bindingmodel(generateBindingModel(_ParticleTypes)) 115 115 {} 116 117 FourBodyPotential_Improper::result_t118 FourBodyPotential_Improper::function_theta(119 const double &r_ij,120 const double &r_ik,121 const double &r_il,122 const double &r_jk,123 const double &r_jl,124 const double &r_kl125 ) const126 {127 // just relay call to torsion's theta function with some flipped arguments128 return FourBodyPotential_Torsion::function_theta(129 r_jk,130 r_ik,131 r_kl,132 r_ij,133 r_jl,134 r_il135 );136 } -
src/Potentials/Specifics/FourBodyPotential_Improper.hpp
rc738f1 r884d8c 68 68 69 69 private: 70 /** Function to obtain angle between planes from distances.71 *72 */73 result_t function_theta(74 const double &r_ij,75 const double &r_ik,76 const double &r_il,77 const double &r_jk,78 const double &r_jl,79 const double &r_kl80 ) const;81 70 82 71 /** Return the token name of this specific potential. -
src/Potentials/Specifics/unittests/FourBodyPotential_ImproperUnitTest.cpp
rc738f1 r884d8c 72 72 angles += -0.5, -.4, -.3, -.2, -.1, 0., .1, .2, .3, .4, .5; 73 73 FunctionModel::arguments_t tempvector(6); 74 tempvector[ 3] = argument_t( std::make_pair(0,1), std::make_pair(0,1), 1.);75 tempvector[1] = argument_t( std::make_pair(0,2), std::make_pair(0,1), 1. );76 tempvector[ 5] = argument_t( std::make_pair(0,3), std::make_pair(0,0), 0.);77 tempvector[ 0] = argument_t( std::make_pair(1,2), std::make_pair(1,1), 1.);78 tempvector[4] = argument_t( std::make_pair(1,3), std::make_pair(0,1), 1. );79 tempvector[ 2] = argument_t( std::make_pair(2,3), std::make_pair(0,1), 1.);74 tempvector[0] = argument_t( std::make_pair(0,1), std::make_pair(0,1), 1., true); 75 tempvector[1] = argument_t( std::make_pair(0,2), std::make_pair(0,1), 1., true); 76 tempvector[2] = argument_t( std::make_pair(0,3), std::make_pair(0,0), 0., true); 77 tempvector[3] = argument_t( std::make_pair(1,2), std::make_pair(1,1), 1., false); 78 tempvector[4] = argument_t( std::make_pair(1,3), std::make_pair(0,1), 1., false); 79 tempvector[5] = argument_t( std::make_pair(2,3), std::make_pair(0,1), 1., false); 80 80 // we have two equilateral triangles (length 1) 81 81 // height is then \sqrt(2*(1+1)-1)*.5=sqrt(3)*.5 … … 86 86 // x = sqrt(h_1^2+h_2^2 - cos(theta) * (2*h_1*h_2)) 87 87 for (angles_t::const_iterator iter = angles.begin(); iter != angles.end(); ++iter) { 88 tempvector[ 5].distance = sqrt(.75+.75 - (*iter)*(1.5));88 tempvector[2].distance = sqrt(.75+.75 - (*iter)*(1.5)); 89 89 input += tempvector; 90 90 }
Note:
See TracChangeset
for help on using the changeset viewer.