69 virtual void execute(FP_PRECISION length,
Material* mat,
long fsr_id,
70 int track_idx,
int cmfd_surface_fwd,
71 int cmfd_surface_bwd, FP_PRECISION x_start, FP_PRECISION y_start,
72 FP_PRECISION z_start, FP_PRECISION phi, FP_PRECISION theta)=0;
90 int track_idx,
int cmfd_surface_fwd,
int cmfd_surface_bwd,
91 FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start,
92 FP_PRECISION phi, FP_PRECISION theta);
110 omp_lock_t* _FSR_locks;
113 FP_PRECISION* _FSR_volumes;
116 FP_PRECISION _weight;
126 int track_idx,
int cmfd_surface_fwd,
int cmfd_surface_bwd,
127 FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start,
128 FP_PRECISION phi, FP_PRECISION theta);
150 int track_idx,
int cmfd_surface_fwd,
int cmfd_surface_bwd,
151 FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start,
152 FP_PRECISION phi, FP_PRECISION theta);
172 FP_PRECISION* _thread_fsr_flux;
197 void setTrackFlux(FP_PRECISION* fwd_flux, FP_PRECISION* bwd_flux,
199 void setTrackIndexes(
int azim_index,
int polar_index);
203 int track_idx,
int cmfd_surface_fwd,
int cmfd_surface_bwd,
204 FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start,
205 FP_PRECISION phi, FP_PRECISION theta);
This a subclass of the Solver class for multi-core CPUs using OpenMP multi-threading.
Definition: CPUSolver.h:54
VolumeKernel(TrackGenerator *track_generator)
Constructor for the VolumeKernel assigns default values, calls the MOCKernel constructor, and pulls references to FSR locks and FSR volumes from the provided TrackGenerator.
Definition: MOCKernel.cpp:26
void execute(FP_PRECISION length, Material *mat, long fsr_id, int track_idx, int cmfd_surface_fwd, int cmfd_surface_bwd, FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start, FP_PRECISION phi, FP_PRECISION theta)
Apply MOC equations, tally fluxes and tally CMFD currents.
Definition: MOCKernel.cpp:353
MOCKernel(TrackGenerator *track_generator)
Constructor for the MOCKernel assigns default values.
Definition: MOCKernel.cpp:10
int _count
Definition: MOCKernel.h:46
int _num_groups
Definition: MOCKernel.h:52
The TrackGenerator is dedicated to generating and storing Tracks which cyclically wrap across the Geo...
Definition: TrackGenerator.h:36
virtual void newTrack(Track *track)
Prepares an MOCKernel for a new Track.
Definition: MOCKernel.cpp:76
void setCPUSolver(CPUSolver *cpu_solver)
Sets a pointer to the CPUSolver to enable use of transport functions.
Definition: MOCKernel.cpp:300
int getCount()
Reads and returns the current count.
Definition: MOCKernel.cpp:119
The arbitrary quadrature parent class.
Definition: Quadrature.h:76
void newTrack(Track *track)
Create a new track3D from an existing one.
Definition: MOCKernel.cpp:309
Calculates the volume in FSRs by adding weighted segment lengths.
Definition: MOCKernel.h:105
A segment represents a line segment within a single flat source region along a track.
Definition: Track.h:27
An MOCKernel object specifies a functionality to apply to MOC segments.
Definition: MOCKernel.h:41
void post()
Obtain and transfer the boundary track angular fluxes.
Definition: MOCKernel.cpp:422
FP_PRECISION _max_tau
Definition: MOCKernel.h:49
bool getDirection()
Returns the direction of the current track.
Definition: MOCKernel.cpp:332
Applies transport equations to segment data.
Definition: MOCKernel.h:162
void execute(FP_PRECISION length, Material *mat, long fsr_id, int track_idx, int cmfd_surface_fwd, int cmfd_surface_bwd, FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start, FP_PRECISION phi, FP_PRECISION theta)
Increments the counter for the number of segments on the track.
Definition: MOCKernel.cpp:176
void execute(FP_PRECISION length, Material *mat, long fsr_id, int track_idx, int cmfd_surface_fwd, int cmfd_surface_bwd, FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start, FP_PRECISION phi, FP_PRECISION theta)
Adds segment contribution to the FSR volume.
Definition: MOCKernel.cpp:145
TransportKernel(TrackGenerator *track_generator)
Constructor for the TransportKernel.
Definition: MOCKernel.cpp:276
void execute(FP_PRECISION length, Material *mat, long fsr_id, int track_idx, int cmfd_surface_fwd, int cmfd_surface_bwd, FP_PRECISION x_start, FP_PRECISION y_start, FP_PRECISION z_start, FP_PRECISION phi, FP_PRECISION theta)
Writes segment information to the segmentation data array.
Definition: MOCKernel.cpp:216
The Material class represents a unique material and its relevant nuclear data (i.e., multigroup cross-sections) for neutron transport.
Definition: Material.h:51
Forms segment data associated with a 3D track.
Definition: MOCKernel.h:140
The Quadrature abstract class and subclasses.
void setDirection(bool direction)
Sets the direction of the current track.
Definition: MOCKernel.cpp:323
SegmentationKernel(TrackGenerator *track_generator)
Constructor for the SegmentationKernel assigns default values, calls the MOCKernel constructor...
Definition: MOCKernel.cpp:48
virtual ~MOCKernel()
Destructor for MOCKernel.
Definition: MOCKernel.cpp:109
void setMaxOpticalLength(FP_PRECISION max_tau)
Resets the maximum optcal path length for a segment.
Definition: MOCKernel.cpp:131
virtual ~TransportKernel()
Destructor for the TransportKernel.
Definition: MOCKernel.cpp:292
Counts the number of segments of a track.
Definition: MOCKernel.h:85
A Track represents a characteristic line across the geometry.
Definition: Track.h:67
void newTrack(Track *track)
Prepares a VolumeKernel for a new Track.
Definition: MOCKernel.cpp:86
CounterKernel(TrackGenerator *track_generator)
Constructor for the CounterKernel assigns default values and calls the MOCKernel constructor.
Definition: MOCKernel.cpp:67