- Timestamp:
- Jun 13, 2012, 5:39:04 PM (13 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, Candidate_v1.7.0, 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:
- a483e4
- Parents:
- 8ea3e7
- git-author:
- Frederik Heber <heber@…> (05/10/12 10:31:17)
- git-committer:
- Frederik Heber <heber@…> (06/13/12 17:39:04)
- Location:
- src
- Files:
-
- 6 edited
-
Actions/WorldAction/SetBoundaryConditionsAction.def (modified) (1 diff)
-
Box.cpp (modified) (1 diff)
-
Box.hpp (modified) (1 diff)
-
Box_BoundaryConditions.cpp (modified) (4 diffs)
-
Box_BoundaryConditions.hpp (modified) (1 diff)
-
unittests/Box_BoundaryConditionsUnitTest.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/WorldAction/SetBoundaryConditionsAction.def
r8ea3e7 r97f9b9 13 13 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 14 14 // "undefine" if no parameters are required, use (NODEFAULT) for each (undefined) default value 15 #define paramtypes (std:: string)15 #define paramtypes (std::vector< std::string >) 16 16 #define paramtokens ("set-boundary-conditions") 17 17 #define paramdescriptions ("new boundary conditions as list of three strings, e.g. 'wrap wrap ignore'") -
src/Box.cpp
r8ea3e7 r97f9b9 365 365 } 366 366 367 void Box::setConditions(const std::vector< std::string >& _conditions) 368 { 369 OBSERVE; 370 NOTIFY(BoundaryConditionsChanged); 371 conditions.set(_conditions); 372 } 373 367 374 const std::vector<std::pair<Plane,Plane> > Box::getBoundingPlanes() const 368 375 { -
src/Box.hpp
r8ea3e7 r97f9b9 134 134 void setConditions(const BoundaryConditions::Conditions_t & _conditions); 135 135 void setConditions(const std::string & _conditions); 136 void setConditions(const std::vector< std::string >& _conditions); 136 137 137 138 const std::vector<std::pair<Plane,Plane> > getBoundingPlanes() const; -
src/Box_BoundaryConditions.cpp
r8ea3e7 r97f9b9 107 107 } 108 108 109 void BoundaryConditions::BCContainer::set(const std::vector< std::string > &_conditions) 110 { 111 BoundaryConditions::Conditions_t newconditions; 112 for (std::vector< std::string >::const_iterator iter = _conditions.begin(); 113 iter != _conditions.end(); ++iter) 114 newconditions.push_back(getEnum(*iter)); 115 set(newconditions); 116 } 117 109 118 void BoundaryConditions::BCContainer::set(size_t index, const BoundaryConditions::BoundaryCondition_t _condition) 110 119 { … … 118 127 } 119 128 129 void BoundaryConditions::BCContainer::set(size_t index, const std::string &_condition) 130 { 131 set(index, getEnum(_condition)); 132 } 133 120 134 /** Converter from enum to string. 121 135 * … … 156 170 for (BoundaryConditions::BCContainer::const_iterator iter = t.begin(); iter != t.end(); ++iter) { 157 171 if (iter != t.begin()) 158 out << " ,";172 out << " "; 159 173 out << t.getName(*iter); 160 174 } … … 179 193 typedef boost::tokenizer< boost::char_separator<char> > tokens; 180 194 BoundaryConditions::Conditions_t conditions; 181 boost::char_separator<char> commasep(", ");195 boost::char_separator<char> commasep(", "); 182 196 // it is imperative to copy the content of the stringbuffer, otherwise we'll 183 197 // get strange bug where 'Wrap' != 'Wrap' and so on. -
src/Box_BoundaryConditions.hpp
r8ea3e7 r97f9b9 55 55 const BoundaryCondition_t get(size_t index) const; 56 56 void set(const Conditions_t &_conditions); 57 void set(const std::vector< std::string > &_conditions); 57 58 void set(size_t index, const BoundaryCondition_t _condition); 59 void set(size_t index, const std::string &_conditions); 58 60 59 61 // converter -
src/unittests/Box_BoundaryConditionsUnitTest.cpp
r8ea3e7 r97f9b9 102 102 std::stringstream outstream; 103 103 outstream << *bc; 104 CPPUNIT_ASSERT( outstream.str() == std::string("Wrap , Wrap,Wrap"));104 CPPUNIT_ASSERT( outstream.str() == std::string("Wrap Wrap Wrap")); 105 105 } 106 106 … … 132 132 { 133 133 // set by string 134 std::stringstream inputstream(" Bounce, Wrap, Ignore"); 135 CPPUNIT_ASSERT_NO_THROW( inputstream >> *bc ); 134 std::stringstream inputstream(" Bounce,Wrap,Ignore"); 135 std::stringstream otherinputstream(" Bounce Wrap Ignore"); 136 std::stringstream anotherinputstream(" Bounce, Wrap, Ignore"); 136 137 137 138 // check 139 CPPUNIT_ASSERT_NO_THROW( inputstream >> *bc ); 140 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Bounce, bc->get(0) ); 141 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Wrap, bc->get(1) ); 142 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Ignore, bc->get(2) ); 143 144 // check 145 CPPUNIT_ASSERT_NO_THROW( otherinputstream >> *bc ); 146 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Bounce, bc->get(0) ); 147 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Wrap, bc->get(1) ); 148 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Ignore, bc->get(2) ); 149 150 // check 151 CPPUNIT_ASSERT_NO_THROW( anotherinputstream >> *bc ); 138 152 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Bounce, bc->get(0) ); 139 153 CPPUNIT_ASSERT_EQUAL( BoundaryConditions::Wrap, bc->get(1) );
Note:
See TracChangeset
for help on using the changeset viewer.
