PSCF v1.4.0
Pscf::Rp::ForceBiasMove< D, T > Class Template Referenceabstract

ForceBiasMove attempts a Brownian dynamics move. More...

#include <ForceBiasMove.h>

Inheritance diagram for Pscf::Rp::ForceBiasMove< D, T >:

Public Member Functions

void readParameters (std::istream &in) override
 Read body of parameter file block and allocate memory.
void setup () override
 Setup before the beginning of each simulation run.
bool move () override
 Attempt and accept or reject a force bias Monte-Carlo move.
void output () override
 Output statistics for this move (at the end of simulation)
bool needsDc () override
 Specify if dc fields need to be saved (returns true).

Protected Types

using McMoveT = typename T::McMove
 Alias for McMove base class.

Protected Member Functions

 ForceBiasMove (typename T::McSimulator &simulator)
 Constructor.
 ~ForceBiasMove ()=default
 Destructor.

Detailed Description

template<int D, class T>
class Pscf::Rp::ForceBiasMove< D, T >

ForceBiasMove attempts a Brownian dynamics move.

This class implements a Monte Carlo move in which the unconstrained attempted move is created by an explicit Euler-Maruyama Brownian dynamics step.

Because the probability of attempting a move is not equal to that of generating the reverse move, the acceptance criterion used in the move() function must take into account the ratio of generation probabilities.

Specializations of this class template are used as base classes for two closely analogous class templates, both also named ForceBiasMove, that are defined in Rpc and Rpg namespaces for use in the pscf_rpc and pscf_rpg programs, respectively.

Template parameters:

See also
Manual Page

Definition at line 45 of file fts/montecarlo/ForceBiasMove.h.

Member Typedef Documentation

◆ McMoveT

template<int D, class T>
using Pscf::Rp::ForceBiasMove< D, T >::McMoveT = typename T::McMove
protected

Alias for McMove base class.

Definition at line 96 of file fts/montecarlo/ForceBiasMove.h.

Constructor & Destructor Documentation

◆ ForceBiasMove()

template<int D, class T>
Pscf::Rp::ForceBiasMove< D, T >::ForceBiasMove ( typename T::McSimulator & simulator)
protected

Constructor.

Parameters
simulatorparent McSimulator

Definition at line 26 of file ForceBiasMove.tpp.

References Util::ParamComposite::setClassName().

◆ ~ForceBiasMove()

template<int D, class T>
Pscf::Rp::ForceBiasMove< D, T >::~ForceBiasMove ( )
protecteddefault

Destructor.

Member Function Documentation

◆ readParameters()

template<int D, class T>
void Pscf::Rp::ForceBiasMove< D, T >::readParameters ( std::istream & in)
override

Read body of parameter file block and allocate memory.

Parameters
ininput parameter file stream

Definition at line 37 of file ForceBiasMove.tpp.

References Util::ParamComposite::read().

◆ setup()

template<int D, class T>
void Pscf::Rp::ForceBiasMove< D, T >::setup ( )
override

Setup before the beginning of each simulation run.

Definition at line 63 of file ForceBiasMove.tpp.

References UTIL_CHECK.

◆ move()

template<int D, class T>
bool Pscf::Rp::ForceBiasMove< D, T >::move ( )
override

Attempt and accept or reject a force bias Monte-Carlo move.

Returns
true if accepted, false if rejected

Definition at line 86 of file ForceBiasMove.tpp.

◆ output()

template<int D, class T>
void Pscf::Rp::ForceBiasMove< D, T >::output ( )
override

Output statistics for this move (at the end of simulation)

Definition at line 214 of file ForceBiasMove.tpp.

◆ needsDc()

template<int D, class T>
bool Pscf::Rp::ForceBiasMove< D, T >::needsDc ( )
inlineoverride

Specify if dc fields need to be saved (returns true).

Definition at line 143 of file fts/montecarlo/ForceBiasMove.h.


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