KMCLib中的CustomRateProcess
CustomRateProcess是Process的派生类,
主要表示不同位置上速率不同的反应
此类是Process
的派生类,所以在Process
类中的成员变量为protected
,而且很多成员函数都为虚函数。
成员数据
1 | // 由于不同site上面的速率不同,因此此vector存放对应sites_的速率 |
具体可以用下图表示:
成员函数
其他成员函数的作用与Process类似,只是由于每个位点的速率不同所采用的求和和抽取的方法稍有差别,这里就不做详解了。1
2
3
4
5
6
7
8
9
10
11
12
13
14// 根据site_rates_生成incremental_rate_table_
void CustomRateProcess::updateRateTable()
{
// Resize and update the incremental rate table.
incremental_rate_table_.resize(site_rates_.size());
double previous = 0.0;
for (size_t i = 0; i < site_rates_.size(); ++i)
{
incremental_rate_table_[i] = previous + site_rates_[i];
previous = incremental_rate_table_[i];
}
// DONE
}