1
0
Fork 0
mirror of https://github.com/gwm17/catima.git synced 2024-11-26 20:18:51 -05:00
catima/reactions.cpp

46 lines
1.5 KiB
C++
Raw Normal View History

2018-04-29 18:16:45 -04:00
#include "catima/reactions.h"
2018-07-30 13:57:51 -04:00
2018-04-29 18:16:45 -04:00
#ifdef NUREX
2018-07-30 13:57:51 -04:00
#include "nurex/Parametrization.h"
2018-05-02 19:23:47 -04:00
#include "catima/catima.h"
#include "catima/abundance_database.h"
2018-07-30 13:57:51 -04:00
#include "catima/storage.h"
2018-04-29 18:16:45 -04:00
#include <cmath>
2018-05-02 19:23:47 -04:00
#include <iostream>
2018-04-29 18:16:45 -04:00
namespace catima{
2018-05-02 19:23:47 -04:00
double reaction_rate1(Projectile &projectile, const Material &target, const Config &c){
2018-04-29 18:16:45 -04:00
int ap = lround(projectile.A);
int zp = lround(projectile.Z);
2018-05-02 19:23:47 -04:00
int zt = target.get_element(0).Z;
2018-07-30 13:57:51 -04:00
int at = abundance::get_isotope_a(zt,0); // most abundand natural isotope mass
auto data = _storage.Get(projectile,target,c);
Interpolator range_spline(energy_table.values,data.range.data(),energy_table.num);
auto sigma_r = [&](double th){
double stn_sum=0.0, sum=0.0;
double e = energy_out(projectile.T, th, range_spline);
for(unsigned int i = 0;i<target.ncomponents();i++){
stn_sum += target.molar_fraction(i);
sum += target.molar_fraction(i)*nurex::SigmaR_Kox(ap,zp,e,at,zt);
}
return sum/stn_sum;
};
2018-05-02 19:23:47 -04:00
2018-07-30 13:57:51 -04:00
//nurex::Nucleus nurex_projectile = nurex::get_default_nucleus(ap,zp);
//nurex::Nucleus nurex_target = nurex::get_default_nucleus(at,zt);
//nurex::GlauberModelOLA_ZeroRange gm(nurex_projectile, nurex_target);
//double cs = nurex::SigmaR_Kox(ap,zp,projectile.T,);
double cs = catima::integrator.integrate(sigma_r,0,target.thickness());
2018-05-02 19:23:47 -04:00
double rr = reaction_rate(cs,target.number_density_cm2(0));
std::cout<<rr<<"\n";
2018-04-29 18:16:45 -04:00
return 1.0;
}
}
#endif