Class UncollidedProblem
Defined in File uncollided_problem.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public opensn::LBSProblem(Class LBSProblem)
Class Documentation
-
class UncollidedProblem : public opensn::LBSProblem
Public Functions
-
explicit UncollidedProblem(const InputParameters ¶ms)
-
~UncollidedProblem() override
Public Static Functions
-
static InputParameters GetInputParameters()
-
static std::shared_ptr<UncollidedProblem> Create(const ParameterBlock ¶ms)
Protected Functions
-
virtual void PrintSimHeader() override
-
virtual void InitializeSpatialDiscretization() override
-
inline virtual void ClearBoundaries() override
Clears all the boundary conditions from the solver.
-
void BuildSweepOrdering(const SourcePoint &source_point)
-
void InitializeNearSourceRegions(const InputParameters ¶ms)
-
void InitializeReflectingBoundaries(const InputParameters ¶ms)
-
void BuildSourcePoints()
-
void AddReflectedSourcePoints()
-
void RaytraceNearSourceRegion(const SourcePoint &source_point)
-
void ProjectReflectedImageSources(unsigned int progress_interval)
-
std::vector<double> RaytraceLine(RayTracer &ray_tracer, const Cell &cell, const Vector3 &qp_xyz, const SourcePoint &source_point, double tolerance = 1.0e-12)
-
void RaytraceLineInto(RayTracer &ray_tracer, const Cell &cell, const Vector3 &qp_xyz, const SourcePoint &source_point, std::vector<double> &phi_out, std::vector<std::pair<size_t, double>> &scratch_segs, std::vector<double> &scratch_bp, std::vector<double> &scratch_mfp, double tolerance = 1.0e-12)
Zero-allocation variant: writes into pre-allocated
phi_outand reuses the three scratch vectors.All four buffers must be sized to
num_groups_before the first call (they are reset internally each call, so no manual clearing is needed between calls).
-
void SweepBulkRegion(const SourcePoint &source_point)
-
UncollidedMatrices ComputeUncollidedIntegrals(const Cell &cell, const Vector3 &pt_loc)
-
void Execute(const std::string &file_name, unsigned int progress_interval)
-
void UpdateBalance(const SourcePoint &source_point)
-
void WriteFluxMoments(hid_t file)
-
void FinalizeBalance(hid_t file)
-
inline bool IsReflectingBoundary(std::uint64_t boundary_id) const
Protected Attributes
-
std::vector<std::shared_ptr<LogicalVolume>> near_source_logvols_
Near source region logical volumes.
-
std::vector<SourcePoint> source_points_
-
std::vector<SourcePoint> reflected_source_points_
-
std::vector<ReflectionPlane> reflection_planes_
-
std::set<std::uint64_t> reflecting_boundary_ids_
-
std::vector<std::vector<FaceOrientation>> cell_face_orientations_
Cell face orientations for the cells in the local cell graph.
-
std::vector<size_t> near_spls_
Near source uncollided sweep-plane local subgrid.
-
std::vector<size_t> bulk_spls_
Bulk region uncollided sweep-plane local subgrid.
-
std::vector<CellRegion> cell_regions_
-
std::vector<double> destination_phi_
-
std::vector<double> cell_sizes_
Bounding-box diagonal for each local cell, pre-computed once for RayTracer tolerance scaling.
-
bool all_cells_convex_ = true
False when the mesh contains any geometrically non-convex cell; true for standard hex/tet meshes.
-
std::vector<FaceVertData> all_face_verts_
-
std::vector<uint32_t> cell_face_offsets_
-
std::vector<uint32_t> cell_num_faces_
-
std::unordered_map<uint64_t, uint32_t> global_to_local_id_
O(1) global-to-local cell-ID lookup; replaces two O(log N) std::map calls per while-loop step.
-
bool use_fast_trace_ = false
True when all_cells_convex_ and all faces have <= kMaxFaceSides vertices.
-
unsigned int ell_max_ = 0
-
std::vector<std::string> moment_names_
-
std::vector<std::vector<double>> accumulated_moments_
-
double production_ = 0.
-
double removal_ = 0.
-
double out_flow_ = 0.
Protected Static Functions
Friends
- friend class UncollidedSolver
-
struct FaceVertData
Precomputed face vertex data — bypasses the std::map-backed VertexHandler in the hot path.
Supports faces with up to kMaxFaceSides vertices (covers triangles and quads).
Public Static Attributes
-
static uint32_t max_sides = 4
-
static uint32_t max_sides = 4
-
struct Moment
-
struct ReflectionPlane
-
struct SourcePoint
Public Members
-
std::vector<double> strength
-
std::vector<Subscriber> subscribers
-
std::shared_ptr<LogicalVolume> near_source_logvol
-
std::vector<ReflectionPlane> reflection_planes
-
struct Subscriber
-
std::vector<double> strength
-
explicit UncollidedProblem(const InputParameters ¶ms)