24 #ifndef PYNE_6OR6BJURKJHHTOFWXO2VMQM5EY 25 #define PYNE_6OR6BJURKJHHTOFWXO2VMQM5EY 38 #include "moab/Range.hpp" 39 #include "moab/Core.hpp" 40 #ifndef PYNE_IS_AMALGAMATED 43 #include "moab/CartVect.hpp" 82 moab::CartVect o_point;
97 int sample_pdf(
double rand1,
double rand2);
120 std::vector<int> cell_list);
123 double get_x() {
return x;};
124 double get_y() {
return y;};
125 double get_z() {
return z;};
126 double get_e() {
return e;};
127 double get_w() {
return w;};
128 std::vector<int> get_cell_list() {
return cell_list;};
136 std::vector<int> cell_list;
141 enum MeshMode {VOXEL, SUBVOXEL, TET};
155 std::string src_tag_name,
156 std::vector<double> e_bounds,
170 std::string src_tag_name,
171 std::vector<double> e_bounds,
172 std::string bias_tag_name);
180 std::map<std::string, std::string> tag_names,
181 std::vector<double> e_bounds,
191 int get_cell_list_size();
201 std::string filename;
202 std::string src_tag_name;
203 std::string bias_tag_name;
204 std::string cell_number_tag_name;
205 std::string cell_fracs_tag_name;
206 std::map<std::string, std::string> tag_names;
207 std::vector<double> e_bounds;
222 moab::Interface* mesh;
224 moab::EntityType ve_type;
227 std::vector<edge_points> all_edge_points;
228 std::vector<double> biased_weights;
229 std::vector<int> cell_number;
230 std::vector<int> cell_list;
231 std::vector<double> cell_fracs;
238 void mesh_geom_data(moab::Range ves, std::vector<double> &volumes);
239 void mesh_tag_data(moab::Range ves,
const std::vector<double> volumes);
241 moab::CartVect sample_xyz(
int ve_idx, std::vector<double> rands);
242 double sample_e(
int e_idx,
double rand);
243 double sample_w(
int pdf_idx);
245 void normalize_pdf(std::vector<double> & pdf);
246 int num_groups(moab::Tag tag);
247 std::vector<double> read_bias_pdf(moab::Range ves, std::vector<double> volumes,
248 std::vector<double> pdf);
250 int get_max_num_cells(moab::Tag cell_fracs_tag);
252 bool check_cell_fracs(moab::Tag cell_fracs_tag);
260 #endif // PYNE_6OR6BJURKJHHTOFWXO2VMQM5EY void particle_birth_(double *rands, double *x, double *y, double *z, double *e, double *w, int *cell_list)
Definition: source_sampling.cpp:31
Stores 4 connected points in a mesh volume element.
Definition: source_sampling.h:81
Definition: source_sampling.h:105
std::vector< int > alias
Probabilities.
Definition: source_sampling.h:101
Mesh based Monte Carlo source sampling.
Definition: source_sampling.h:144
std::vector< double > read_e_bounds(std::string e_bounds_file)
Definition: source_sampling.cpp:50
BiasMode
Problem modes.
Definition: source_sampling.h:140
A container representing enrichment cascades.
Definition: _atomic_data.h:16
void sampling_setup_(int *mode, int *cell_list_size)
Definition: source_sampling.cpp:11
std::vector< double > prob
Number of bins in the PDF.
Definition: source_sampling.h:100
A data structure for O(1) source sampling.
Definition: source_sampling.h:89