本文整理汇总了C++中Spectrum::inc_cnts方法的典型用法代码示例。如果您正苦于以下问题:C++ Spectrum::inc_cnts方法的具体用法?C++ Spectrum::inc_cnts怎么用?C++ Spectrum::inc_cnts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spectrum
的用法示例。
在下文中一共展示了Spectrum::inc_cnts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: go_ray
static void go_ray(struct initializations &init, Spectrum &spec,
Metric &metric, Particle &particle, EMField &emfield,
string &plotfilename)
{
myfloat dtau = init.dtau;
ofstream plotfile(plotfilename.c_str());
ofstream dtaufile("globaldtau.dat");
ofstream wrongfile("globalwrong.dat");
plotfile << scientific;
dtaufile << scientific;
wrongfile << scientific;
// Print important information to plotfile
plotfile << "# Metric: " << metric.name << endl;
plotfile << "# m = " << metric.m << endl
<< "# a = " << metric.a << endl
<< "# q = " << metric.q << endl;
plotfile << "# particle:" << endl
<< "# m = " << init.teilchen_masse << endl
<< "# q = " << init.teilchen_ladung << endl;
plotfile << "# length_4velocity = "
<< scalar(metric, particle.x, particle.u, particle.u)
<< endl
<< "# dtau = " << dtau << endl
<< "# tau_max = " << init.tau_max << endl
<< "# max_wrongness = " << init.max_wrongness << endl
<< "# max_x1 = " << init.max_x1 << endl;
plotfile << "# x3 x1 x2 x0 wrong u3 u1 u2 u0" << endl;
myfloat wrong = wrongness(metric, &init, particle.x,
particle.u);
myfloat wrong_old = wrong;
// Iterate
int absorb_last = 0;
int taun = -1;
myfloat tau = 0.0;
while ((absol(wrong) <= init.max_wrongness)
&& (tau <= init.tau_max + dtau))
{
dtau = init.dtau * pow(absol(particle.x[1] - 2 * init.m), sqrt(3.0));
if (++taun % 256 == 0) {
info(metric, taun, tau, dtau, wrong, particle);
if (taun >= 10000) {
cerr << "WARNING: Aborting prematurely: taking too long" << endl;
break;
}
}
// print to file
plotfile<< particle.x[3] << ' '
<< particle.x[1] << ' '
<< particle.x[2] << ' '
<< particle.x[0] << '\t'
<< wrong << '\t'
<< particle.u[3] << ' '
<< particle.u[1] << ' '
<< particle.u[2] << ' '
<< particle.u[0] << '\t'
<< tau << '\t'
<< dtau
<< endl;
dtaufile << tau << "\t" << dtau << endl;
wrongfile << tau << "\t" << wrong << endl;
tau += dtau;
// Berechne x, u
x_and_u(metric, emfield, dtau, particle);
// Update spectrum
absorb += spec.inc_cnts(particle.x, particle.u);
wrong_old = wrong;
wrong = wrongness(metric, &init, particle.x, particle.u);
if (absorb) {
if (absorb >= absorb_max)
break;
if (absorb == absorb_last)
// error, currently
break;
absorb_last = absorb;
}
if ((particle.x[1] > init.max_x1)
|| (particle.x[1] < init.min_x1))
break;
}
plotfile << endl;
plotfile << "# length_4velocity = "
<< scalar(metric, particle.x, particle.u, particle.u)
<< endl;
plotfile.close();
dtaufile.close();
wrongfile.close();
//.........这里部分代码省略.........