Loading...
Searching...
No Matches
PLMD::AtomDistribution Struct Referenceabstract

tested in regtest/tools/rt-make-AtomicDistribution Acts as a template for any distribution More...

#include <AtomDistribution.h>

Inheritance diagram for PLMD::AtomDistribution:

Classes

struct  documentation
 

Public Member Functions

virtual ~AtomDistribution () noexcept
 
void frame (std::vector< Vector > &posToUpdate, std::vector< double > &box, unsigned step, Random &rng)
 Update the input vectors with the position and the box of the frame.
 
virtual void frame (View< Vector > posToUpdate, View< double, 9 > box, unsigned step, Random &rng)=0
 Update the input vectors with the position and the box of the frame.
 
virtual bool overrideNat (unsigned &)
 If necessary changes the number of atoms, returns true if that number has been changed.
 

Static Public Member Functions

static std::unique_ptr< AtomDistributiondecorateAtomDistribution (std::unique_ptr< AtomDistribution > &&ad, std::string_view decoratorsDistr)
 
static std::unique_ptr< AtomDistributiongetAtomDistribution (std::string_view atomicDistr)
 
static std::vector< documentationgetDecoratorsDocumentation ()
 
static std::vector< std::string > getDecoratorsList ()
 
static std::vector< documentationgetDistributionDocumentation ()
 
static std::vector< std::string > getDistributionList ()
 

Detailed Description

tested in regtest/tools/rt-make-AtomicDistribution Acts as a template for any distribution

Constructor & Destructor Documentation

◆ ~AtomDistribution()

virtual PLMD::AtomDistribution::~AtomDistribution ( )
inlinevirtualnoexcept

Member Function Documentation

◆ decorateAtomDistribution()

std::unique_ptr< AtomDistribution > PLMD::AtomDistribution::decorateAtomDistribution ( std::unique_ptr< AtomDistribution > && ad,
std::string_view decoratorsDistr )
static

◆ frame() [1/2]

void PLMD::AtomDistribution::frame ( std::vector< Vector > & posToUpdate,
std::vector< double > & box,
unsigned step,
Random & rng )

Update the input vectors with the position and the box of the frame.

◆ frame() [2/2]

virtual void PLMD::AtomDistribution::frame ( View< Vector > posToUpdate,
View< double, 9 > box,
unsigned step,
Random & rng )
pure virtual

◆ getAtomDistribution()

std::unique_ptr< AtomDistribution > PLMD::AtomDistribution::getAtomDistribution ( std::string_view atomicDistr)
static

◆ getDecoratorsDocumentation()

std::vector< AtomDistribution::documentation > PLMD::AtomDistribution::getDecoratorsDocumentation ( )
static

◆ getDecoratorsList()

std::vector< std::string > PLMD::AtomDistribution::getDecoratorsList ( )
static

◆ getDistributionDocumentation()

std::vector< AtomDistribution::documentation > PLMD::AtomDistribution::getDistributionDocumentation ( )
static

◆ getDistributionList()

std::vector< std::string > PLMD::AtomDistribution::getDistributionList ( )
static

◆ overrideNat()

virtual bool PLMD::AtomDistribution::overrideNat ( unsigned & )
inlinevirtual

If necessary changes the number of atoms, returns true if that number has been changed.

This is used principally in the benchmark. All the atoms distributions usually acts all the atoms passed by the vector of positions, so this does not change the input

But the "reading file" ones will only work if the number of atoms is the same of the one in the file, so this set the input to that number

And in case of the ones that replicate the trajectory this multiplies the input by the number of replicated "systems" this this is needed to inform benchmark that if you asked for replicating N atoms X*Y*Z times it will need an array of N*X*Y*Z atoms Outside of the specific usecase of the benchmark this is less important, because replicate will generate the inner trjectory on a limited number of atoms and the it will replicate it

Reimplemented in PLMD::fileTraj, PLMD::fixedTrajectory, PLMD::forceBoxTrajectory, PLMD::repliedTrajectory, PLMD::scaledTrajectory, and PLMD::wiggleTrajectory.


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