PSCF v1.4.0

Brownian dynamics Monte-Carlo move. More...

#include <BdMove.h>

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

Public Member Functions

void readParameters (std::istream &in) override
 Read body of parameter file block.
bool move () override
 Generate a short BD simulation.
bool needsDc () override
 Do dc derivative components need to be saved before a step?

Protected Member Functions

 BdMove (typename T::McSimulator &simulator)
 Constructor.
 ~BdMove ()=default
 Destructor.
void bdSetup ()
 Setup before simulation loop.
bool bdStep ()
 Take a single Brownian dynamics step.

Detailed Description

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

Brownian dynamics Monte-Carlo move.

A BdMove is a Monte-Carlo move that simply runs a short Brownian dynamics (BD) simulation, and always accepts the result. This implementation uses the Leimkuhler-Matthews BD step algorithm.

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

Template parameters:

See also
Manual Page

Definition at line 40 of file fts/montecarlo/BdMove.h.

Constructor & Destructor Documentation

◆ BdMove()

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

Constructor.

Parameters
simulatorparent McSimulator object

Definition at line 25 of file BdMove.tpp.

References Util::ParamComposite::setClassName().

◆ ~BdMove()

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

Destructor.

Member Function Documentation

◆ readParameters()

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

Read body of parameter file block.

Parameters
ininput parameter stream

Definition at line 40 of file BdMove.tpp.

References Util::ParamComposite::read().

◆ move()

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

Generate a short BD simulation.

Definition at line 63 of file BdMove.tpp.

References UTIL_CHECK.

◆ needsDc()

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

Do dc derivative components need to be saved before a step?

The default implementation returns true.

Returns
true to save, or false otherwise

Definition at line 66 of file fts/montecarlo/BdMove.h.

◆ bdSetup()

template<int D, class T>
void Pscf::Rp::BdMove< D, T >::bdSetup ( )
protected

Setup before simulation loop.

Definition at line 100 of file BdMove.tpp.

References UTIL_CHECK.

◆ bdStep()

template<int D, class T>
bool Pscf::Rp::BdMove< D, T >::bdStep ( )
protected

Take a single Brownian dynamics step.

Returns
true if compressor converged, false otherwise

Definition at line 144 of file BdMove.tpp.

References Pscf::VecOp::addEqVc(), Pscf::VecOp::addVV(), Pscf::VecOp::eqV(), and UTIL_CHECK.


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