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>
43using namespace votca::tools;
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();
Worker, derived from Thread, does the work.
std::vector< Histogram > current_hists_
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_
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
Provides a means for comparing floating point numbers.
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)