Skip to content
Snippets Groups Projects
  1. Nov 30, 2019
  2. Nov 28, 2019
  3. Oct 27, 2019
    • Ke Liu's avatar
      changed cmake_minimum_required to VERSION 3.1 · 6d1858e4
      Ke Liu authored
      6d1858e4
    • Jonas Greitemann's avatar
      Remove deprecated member type from interface def · 9297b794
      Jonas Greitemann authored
      The member types `phase_label` and `phase_sweep_policy_type` formerly
      required a definition as part of the TKSVM simulation class interface.
      The need for this historically originated in when classifiers and sweep
      policies were determined at compile time. Now that these are derived of
      abstract policies, the remaining uses of these types could be replaced
      by their canonical definitions:
      
          using phase_label = typename phase_space::classifier::policy<phase_point>::label_type;
          using phase_sweep_policy_type = phase_space::sweep::policy<phase_point>;
      
      TKSVM-compliant simulation classes are thus now longer required to
      implement these.
      9297b794
  4. Oct 22, 2019
  5. Oct 05, 2019
  6. Sep 29, 2019
  7. Sep 28, 2019
  8. Apr 08, 2019
  9. Apr 05, 2019
    • Jonas Greitemann's avatar
      Replace all fixed_from_* classifiers w/ single one · 6702b1d8
      Jonas Greitemann authored
      Sized sweep policies allow for the definition of a single
      `fixed_from_sweep` classifier that works with points generated from
      arbitrary sweep policies.
      6702b1d8
    • Jonas Greitemann's avatar
      Use dynamic numeric_label for all phase classifiers · 3bce8939
      Jonas Greitemann authored
      This is in preparation of making phase classifiers selectable at
      runtime.
      
      Classifiers now provide additional functions `name` and `size` to expose
      human-readable labels.
      
      As a consequence, the `phase_diagram` classifier could be rewritten such
      that a single class covers both D2h and D3h cases, and indeed all phase
      diagrams defined on the same (J1J3) parameter space.
      3bce8939
  10. Mar 29, 2019
    • Jonas Greitemann's avatar
      Allow for dynamic selection of test sweep policy · e2256746
      Jonas Greitemann authored
      Sweep policy used to generate phase space points for the testing stage
      can be specified from parameters using `test.policy`. Any other
      parameters are specified in much the same way as their `sweep.*`
      counterparts. The only difference is that `test.policy` defaults to
      "line_scan" (meaning that existing parameter files remain valid),
      whereas `sweep.policy` defaults to "cycle".
      
      Also note that the "multipurpose" parameter `sweep.N` (which applied to
      the `uniform` and `uniform_line`) has been replaced with separate `N`
      parameters.
      e2256746
  11. Mar 25, 2019
    • Jonas Greitemann's avatar
      measurements() member function shadows member var · 59651150
      Jonas Greitemann authored
      The change described in the commit message of 489a6f27 has been
      implemented. Client codes have to replace any usage of the protected
      `measurements` member variable (of `alps::mcbase`) with the
      `measurements()` member function. Failing to do so generates errors
      (because the function shadows the variable) thus accidental misuse is
      precluded.
      59651150
    • Jonas Greitemann's avatar
      Fix bug: harmonized virtual interface functions · 9b1b1d2a
      Jonas Greitemann authored
      Previously, the signatures of
      * reset_sweeps
      * phase_space_point
      * update_phase_point
      didn't match exactly across all client codes, leading to compiler errors
      because of the `override` keyword.
      
      Also, the embarrassing_adapter defines these functions as pure virtual,
      forcing their implementation. The pt_adapter on the other hand defines
      implementations for these functions. Simulations derived from the
      pt_adapter should still override these but make sure they still call
      their base class counterparts.
      9b1b1d2a
  12. Mar 24, 2019
    • Jonas Greitemann's avatar
      Permute inheritance of simulation classes · 95fc3284
      Jonas Greitemann authored
      The embarrassing_adapter / pt_adapter are now *base* classes of the main
      simulation class, replacing `alps::mcbase`. For now, this change is only
      made for the ising and gauge client codes with the embarrassing_adapter;
      the frustmag simulation is defunct as of this commit.
      
      This has several advantages:
      * simulation classes can call member functions of their base classes. In
        particular when using PT, the simulation can call `negotiate_update`
        directly, eliminating the need for installation of callbacks, etc.
      * mcbase's `measurements` object can be replaced / shadowed. This
        mechanism will allow the `pt_adapter` to rebind the measurements
        object when a PT update is carried out.
      * The simulation class does no longer need to obtain the MPI
        communicator.
      * Each simulation class directly chooses its preferred parallelization
        model by choosing an appropriate base. This eliminates the future need
        for some sort of trait class which detect if parallel tempering is
        supported / required.
      * ...
      
      A few technical notes:
      * Simulation codes need to make sure they're calling their direct base
        class's save / load functions.
      * The embarrassing_adapter directly inherits from `alps::mc::mpiadapter`
        which however requires a non-const reference of the parameters object.
      * The embarrassing_adapter needs to shadow the mpiadapters `run`
        function because the mpiadapter was intended to inherit from the main
        simulation class and thus calls `Simulation::fraction_completed()`.
        However, we want this to be a virtual function call into the derived
        main simulation class.
      
      (Because of the last two points, it is probably advisable to not derive
      embarrassing_adapter from mpiadapter at all.)
        This would be to be considered a bug in upstream ALPSCore, but is for
        now worked around by changing the ctor signature of all simulation
        classes and adapters to have non-const refs.
      *
      95fc3284
  13. Mar 20, 2019
    • Jonas Greitemann's avatar
      Reset measurements in reset_sweeps; interface ch'd · 3f1b2cde
      Jonas Greitemann authored
      SVM interface has changed: update_phase_point(...) is now supposed to
      return a bool, indicating whether the point has indeed changed (i.e.
      fresh thermalization is in order). It should *no longer* call
      reset_sweeps itself. This is because it is intended to be used in PT to
      update the current phase space point w/o resetting the progress of the
      simulation.
      
      As a consequence, the test_adapter is also no longer allowed to reset
      the simulation's measurements member; this is now done in reset_sweeps.
      Analogously it befalls to the pt_adapter to clear the measurements for
      all the slices in reset_sweeps. I.e. this would be the case when the PT
      *batch* is changed, but not when the PT update issues a swap of phase
      space points.
      3f1b2cde
  14. Mar 04, 2019
    • Jonas Greitemann's avatar
      Sample program completed; run sim, write .clone.h5 · e3a421c5
      Jonas Greitemann authored
      The training_adapter no longer manages the sweep. The interface function
      update_phase_point has been changed such that it accepts concrete phase
      space points, rather than generating them from the sweep policy. The
      sweep_policy is only used in the sample program and consumed to generate
      all the phase space points.
      
      Resuming simulation from the checkpoint in the sample program works now.
      
      The learn program has been stripped down to its SVM optimization part;
      no sampling takes place there.
      e3a421c5
  15. Feb 20, 2019
    • Jonas Greitemann's avatar
      Add flag --infinite-temperature in learn program · 1538ef30
      Jonas Greitemann authored
      To compare phases to the "infinite temperature" state where all spins
      are randomly oriented, a new flag --infinite-temperature, -i has been
      introduced to the learn program. When specified, an additional "fake"
      phase space point is "sampled" were the configurations are perfectly
      random.
      
      To achieve this, the SVM interface for client codes has been expanded to
      include a random_configuration() function. This is a breaking change as
      client codes have to implement this from now on.
      
      This feature is intended to be used with the fixed_from_cycle classifier
      which has been made aware of the "fake" infinity phase point and will
      classifier those samples with a distinct label.
      1538ef30
  16. Feb 07, 2019
  17. Feb 04, 2019
  18. Jan 30, 2019
  19. Jan 28, 2019
  20. Jan 14, 2019
  21. Nov 06, 2018
  22. Nov 02, 2018
    • Jonas Greitemann's avatar
      Split config_policy.hpp into two files and refactory directory · 4c3fdf8d
      Jonas Greitemann authored
      Moved stuff not related to the gauge model to the root directory.
      
      config_policy.hpp holds the abstract config_policy interface, the (reusable)
      monomial_config_policy and the dummy block_config_policy.
      gauge/gauge_config_policy.hpp holds the lattice_policy and the concrete
      gauge_config_policy class, as well as code to instantiate the config_policy from
      parameters.
      4c3fdf8d
    • Jonas Greitemann's avatar
      Move config policy from gauge_sim to higher level · fe4e8673
      Jonas Greitemann authored
      The config policy concept is promoted from the application to the gauge model
      specifically to a general utility. Gauge-specific functionality is retained in
      the gauge_config_policy class.
      
      Due to API changes, the Ising code is currently broken and will be restored
      later.
      fe4e8673
  23. Oct 31, 2018
  24. Oct 15, 2018
  25. Oct 10, 2018
    • Jonas Greitemann's avatar
      At dynamic lattice "full", replacing the "resolved" lattice policy · 8f7c3ba7
      Jonas Greitemann authored
      Also did from naming / refactoring of parameters:
      
      * "resolve_sites", "bipartite" switches have been phased out in favor of the
        "cluster" parameter which can have three string values:
          - "single" for single-spin lattice-averaged configurations (the default),
          - "bipartite" for two-spin lattice-averaged configurations (for AFM),
          - "full" for configurations w/o lattice average (replacing "resolve_sites")
      * "uniaxial" switch has been replaced with "color" which is one of the strings:
          - "mono" for using only the S^n spins in the configuration (was uniaxial==1)
          - "triad" for using all three colored spins (was uniaxial==0)
      
      Some of the classes have been refactored to reflect this new nomenclature.
      8f7c3ba7
  26. Oct 09, 2018
Loading