Changeset d66cb7 for src


Ignore:
Timestamp:
Feb 22, 2012, 11:28:41 AM (13 years ago)
Author:
Frederik Heber <heber@…>
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:
c52e08
Parents:
dd067a
git-author:
Frederik Heber <heber@…> (01/02/12 19:04:42)
git-committer:
Frederik Heber <heber@…> (02/22/12 11:28:41)
Message:

Replaced Conditions_t by BoundaryConditions::BCContainer in class Box.

Location:
src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/Box.cpp

    rdd067a rd66cb7  
    5757  M->setIdentity();
    5858  Minv->setIdentity();
    59   conditions.resize(3);
    60   conditions[0] = conditions[1] = conditions[2] = Wrap;
    6159}
    6260
     
    9795  ASSERT(M->determinant()!=0,"Matrix in Box construction was not invertible");
    9896  *Minv = M->invert();
    99   conditions.resize(3);
    100   conditions[0] = conditions[1] = conditions[2] = Wrap;
    10197}
    10298
     
    140136
    141137    switch(conditions[i]){
    142     case Wrap:
     138    case BoundaryConditions::Wrap:
    143139      helper.at(i)=fmod(helper.at(i),1);
    144140      helper.at(i)+=(helper.at(i)>=0)?0:1;
    145141      break;
    146     case Bounce:
     142    case BoundaryConditions::Bounce:
    147143      {
    148144        // there probably is a better way to handle this...
     
    153149      }
    154150      break;
    155     case Ignore:
     151    case BoundaryConditions::Ignore:
    156152      break;
    157153    default:
     
    171167  for(int i=0;i<NDIM;i++)
    172168    result = result &&
    173               ((conditions[i] == Ignore) ||
     169              ((conditions[i] == BoundaryConditions::Ignore) ||
    174170               ((tester[i] >= -MYEPSILON) &&
    175171               ((tester[i] - 1.) < MYEPSILON)));
     
    198194  index.clear();
    199195  for(int i=0;i<NDIM;++i){
    200     if(conditions[i]==Ignore){
     196    if(conditions[i]==BoundaryConditions::Ignore){
    201197      mask[i]=translater[i];
    202198      continue;
     
    220216    for(int i=0;i<dims;++i){
    221217      switch(conditions[coords[i]]){
    222         case Wrap:
     218        case BoundaryConditions::Wrap:
    223219          helper[coords[i]] = index[i]+translater[coords[i]];
    224220          break;
    225         case Bounce:
     221        case BoundaryConditions::Bounce:
    226222          {
    227223            // Bouncing the coordinate x produces the series:
     
    241237          }
    242238          break;
    243         case Ignore:
     239        case BoundaryConditions::Ignore:
    244240          ASSERT(0,"Ignored coordinate handled in generation loop");
    245241          break;
     
    308304}
    309305
    310 const Box::Conditions_t Box::getConditions() const
    311 {
    312   return conditions;
    313 }
    314 
    315 void Box::setCondition(int i,Box::BoundaryCondition_t condition)
     306const BoundaryConditions::Conditions_t Box::getConditions() const
     307{
     308  return conditions.get();
     309}
     310
     311void Box::setCondition(size_t i, const BoundaryConditions::BoundaryCondition_t condition)
    316312{
    317313  OBSERVE;
    318314  NOTIFY(BoundaryConditionsChanged);
    319   conditions[i]=condition;
     315  conditions.set(i, condition);
    320316}
    321317
  • src/Box.hpp

    rdd067a rd66cb7  
    2525#include "LinearAlgebra/VectorSet.hpp"
    2626
     27#include "Box_BoundaryConditions.hpp"
     28
    2729/**
    2830 * A simple class that can be used to store periodic Boxes
     
    4143    NotificationType_MAX  // denotes the maximum of available notification types
    4244  };
    43 
    44   typedef enum{
    45     Wrap,
    46     Bounce,
    47     Ignore
    48   } BoundaryCondition_t;
    49 
    50   typedef std::vector<BoundaryCondition_t> Conditions_t;
    5145
    5246  Box();
     
    121115
    122116  Shape getShape() const;
    123   const Conditions_t getConditions() const;
    124   void setCondition(int,BoundaryCondition_t);
     117
     118  const BoundaryConditions::Conditions_t getConditions() const;
     119  void setCondition(size_t i,const BoundaryConditions::BoundaryCondition_t condition);
    125120
    126121  const std::vector<std::pair<Plane,Plane> > getBoundingPlanes() const;
     
    149144  mutable std::vector<int> index;
    150145
    151   Conditions_t conditions;
     146  BoundaryConditions::BCContainer conditions;
    152147  RealSpaceMatrix *M;    //!< Defines the layout of the box
    153148  RealSpaceMatrix *Minv; //!< Inverse of M to avoid recomputation
  • src/LinkedCell/LinkedCell_Model.cpp

    rdd067a rd66cb7  
    425425  for (size_t i=0;i<NDIM;++i) {
    426426    switch (domain.getConditions()[i]) {
    427     case Box::Wrap:
     427    case BoundaryConditions::Wrap:
    428428      if ((index[i] < 0) || (index[i] >= getSize(i)))
    429429        index[i] = (index[i] % getSize(i));
    430430      break;
    431     case Box::Bounce:
     431    case BoundaryConditions::Bounce:
    432432      if (index[i] < 0)
    433433        index[i] = 0;
     
    435435        index[i] = getSize(i)-1;
    436436      break;
    437     case Box::Ignore:
     437    case BoundaryConditions::Ignore:
    438438      if (index[i] < 0)
    439439        index[i] = 0;
     
    470470        "LinkedCell_Model::getNeighborhoodBounds() - index "+toString(index)+" out of upper bounds.");
    471471    switch (domain.getConditions()[i]) {
    472       case Box::Wrap:
     472      case BoundaryConditions::Wrap:
    473473        if ((index[i] - step[i]) < 0)
    474474          neighbors.first[i] = getSize(i) + (index[i] - step[i]);
     
    479479        neighbors.second[i] = 2*step[i]+1;
    480480        break;
    481       case Box::Bounce:
     481      case BoundaryConditions::Bounce:
    482482        neighbors.second[i] = 2*step[i]+1;
    483483        if (index[i] - step[i] >= 0) {
     
    491491        }
    492492        break;
    493       case Box::Ignore:
     493      case BoundaryConditions::Ignore:
    494494        if (index[i] - step[i] < 0)
    495495          neighbors.first[i] = 0;
  • src/LinkedCell/unittests/Makefile.am

    rdd067a rd66cb7  
    5858        ../LinkedCell/unittests/stubs/TesselPointStub.cpp \
    5959        ../LinkedCell/unittests/stubs/WorldStub.cpp \
    60         ../LinkedCell/PointCloudAdaptor.hpp
     60        ../LinkedCell/PointCloudAdaptor.hpp \
     61        ../Box_BoundaryConditions.cpp \
     62        ../Box_BoundaryConditions.hpp
    6163LinkedCell_ControllerUnitTest_LDADD = \
    6264        ../libMolecuilderLinkedCell.la \
  • src/LinkedCell/unittests/stubs/ObserverBoxStub.cpp

    rdd067a rd66cb7  
    3838  OurChannel->addChannel(Box::MatrixChanged);
    3939  *Minv = M->invert();
    40 
    41   conditions.resize(3);
    42   conditions[0] = conditions[1] = conditions[2] = Wrap;
    4340}
    4441
     
    5956}
    6057
    61 const Box::Conditions_t Box::getConditions() const
     58const BoundaryConditions::Conditions_t Box::getConditions() const
    6259{
    63   return conditions;
     60  return conditions.get();
    6461}
    6562
  • src/unittests/BoxUnitTest.cpp

    rdd067a rd66cb7  
    896896  VECTORSET(std::vector) res;
    897897
    898   unitBox->setCondition(0,Box::Bounce);
    899   stretchedBox1->setCondition(0,Box::Bounce);
    900   stretchedBox2->setCondition(0,Box::Bounce);
    901   stretchedBox3->setCondition(0,Box::Bounce);
    902   stretchedBox4->setCondition(0,Box::Bounce);
    903   tiltedBox1->setCondition(0,Box::Bounce);
    904   tiltedBox2->setCondition(0,Box::Bounce);
    905   tiltedBox3->setCondition(0,Box::Bounce);
    906   tiltedBox4->setCondition(0,Box::Bounce);
     898  unitBox->setCondition(0,BoundaryConditions::Bounce);
     899  stretchedBox1->setCondition(0,BoundaryConditions::Bounce);
     900  stretchedBox2->setCondition(0,BoundaryConditions::Bounce);
     901  stretchedBox3->setCondition(0,BoundaryConditions::Bounce);
     902  stretchedBox4->setCondition(0,BoundaryConditions::Bounce);
     903  tiltedBox1->setCondition(0,BoundaryConditions::Bounce);
     904  tiltedBox2->setCondition(0,BoundaryConditions::Bounce);
     905  tiltedBox3->setCondition(0,BoundaryConditions::Bounce);
     906  tiltedBox4->setCondition(0,BoundaryConditions::Bounce);
    907907
    908908  {
     
    994994  }
    995995
    996   unitBox->setCondition(1,Box::Bounce);
    997   stretchedBox1->setCondition(1,Box::Bounce);
    998   stretchedBox2->setCondition(1,Box::Bounce);
    999   stretchedBox3->setCondition(1,Box::Bounce);
    1000   stretchedBox4->setCondition(1,Box::Bounce);
    1001   tiltedBox1->setCondition(1,Box::Bounce);
    1002   tiltedBox2->setCondition(1,Box::Bounce);
    1003   tiltedBox3->setCondition(1,Box::Bounce);
    1004   tiltedBox4->setCondition(1,Box::Bounce);
     996  unitBox->setCondition(1,BoundaryConditions::Bounce);
     997  stretchedBox1->setCondition(1,BoundaryConditions::Bounce);
     998  stretchedBox2->setCondition(1,BoundaryConditions::Bounce);
     999  stretchedBox3->setCondition(1,BoundaryConditions::Bounce);
     1000  stretchedBox4->setCondition(1,BoundaryConditions::Bounce);
     1001  tiltedBox1->setCondition(1,BoundaryConditions::Bounce);
     1002  tiltedBox2->setCondition(1,BoundaryConditions::Bounce);
     1003  tiltedBox3->setCondition(1,BoundaryConditions::Bounce);
     1004  tiltedBox4->setCondition(1,BoundaryConditions::Bounce);
    10051005
    10061006  {
     
    10921092  }
    10931093
    1094   unitBox->setCondition(2,Box::Bounce);
    1095   stretchedBox1->setCondition(2,Box::Bounce);
    1096   stretchedBox2->setCondition(2,Box::Bounce);
    1097   stretchedBox3->setCondition(2,Box::Bounce);
    1098   stretchedBox4->setCondition(2,Box::Bounce);
    1099   tiltedBox1->setCondition(2,Box::Bounce);
    1100   tiltedBox2->setCondition(2,Box::Bounce);
    1101   tiltedBox3->setCondition(2,Box::Bounce);
    1102   tiltedBox4->setCondition(2,Box::Bounce);
     1094  unitBox->setCondition(2,BoundaryConditions::Bounce);
     1095  stretchedBox1->setCondition(2,BoundaryConditions::Bounce);
     1096  stretchedBox2->setCondition(2,BoundaryConditions::Bounce);
     1097  stretchedBox3->setCondition(2,BoundaryConditions::Bounce);
     1098  stretchedBox4->setCondition(2,BoundaryConditions::Bounce);
     1099  tiltedBox1->setCondition(2,BoundaryConditions::Bounce);
     1100  tiltedBox2->setCondition(2,BoundaryConditions::Bounce);
     1101  tiltedBox3->setCondition(2,BoundaryConditions::Bounce);
     1102  tiltedBox4->setCondition(2,BoundaryConditions::Bounce);
    11031103
    11041104  {
     
    11951195  VECTORSET(std::vector) res;
    11961196
    1197   unitBox->setCondition(0,Box::Ignore);
    1198   stretchedBox1->setCondition(0,Box::Ignore);
    1199   stretchedBox2->setCondition(0,Box::Ignore);
    1200   stretchedBox3->setCondition(0,Box::Ignore);
    1201   stretchedBox4->setCondition(0,Box::Ignore);
    1202   tiltedBox1->setCondition(0,Box::Ignore);
    1203   tiltedBox2->setCondition(0,Box::Ignore);
    1204   tiltedBox3->setCondition(0,Box::Ignore);
    1205   tiltedBox4->setCondition(0,Box::Ignore);
     1197  unitBox->setCondition(0,BoundaryConditions::Ignore);
     1198  stretchedBox1->setCondition(0,BoundaryConditions::Ignore);
     1199  stretchedBox2->setCondition(0,BoundaryConditions::Ignore);
     1200  stretchedBox3->setCondition(0,BoundaryConditions::Ignore);
     1201  stretchedBox4->setCondition(0,BoundaryConditions::Ignore);
     1202  tiltedBox1->setCondition(0,BoundaryConditions::Ignore);
     1203  tiltedBox2->setCondition(0,BoundaryConditions::Ignore);
     1204  tiltedBox3->setCondition(0,BoundaryConditions::Ignore);
     1205  tiltedBox4->setCondition(0,BoundaryConditions::Ignore);
    12061206
    12071207  {
     
    12931293  }
    12941294
    1295   unitBox->setCondition(1,Box::Ignore);
    1296   stretchedBox1->setCondition(1,Box::Ignore);
    1297   stretchedBox2->setCondition(1,Box::Ignore);
    1298   stretchedBox3->setCondition(1,Box::Ignore);
    1299   stretchedBox4->setCondition(1,Box::Ignore);
    1300   tiltedBox1->setCondition(1,Box::Ignore);
    1301   tiltedBox2->setCondition(1,Box::Ignore);
    1302   tiltedBox3->setCondition(1,Box::Ignore);
    1303   tiltedBox4->setCondition(1,Box::Ignore);
     1295  unitBox->setCondition(1,BoundaryConditions::Ignore);
     1296  stretchedBox1->setCondition(1,BoundaryConditions::Ignore);
     1297  stretchedBox2->setCondition(1,BoundaryConditions::Ignore);
     1298  stretchedBox3->setCondition(1,BoundaryConditions::Ignore);
     1299  stretchedBox4->setCondition(1,BoundaryConditions::Ignore);
     1300  tiltedBox1->setCondition(1,BoundaryConditions::Ignore);
     1301  tiltedBox2->setCondition(1,BoundaryConditions::Ignore);
     1302  tiltedBox3->setCondition(1,BoundaryConditions::Ignore);
     1303  tiltedBox4->setCondition(1,BoundaryConditions::Ignore);
    13041304
    13051305  {
     
    13911391  }
    13921392
    1393   unitBox->setCondition(2,Box::Ignore);
    1394   stretchedBox1->setCondition(2,Box::Ignore);
    1395   stretchedBox2->setCondition(2,Box::Ignore);
    1396   stretchedBox3->setCondition(2,Box::Ignore);
    1397   stretchedBox4->setCondition(2,Box::Ignore);
    1398   tiltedBox1->setCondition(2,Box::Ignore);
    1399   tiltedBox2->setCondition(2,Box::Ignore);
    1400   tiltedBox3->setCondition(2,Box::Ignore);
    1401   tiltedBox4->setCondition(2,Box::Ignore);
     1393  unitBox->setCondition(2,BoundaryConditions::Ignore);
     1394  stretchedBox1->setCondition(2,BoundaryConditions::Ignore);
     1395  stretchedBox2->setCondition(2,BoundaryConditions::Ignore);
     1396  stretchedBox3->setCondition(2,BoundaryConditions::Ignore);
     1397  stretchedBox4->setCondition(2,BoundaryConditions::Ignore);
     1398  tiltedBox1->setCondition(2,BoundaryConditions::Ignore);
     1399  tiltedBox2->setCondition(2,BoundaryConditions::Ignore);
     1400  tiltedBox3->setCondition(2,BoundaryConditions::Ignore);
     1401  tiltedBox4->setCondition(2,BoundaryConditions::Ignore);
    14021402
    14031403  {
     
    14941494  VECTORSET(std::vector) res;
    14951495
    1496   unitBox->setCondition(0,Box::Bounce);
    1497   unitBox->setCondition(1,Box::Ignore);
    1498   unitBox->setCondition(2,Box::Wrap);
    1499 
    1500   stretchedBox1->setCondition(0,Box::Bounce);
    1501   stretchedBox1->setCondition(1,Box::Ignore);
    1502   stretchedBox1->setCondition(2,Box::Wrap);
    1503 
    1504   stretchedBox2->setCondition(0,Box::Bounce);
    1505   stretchedBox2->setCondition(1,Box::Ignore);
    1506   stretchedBox2->setCondition(2,Box::Wrap);
    1507 
    1508   stretchedBox3->setCondition(0,Box::Bounce);
    1509   stretchedBox3->setCondition(1,Box::Ignore);
    1510   stretchedBox3->setCondition(2,Box::Wrap);
    1511 
    1512   stretchedBox4->setCondition(0,Box::Bounce);
    1513   stretchedBox4->setCondition(1,Box::Ignore);
    1514   stretchedBox4->setCondition(2,Box::Wrap);
    1515 
    1516   tiltedBox1->setCondition(0,Box::Bounce);
    1517   tiltedBox1->setCondition(1,Box::Ignore);
    1518   tiltedBox1->setCondition(2,Box::Wrap);
    1519 
    1520   tiltedBox2->setCondition(0,Box::Bounce);
    1521   tiltedBox2->setCondition(1,Box::Ignore);
    1522   tiltedBox2->setCondition(2,Box::Wrap);
    1523 
    1524   tiltedBox3->setCondition(0,Box::Bounce);
    1525   tiltedBox3->setCondition(1,Box::Ignore);
    1526   tiltedBox3->setCondition(2,Box::Wrap);
    1527 
    1528   tiltedBox4->setCondition(0,Box::Bounce);
    1529   tiltedBox4->setCondition(1,Box::Ignore);
    1530   tiltedBox4->setCondition(2,Box::Wrap);
     1496  unitBox->setCondition(0,BoundaryConditions::Bounce);
     1497  unitBox->setCondition(1,BoundaryConditions::Ignore);
     1498  unitBox->setCondition(2,BoundaryConditions::Wrap);
     1499
     1500  stretchedBox1->setCondition(0,BoundaryConditions::Bounce);
     1501  stretchedBox1->setCondition(1,BoundaryConditions::Ignore);
     1502  stretchedBox1->setCondition(2,BoundaryConditions::Wrap);
     1503
     1504  stretchedBox2->setCondition(0,BoundaryConditions::Bounce);
     1505  stretchedBox2->setCondition(1,BoundaryConditions::Ignore);
     1506  stretchedBox2->setCondition(2,BoundaryConditions::Wrap);
     1507
     1508  stretchedBox3->setCondition(0,BoundaryConditions::Bounce);
     1509  stretchedBox3->setCondition(1,BoundaryConditions::Ignore);
     1510  stretchedBox3->setCondition(2,BoundaryConditions::Wrap);
     1511
     1512  stretchedBox4->setCondition(0,BoundaryConditions::Bounce);
     1513  stretchedBox4->setCondition(1,BoundaryConditions::Ignore);
     1514  stretchedBox4->setCondition(2,BoundaryConditions::Wrap);
     1515
     1516  tiltedBox1->setCondition(0,BoundaryConditions::Bounce);
     1517  tiltedBox1->setCondition(1,BoundaryConditions::Ignore);
     1518  tiltedBox1->setCondition(2,BoundaryConditions::Wrap);
     1519
     1520  tiltedBox2->setCondition(0,BoundaryConditions::Bounce);
     1521  tiltedBox2->setCondition(1,BoundaryConditions::Ignore);
     1522  tiltedBox2->setCondition(2,BoundaryConditions::Wrap);
     1523
     1524  tiltedBox3->setCondition(0,BoundaryConditions::Bounce);
     1525  tiltedBox3->setCondition(1,BoundaryConditions::Ignore);
     1526  tiltedBox3->setCondition(2,BoundaryConditions::Wrap);
     1527
     1528  tiltedBox4->setCondition(0,BoundaryConditions::Bounce);
     1529  tiltedBox4->setCondition(1,BoundaryConditions::Ignore);
     1530  tiltedBox4->setCondition(2,BoundaryConditions::Wrap);
    15311531
    15321532  {
     
    16461646
    16471647  // create update BoundaryConditionsChanged
    1648   unitBox->setCondition(0, Box::Wrap);
     1648  unitBox->setCondition(0, BoundaryConditions::Wrap);
    16491649  CPPUNIT_ASSERT_EQUAL((int)2, observer_general->updates);
    16501650  CPPUNIT_ASSERT_EQUAL(false, observer_matrix->wasNotified);
Note: See TracChangeset for help on using the changeset viewer.