- Nov 30, 2019
-
-
Jonas Greitemann authored
-
- Nov 28, 2019
-
-
Jonas Greitemann authored
-
Jonas Greitemann authored
-
Jonas Greitemann authored
-
Jonas Greitemann authored
-
- Oct 27, 2019
-
-
Ke Liu authored
-
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.
-
- Oct 22, 2019
-
-
Jonas Greitemann authored
-
Jonas Greitemann authored
-
- Oct 05, 2019
-
-
Jonas Greitemann authored
-
Jonas Greitemann authored
-
- Sep 29, 2019
-
-
Jonas Greitemann authored
-
Jonas Greitemann authored
Renamed concept of `LatticePolicy` to `ClusterPolicy` to avoid confusion with frustmag `Lattice`s. Define `gauge_config_policy` as an alias to `clustered_config_policy`.
-
Jonas Greitemann authored
-
- Sep 28, 2019
-
-
Jonas Greitemann authored
Its configuration(...) function now adheres to the common method of accessing elements by `cell[block(a)][component(a)]`.
-
- Apr 08, 2019
-
-
Jonas Greitemann authored
New approach is agnostic w.r.t. client codes. The `sim_base` type needs to be defined in the main client-code include.
-
Jonas Greitemann authored
-
- Apr 05, 2019
-
-
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.
-
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.
-
- Mar 29, 2019
-
-
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.
-
- Mar 25, 2019
-
-
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.
-
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.
-
- Mar 24, 2019
-
-
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. *
-
- Mar 20, 2019
-
-
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.
-
- Mar 04, 2019
-
-
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.
-
- Feb 20, 2019
-
-
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.
-
- Feb 07, 2019
-
-
Jonas Greitemann authored
-
- Feb 04, 2019
-
-
Jonas Greitemann authored
This are actually meaningless and prompt compiler warnings. Instead (though technically unrelated), declared those functions constexpr. Also removed some unused argument names to silence the corresponding warnings.
-
Jonas Greitemann authored
Previously all ElementPolicies had to provide their version of `rearranged_index`. This was unnecessary and led to bugs in the past. DRY
-
- Jan 30, 2019
-
-
Jonas Greitemann authored
-
- Jan 28, 2019
-
-
Jonas Greitemann authored
-
- Jan 14, 2019
-
-
Jonas Greitemann authored
For all projects so far (ising, gauge, frustmag) this is line_scan. Parameters associated with line_scan are no longer defined nor read in the generic test program. Future projects may thus define their own sweep policy for testing if restrictions to sample selection apply.
-
- Nov 06, 2018
-
-
Jonas Greitemann authored
Derive mono from components, but do not use gauge-specific mono in generic coeffs and output_contractions program code.
-
- Nov 02, 2018
-
-
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.
-
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.
-
- Oct 31, 2018
-
-
Jonas Greitemann authored
Minimize the amount of code that is specific to the gauge model and collect the rest in an reusable intermediate base class `monomial_config_policy`.
-
- Oct 15, 2018
-
-
Jonas Greitemann authored
Upstream ALPSCore has merged PR #559 which fixed ALPSCore issue #436. Command line overrides of parameters are possible again. * https://github.com/ALPSCore/ALPSCore/pull/559 * https://github.com/ALPSCore/ALPSCore/issues/436 The previous workaround is no longer necessary and has been removed; confer * commit cdcc6b80 * commit 3722c6e6 * commit 7eedfea9
-
Jonas Greitemann authored
-
- Oct 10, 2018
-
-
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.
-
- Oct 09, 2018
-
-
Jonas Greitemann authored
Allowing for stateful ElementPolicies (rather than relying on compile-time constants) opens the door for ElementPolicies that depend on the details of lattice that are chosen at runtime.
-