18#ifndef VOTCA_CSG_RDF_CALCULATOR_H
19#define VOTCA_CSG_RDF_CALCULATOR_H
26#include <boost/numeric/ublas/io.hpp>
27#include <boost/numeric/ublas/matrix.hpp>
28#include <boost/numeric/ublas/matrix_proxy.hpp>
29#include <boost/numeric/ublas/symmetric.hpp>
30#include <boost/numeric/ublas/vector.hpp>
31#include <boost/numeric/ublas/vector_proxy.hpp>
75 std::cout <<
"DBG " << t <<
" "
77 (16.0 * t * t - 12.0 * t * t * t + t * t * t * t * t)
79 return 1.0 / 24.0 * (16.0 * t * t - 12.0 * t * t * t + t * t * t * t * t);
139 std::map<std::string, std::unique_ptr<group_t>>
groups_;
147 void WriteDist(
const std::string &suffix =
"");
173 std::unique_ptr<CsgApplication::Worker>
ForkWorker();
181 : i1_(i1), i2_(i2), offset_i_(offset_i), offset_j_(offset_j), corr_(corr) {}
Worker, derived from Thread, does the work.
double cur_beadlist_2_count_
void DoNonbonded(Topology *top)
process non-bonded interactions for given frame
void DoBonded(Topology *top)
process bonded interactions for given frame
void EvalConfiguration(Topology *top, Topology *top_atom) override
evaluate current conformation
double cur_beadlist_1_count_
RDFCalculator * rdfcalculator_
std::vector< HistogramNew > current_hists_
class to calculate distribution functions and cross correlations for inverse monte carlo
Eigen::Block< group_matrix > pair_matrix
std::unique_ptr< CsgApplication::Worker > ForkWorker()
double AnalyticVolumeCorrection(double t)
std::vector< Property * > nonbonded_
list of non-bonded interactions
Average< double > avg_vol_
interaction_t * AddInteraction(Property *p)
create a new interaction entry based on given options
void SetSubvolRadius(double r)
void DoVolumeCorrection(bool do_vol_corr)
void DoBlocks(bool do_blocks)
std::vector< Property * > bonded_
list of bonded interactions
Eigen::MatrixXd group_matrix
void BeginEvaluate(Topology *top, Topology *top_atom)
begin coarse graining a trajectory
void EndEvaluate()
end coarse graining a trajectory
void WriteEvery(Index write_every)
std::map< std::string, std::unique_ptr< interaction_t > > interactions_
std::map ineteractionm-name to interaction
void WriteDist(const std::string &suffix="")
Property options_
the options parsed from cg definition file
std::map< std::string, std::unique_ptr< group_t > > groups_
std::map group-name to group
void DoCorrelations(RDFCalculator::Worker *worker)
update the correlations after interations were processed
bool processed_some_frames_
void LoadOptions(const std::string &file)
load cg definitions file
void MergeWorker(CsgApplication::Worker *worker_)
group_t * getGroup(const std::string &name)
get group by name, creates one if it doesn't exist
topology of the whole system
base class for all analysis tools
struct to store collected information for groups (e.g. crosscorrelations)
std::list< interaction_t * > interactions_
std::vector< pair_t > pairs_
struct to store collected information for interactions
Average< double > avg_beadlist_2_count_
Average< double > avg_beadlist_1_count_
pair_t(interaction_t *i1, interaction_t *i2, Index offset_i, Index offset_j, const pair_matrix &corr)