Skip to content
Snippets Groups Projects
  1. Dec 06, 2012
  2. Nov 23, 2012
    • Giovanni Bussi's avatar
      Source tree reorganization · 07d51f5a
      Giovanni Bussi authored
      All the source code have been moved into subdirectories of src/
      Some of these subdirectories are treated in a special manner:
      src/wrapper contains the wrappers for MD codes
      src/main contains the main.cpp file
      src/config contains files generated without compilation,
        just based on configuration info
      src/lib is the place where executables and libraries are put
        at the end
      src/cltools contains the command line tools
      src/tools contains plumed tools (reusable classes)
      src/basic contains PlumedMain, Action hierarchy and other basic stuff
      src/multicolvar contains MultiColvar stuff
      src/imd is the interactive MD (still not totally portable).
      
      Notice that, to allow easy inclusion of .h files from other modules,
      I link all the directories in src/ into module directory. In this
      way it is possible e.g. to write #include "config/PlumedConfig.h"
      
      See src/README and src/basic/Makefile to understand how inter-module
      dependencies are set
      07d51f5a
    • Gareth Tribello's avatar
  3. Jul 20, 2012
  4. Jul 19, 2012
    • Giovanni Bussi's avatar
      License related stuff · d22394b4
      Giovanni Bussi authored
      I added a PEOPLE file containing list of authors and a script
      (src/header.sh) which applies the Licence to all the source files.
      
      It can be applies multiple times (it automatically deletes the present header
      and replace it with the new one). Thus, to change the header, edit header.sh
      and execute it.
      d22394b4
  5. Jul 05, 2012
  6. Jun 26, 2012
    • Gareth Tribello's avatar
      Added function that calculates the distance from a point in cv space. · fc6caf6a
      Gareth Tribello authored
      The point in CV space can be specified using a pdb file, hence the changes
      to Action, Value, etc - all these changes are all so that you can calculate CVs from a
      pdb input file.  Whilst I was messing about I noticed a potential problem with
      natural units and input pdb files.  As we are in natural units there is no
      way of knowing how to convert the pdb from angstroms (unit in pdb)
      to the natural length unit.  For these reasons I assume that when one is in
      natural units pdb input files are also in natural units, this required changes
      in ColvarRMSD and my new ColvarTarget routine as well as a small change in Atom.h.
      fc6caf6a
  7. May 04, 2012
    • Giovanni Bussi's avatar
      Optimization · 8f4ed84e
      Giovanni Bussi authored
      Prefix operator preferred to postfix operators with
      non-int types
      (as suggested by cppcheck)
      8f4ed84e
    • Giovanni Bussi's avatar
      Optimization · f30409ec
      Giovanni Bussi authored
      Many checks on size() transformed in checks on empty()
      (suggested by cppcheck)
      f30409ec
    • Giovanni Bussi's avatar
      Optimization · 56401ae4
      Giovanni Bussi authored
      Many arguments are now passed by reference
      (suggested by cppcheck)
      56401ae4
  8. Apr 23, 2012
  9. Apr 20, 2012
    • Gareth Tribello's avatar
      Added infrastructure for field cvs. In field cv formalism the bias · 22c8a6ec
      Gareth Tribello authored
      is an overlap integral between the current field and some reference
      field ( this can be a sum of fields visited at previous times ala metadynamics ).
      To test the derivatives of the field I changed calculateNumericalDerivatives
      this routine can now be passed an ActionWithValue so that you can differentiate
      objects where something other than a value is passed between Actions.  Currently
      only histogram style field cvs are implemented.
      Wrote documentation for FIELD keyword and for MOMENT keyword.  Also
      rethought numbered keywords and so changed the keywords class a little bit
      Changed number of decimal places in tests so that they worked on other
      computers.  Also made test 23 much less expensive
      Fixed a very persisent bug in field cvs - horay!!!
      22c8a6ec
  10. Mar 05, 2012
  11. Feb 25, 2012
  12. Feb 23, 2012
  13. Feb 10, 2012
  14. Jan 09, 2012
    • Giovanni Bussi's avatar
      Extensive use of forward class declaration. · 6e6dd4be
      Giovanni Bussi authored
      Basically I replaced all objects included in other objects with references, so as
      to eliminate the need to include the corresponding header file. In this manner the
      entanglement of compilation is greatly reduced.
      Forward class declaration is now used everywhere excepted for:
      * cases where it is impossible due to inline functions
        (for efficiency or because they are templates)
      * cases where it is impossible due to inheritance
      * small objects of fixed size such as Vector/Tensor/AtomNumber/Units/Pbc
      * classes of std:: namespace (it is not possible to forward-declare them).
      6e6dd4be
  15. Jan 06, 2012
  16. Jan 04, 2012
  17. Jan 02, 2012
  18. Dec 21, 2011
  19. Dec 19, 2011
    • Giovanni Bussi's avatar
      MPI-safe fopen · 71e6b811
      Giovanni Bussi authored
      Similarly to plumed1, fopen on nodes different from the first opens
      /dev/null file. Notice that this is done only for writing (so as
      to allow non-root nodes to read files). Also, it is done only for
      fopen called inside Action, using the Action communicator. This should
      allow parallelization over CVs (setting a different communicator for each
      of them).
      71e6b811
  20. Dec 02, 2011
    • Giovanni Bussi's avatar
      File opening tools moved to PlumedMain · 00982e03
      Giovanni Bussi authored
      I moved the tools to open a file with a specific prefix to PlumedMain.
      This allows easily to use them also to open the input file, which in
      turn means that we will be able to do bias-exchange and Hamiltonian
      replica exchange
      00982e03
    • Giovanni Bussi's avatar
      Added tool to add a suffix to all open files · 9dfbc8f6
      Giovanni Bussi authored
      It is now possible to automatically add a suffix to
      all the files opened through the Action::fopen tool.
      Opening is done as follows:
      First the file+suffix is tried.
      In case of error the file without suffix is tried.
      
      In this manner, it should be possible to provide a single
      input file also for replica exchange stuff. For output files,
      it should make any difference.
      
      I also added a stupid keyword to test this feature. Just use
      _SET_SUFFIX pippo
      in the plumed.dat file to add a suffix pippo to opened files
      9dfbc8f6
  21. Jul 19, 2011
  22. Jul 18, 2011
    • Giovanni Bussi's avatar
      Tentative implementation of center-of-mass and of virtual atoms. · e54c8c87
      Giovanni Bussi authored
      There is a generic ActionWithVirtualAtom class which can be used
      as the base for Actions able to add new virtual atoms to the
      system. Virtual atoms are stored in Atoms, can be referred to using
      the label of the generating action. Automatically, they are
      assigned an AtomNumber which exceed the real atom numbers
      (e.g. if you have 108 real atoms, virtual atoms will have
      indexes 108,109,...). They are automatically understood by
      the parser provided one uses the parseAtomList() function.
      Each instance of this class only generate a single virtual atom.
      The nice thing is that, since lists of atoms can be dynamically changed
      (e.g. by neighbor lists), dependencies are handled properly
      and a virtual atom is only computed of the steps on which it is needed.
      
      I also implemented a practical case, which is center-of-mass
      (GenericCOM).
      e54c8c87
  23. Jul 13, 2011
    • Giovanni Bussi's avatar
      Added preparation step for Actions · a67412c2
      Giovanni Bussi authored
      New virtual method for Actions which is called at steps when action is
      active just before atoms sharing. This is the right place where Actions
      can change their atom requirements. E.g., you can do
      
      class ColvarSomething{
      ...
      void prepare();
      }
      
      void ColvarSomething::prepare(){
      // take here your decision and eventually change the requested atoms
      }
      a67412c2
  24. Jul 08, 2011
  25. Jul 06, 2011
  26. Jun 30, 2011
    • Giovanni Bussi's avatar
      Added automatic flushing of open files · aa1f4b26
      Giovanni Bussi authored
      I overloaded fopen and fclose inside an Action in such a manner
      that a list of open files is kept. This allows to flush them implicitely,
      without requiring people to write an explicit flush() method.
      aa1f4b26
  27. Jun 28, 2011
    • Giovanni Bussi's avatar
      Numerical derivatives · 0bdf242a
      Giovanni Bussi authored
      Implementation is rather general and allows one to use them not only for debugging but also for real calculation. A keyword NUMERICAL_DERIVATIVES can be used in directives such as COLVARs or FUNCTIONs, and automatically performs numerical derivatives instead of analytical ones. Moreover, I added a DUMPDERIVATIVES directive which prints on a file the derivatives of the (ARG) colvars. E.g.:
      DISTANCE LABEL=C1 ATOMS=0,1 COMPONENTS
      DISTANCE LABEL=C1n ATOMS=0,1 COMPONENTS NUMERICAL_DERIVATIVES
      DUMPDERIVATIVES ARG=C1,C1n FILE=derivC1
      will define two CVs, with the same value, but one with analytical and the other with numerical derivatives, and will write two columns on file "derivC1" with the derivatives, which can be compared for debugging.
      
      BE CAREFUL: I did not test it with non-orthorombic cells, there may be problems in the virial components
      0bdf242a
Loading