mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Make creation of spatial trees based on usage for unstructured mesh. (#2815)
This commit is contained in:
parent
63916067ee
commit
4fa3fbcb19
3 changed files with 14 additions and 0 deletions
|
|
@ -75,6 +75,8 @@ public:
|
|||
virtual ~Mesh() = default;
|
||||
|
||||
// Methods
|
||||
//! Perform any preparation needed to support use in mesh filters
|
||||
virtual void prepare_for_tallies() {};
|
||||
|
||||
//! Update a position to the local coordinates of the mesh
|
||||
virtual void local_coords(Position& r) const {};
|
||||
|
|
@ -664,6 +666,9 @@ public:
|
|||
|
||||
// Overridden Methods
|
||||
|
||||
//! Perform any preparation needed to support use in mesh filters
|
||||
void prepare_for_tallies() override;
|
||||
|
||||
Position sample_element(int32_t bin, uint64_t* seed) const override;
|
||||
|
||||
void bins_crossed(Position r0, Position r1, const Direction& u,
|
||||
|
|
|
|||
|
|
@ -2057,6 +2057,13 @@ void MOABMesh::initialize()
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MOABMesh::prepare_for_tallies()
|
||||
{
|
||||
// if the KDTree has already been constructed, do nothing
|
||||
if (kdtree_)
|
||||
return;
|
||||
|
||||
// build acceleration data structures
|
||||
compute_barycentric_data(ehs_);
|
||||
|
|
|
|||
|
|
@ -77,8 +77,10 @@ std::string MeshFilter::text_label(int bin) const
|
|||
|
||||
void MeshFilter::set_mesh(int32_t mesh)
|
||||
{
|
||||
// perform any additional perparation for mesh tallies here
|
||||
mesh_ = mesh;
|
||||
n_bins_ = model::meshes[mesh_]->n_bins();
|
||||
model::meshes[mesh_]->prepare_for_tallies();
|
||||
}
|
||||
|
||||
void MeshFilter::set_translation(const Position& translation)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue