QMCPACK
SampleStack Class Reference
+ Collaboration diagram for SampleStack:

Public Types

using PropertySetType = QMCTraits::PropertySetType
 

Public Member Functions

size_t getMaxSamples () const
 
bool empty () const
 
const MCSamplegetSample (size_t i) const
 
void resetSampleCount ()
 Set the sample count to zero but preserve the storage. More...
 
size_t getNumSamples () const
 
void setMaxSamples (size_t n, size_t number_of_ranks=1)
 set the number of max samples per rank. More...
 
size_t getGlobalNumSamples () const
 Global number of samples is number of samples per rank * number of ranks. More...
 
void loadSample (ParticleSet &pset, size_t iw) const
 load a single sample from SampleStack More...
 
void appendSample (MCSample &&sample)
 
void clearEnsemble ()
 clear the ensemble More...
 

Private Attributes

size_t max_samples_ {10}
 
size_t current_sample_count_ {0}
 
size_t global_num_samples_ {max_samples_}
 
std::vector< MCSamplesample_vector_
 

Detailed Description

Definition at line 29 of file SampleStack.h.

Member Typedef Documentation

◆ PropertySetType

Definition at line 32 of file SampleStack.h.

Member Function Documentation

◆ appendSample()

void appendSample ( MCSample &&  sample)

Definition at line 33 of file SampleStack.cpp.

References SampleStack::current_sample_count_, SampleStack::max_samples_, and SampleStack::sample_vector_.

Referenced by VMCBatched::run(), MCWalkerConfiguration::saveEnsemble(), and qmcplusplus::TEST_CASE().

34 {
35  // Ignore samples in excess of the expected number of samples
37  {
38  sample_vector_[current_sample_count_] = std::move(sample);
40  }
41 }
std::vector< MCSample > sample_vector_
Definition: SampleStack.h:62

◆ clearEnsemble()

◆ empty()

bool empty ( ) const
inline

Definition at line 36 of file SampleStack.h.

References SampleStack::sample_vector_.

Referenced by MCWalkerConfiguration::loadEnsemble().

36 { return sample_vector_.empty(); }
std::vector< MCSample > sample_vector_
Definition: SampleStack.h:62

◆ getGlobalNumSamples()

size_t getGlobalNumSamples ( ) const
inline

Global number of samples is number of samples per rank * number of ranks.

Definition at line 45 of file SampleStack.h.

References SampleStack::global_num_samples_.

Referenced by QMCCostFunctionBatched::correlatedSampling(), and qmcplusplus::TEST_CASE().

45 { return global_num_samples_; }

◆ getMaxSamples()

size_t getMaxSamples ( ) const
inline

◆ getNumSamples()

◆ getSample()

const MCSample & getSample ( size_t  i) const

Definition at line 31 of file SampleStack.cpp.

References SampleStack::sample_vector_.

Referenced by MCWalkerConfiguration::loadEnsemble(), and qmcplusplus::TEST_CASE().

31 { return sample_vector_[i]; }
std::vector< MCSample > sample_vector_
Definition: SampleStack.h:62

◆ loadSample()

void loadSample ( ParticleSet pset,
size_t  iw 
) const

load a single sample from SampleStack

Definition at line 45 of file SampleStack.cpp.

References qmcplusplus::pset, and SampleStack::sample_vector_.

Referenced by MCWalkerConfiguration::loadSample().

46 {
47  pset.R = sample_vector_[iw].R;
48  pset.spins = sample_vector_[iw].spins;
49 }
std::vector< MCSample > sample_vector_
Definition: SampleStack.h:62

◆ resetSampleCount()

void resetSampleCount ( )

Set the sample count to zero but preserve the storage.

Definition at line 57 of file SampleStack.cpp.

References SampleStack::current_sample_count_.

Referenced by QMCFixedSampleLinearOptimizeBatched::generateSamples(), and qmcplusplus::TEST_CASE().

◆ setMaxSamples()

void setMaxSamples ( size_t  n,
size_t  num_ranks = 1 
)

set the number of max samples per rank.

allocate the SampleStack

Parameters
nnumber of samples per rank
num_ranksnumber of ranks. Used to set global number of samples.

Definition at line 23 of file SampleStack.cpp.

References SampleStack::current_sample_count_, SampleStack::global_num_samples_, SampleStack::max_samples_, omptarget::min(), qmcplusplus::n, qmcplusplus::num_ranks, and SampleStack::sample_vector_.

Referenced by VMCBatched::enable_sample_collection(), MCWalkerConfiguration::MCWalkerConfiguration(), MCWalkerConfiguration::setNumSamples(), and qmcplusplus::TEST_CASE().

24 {
25  max_samples_ = n;
28  sample_vector_.resize(n, MCSample(0));
29 }
std::vector< MCSample > sample_vector_
Definition: SampleStack.h:62
T min(T a, T b)

Member Data Documentation

◆ current_sample_count_

◆ global_num_samples_

size_t global_num_samples_ {max_samples_}
private

Definition at line 60 of file SampleStack.h.

Referenced by SampleStack::getGlobalNumSamples(), and SampleStack::setMaxSamples().

◆ max_samples_

size_t max_samples_ {10}
private

◆ sample_vector_


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