TrialFactory
-
class TrialFactory : public feasst::Trial
Contains multiple Trials.
Public Functions
Add a trial.
-
void remove(const int index)
Remove a trial by index.
-
int num() const
Return the number of trials.
-
int random_index(Random *random)
Return the index of a trial selected with probability proportional to its weight.
-
bool attempt(Criteria *criteria, System *system, int trial_index, Random *random)
Attempt one of the trials. Return true if accepted.
- param trial_index:
attempt trial_index. If -1, choose randomly with probabilty determined from the weight.
-
bool attempt(Criteria *criteria, System *system, Random *random)
Attempt one of the trials with selection probability proportional to the weight.
-
int last_index() const
Return the index of the last trial attempted.
-
const std::vector<double> &cumulative_probability() const
Return the cumulative probability of each trial.
-
void revert(const int index, const bool accepted, const bool auto_rejected, System *system, Criteria *criteria)
Revert changes to system by trial index.
-
std::string status_header() const
Return the header description for the statuses of the trials (e.g., acceptance, etc).
-
std::string status() const
Return the statuses of the trials (e.g., acceptance, etc).
-
void reset_stats()
Reset trial statistics.
-
void precompute(Criteria *criteria, System *system)
Precompute quantities before simulation for optimization.
-
void set_timer()
Set the timer.
-
const TimerRDTSC *const timer() const
Return timer.
-
class TrialFactoryNamed
Contains multiple Trials for use as input into MonteCarlo. As opposed to the above, these classes are named to enable factories. Serialization is not required.
Subclassed by feasst::TrialAVB2, feasst::TrialGibbsParticleTransfer, feasst::TrialGrow, feasst::TrialRigidCluster, feasst::TrialTransfer, feasst::TrialTransferAVB, feasst::TrialTransferAVBDivalent, feasst::TrialTransferMultiple