bin management: main data structure used by Wang_landau algorithm
More...
#include <WL_data_structure_internal.hpp>
|
virtual Snapshot_ptr | update_increment () |
| update_increment is called after new points have been generated and accepted(or not) in the WL algo. it updates the increment by which the (log) density is increased when a new point is generated in a given bin. More...
|
|
void | update_densities (const Bin_index &index) |
| update_densities updates the density vector when a new point is sampled by the WL algorithm. More...
|
|
std::pair< bool, Snapshot_ptr > | energy_out_of_range (const DS_conformation &conf) |
| energy_out_of_range is called when a point is sampled in a not already existing bin. It should handle the creation of a new bin if supported. This should be modified to initialize Custom_per_bin_stats at propers values if needed. More...
|
|
void | update_histogram (const DS_conformation &newpt, const DS_conformation &oldpt, const bool &accepted, const bool &boundary_check) |
| update_histogram is called when a new point is sampled. It should be used to store some statistics on how the algorithm is working, which might be later used in update_parameters() More...
|
|
double & | get_density (const Bin_index &index) |
| get_density returns the density of a point More...
|
|
Bin_index | get_bin_index_from_energy (const double &e) |
| get_bin_index_from_energy finds the bin containing the energy e More...
|
|
Bin_index | get_bin_index_from_energy (const double &e, const double &e1, const Bin_index &i1) |
| get_bin_index_from_energy should uses that the point previously sampled should be in a bin close to the new newly sampled point More...
|
|
bool | is_energy_in_range (const DS_conformation &conf) |
| is_energy_in_range checks if a Bin_index is valid. More...
|
|
|
Bin_index | add_bin (Bin_energy_range bin) |
| add_bin is a helper function which add a bin to the bin vector/ properties vector More...
|
|
template<class Conformation, class Bin_properties = Bin_properties_Internal, template< class >class DS_snapshot_ = T_DS_snapshot_default>
class SBL::GT::T_WL_Data_Structure_Internal< Conformation, Bin_properties, DS_snapshot_ >
bin management: main data structure used by Wang_landau algorithm
- manages bins (creation, index of bin for point, etc)
- handles the flat histogram or 1/t policy
- performs the DoS update for a new point
- records all relevant stats
◆ add_bin()
Bin_index add_bin |
( |
Bin_energy_range |
bin | ) |
|
|
inlineprotected |
add_bin is a helper function which add a bin to the bin vector/ properties vector
- Parameters
-
- Returns
◆ energy_out_of_range()
std::pair<bool,Snapshot_ptr> energy_out_of_range |
( |
const DS_conformation & |
conf | ) |
|
|
inline |
energy_out_of_range is called when a point is sampled in a not already existing bin. It should handle the creation of a new bin if supported. This should be modified to initialize Custom_per_bin_stats at propers values if needed.
- Parameters
-
- Returns
- false is returned if this case is not supported. WL algorithm should then quit gracefully.
◆ get_bin_index_from_energy() [1/2]
Bin_index get_bin_index_from_energy |
( |
const double & |
e | ) |
|
|
inline |
get_bin_index_from_energy finds the bin containing the energy e
- Parameters
-
- Returns
- return a Bin_index describing the bin contatining energy e. If no bin contains e, an invalid bin is returned (here -1)
◆ get_bin_index_from_energy() [2/2]
Bin_index get_bin_index_from_energy |
( |
const double & |
e, |
|
|
const double & |
e1, |
|
|
const Bin_index & |
i1 |
|
) |
| |
|
inline |
get_bin_index_from_energy should uses that the point previously sampled should be in a bin close to the new newly sampled point
- Parameters
-
e | new energy |
e1 | previous energy |
i1 | previous bin |
- Returns
◆ get_density()
double& get_density |
( |
const Bin_index & |
index | ) |
|
|
inline |
get_density returns the density of a point
- Parameters
-
- Returns
◆ is_energy_in_range()
is_energy_in_range checks if a Bin_index is valid.
- Parameters
-
- Returns
◆ update_densities()
void update_densities |
( |
const Bin_index & |
index | ) |
|
|
inline |
update_densities updates the density vector when a new point is sampled by the WL algorithm.
- Parameters
-
◆ update_histogram()
update_histogram is called when a new point is sampled. It should be used to store some statistics on how the algorithm is working, which might be later used in update_parameters()
- Parameters
-
oldpt | previous point in the algorithm |
newpt | point sampled by the Point_generator |
accepted | is the new point accepted after the metropolis test |
boundary_check | is the result of the boundary check |
◆ update_increment()
virtual Snapshot_ptr update_increment |
( |
| ) |
|
|
inlinevirtual |
update_increment is called after new points have been generated and accepted(or not) in the WL algo. it updates the increment by which the (log) density is increased when a new point is generated in a given bin.