faunus
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Faunus::Energy::Penalty Class Reference

sum_of_energy_increments is the total change of updating the energy function. More...

#include <penalty.h>

Inheritance diagram for Faunus::Energy::Penalty:
Inheritance graph
[legend]
Collaboration diagram for Faunus::Energy::Penalty:
Collaboration graph
[legend]

Public Member Functions

 Penalty (const json &j, const Space &spc)
 
 ~Penalty () override
 destruct and save to disk (!) More...
 
double energy (const Change &change) override
 energy due to change
 
void sync (EnergyTerm *other, const Change &change) override
 Called when a move is accepted or rejected, as well as when initializing the system. More...
 
void streamPenaltyFunction (std::ostream &stream) const
 Stream penalty function, offset with the minimum observed energy.
 
void streamHistogram (std::ostream &stream) const
 
- Public Member Functions inherited from Faunus::Energy::EnergyTerm
virtual void init ()
 reset and initialize
 
virtual void updateState (const Change &change)
 Update internal state to reflect change in e.g. Space. More...
 
virtual void force (PointVector &forces)
 update forces on all particles
 

Protected Types

typedef std::shared_ptr< ReactionCoordinate::ReactionCoordinateBaseTcoord
 

Protected Member Functions

void logBarrierInformation () const
 Add barrier information to output log.
 

Protected Attributes

bool verbose = false
 kæft op?
 
bool avoid_energy_drift = true
 avoid energy drift when upgrading penalty function
 
size_t number_of_reaction_coordinates = 0
 number of reaction coordinate
 
size_t update_counter = 0
 number of calls to sync()
 
size_t number_of_steps_between_updates
 update frequency [steps]
 
size_t penalty_function_exchange_counter = 0
 
size_t samplings
 
double sum_of_energy_increments = 0
 total energy change of updating penalty function
 
double energy_increment_scaling_factor = 1.0
 scaling factor for f0
 
double energy_increment = 0.0
 penalty increment
 
std::vector< Tcoord > reaction_coordinates_functions
 vector of reaction coordinate functions (length = 1 or 2)
 
std::vector< double > latest_coordinate
 latest reaction coordinate (length = 1 or 2)
 
Table< unsigned int > histogram
 count how often a reaction coordinate is visited
 
Table< double > penalty_energy
 penalty energy as a function of coordinates
 

Additional Inherited Members

- Public Types inherited from Faunus::Energy::EnergyTerm
enum  MonteCarloState { ACCEPTED, TRIAL, NONE }
 
- Public Attributes inherited from Faunus::Energy::EnergyTerm
MonteCarloState state = MonteCarloState::NONE
 
std::string name
 Meaningful name.
 
std::string citation_information
 Possible reference; may be left empty.
 
TimeRelativeOfTotal< std::chrono::microseconds > timer
 Timer for measuring speed.
 

Detailed Description

sum_of_energy_increments is the total change of updating the energy function.

If not handled this will appear as an energy drift (which it is!). To avoid this, this term is added to the energy but since it's the same in both the trial and old state energies it will not affect MC move acceptance.

Constructor & Destructor Documentation

◆ ~Penalty()

Faunus::Energy::Penalty::~Penalty ( )
override

destruct and save to disk (!)

Todo:
Foul to let constructor be responsible for i/o...

Member Function Documentation

◆ sync()

void Faunus::Energy::Penalty::sync ( EnergyTerm other,
const Change change 
)
overridevirtual

Called when a move is accepted or rejected, as well as when initializing the system.

Todo:
: this doubles the MPI communication

Reimplemented from Faunus::Energy::EnergyTerm.


The documentation for this class was generated from the following files: