1#ifndef CHITECH_SWEEPCHUNK_H
2#define CHITECH_SWEEPCHUNK_H
46 virtual const double*
GetUpwindPsi(
int face_node_local_idx)
const = 0;
50 size_t num_face_nodes,
55 size_t num_face_nodes,
74 const std::vector<UnitCellMatrices>& unit_cell_matrices,
75 std::vector<lbs::CellLBSView>& cell_transport_views,
76 const std::vector<double>& source_moments,
78 const std::map<int, XSPtr>& xs,
80 int max_num_cell_dofs,
81 std::unique_ptr<SweepDependencyInterface> sweep_dependency_interface_ptr);
92 const std::map<int, XSPtr>&
xs_;
107 std::vector<std::vector<double>>
Amat_;
110 std::vector<std::vector<double>>
b_;
157 static void ExecuteKernels(
const std::vector<CallbackFunction>& kernels);
std::vector< double > * destination_psi
std::vector< double > * destination_phi
std::vector< std::vector< double > > Atemp_
std::vector< CallbackFunction > surface_integral_kernels_
std::vector< double > source_
const std::vector< VecDbl > * IntS_shapeI_
std::vector< CallbackFunction > flux_update_kernels_
void KernelFEMSTDMassTerms()
void RegisterKernel(const std::string &name, CallbackFunction function)
double direction_qweight_
std::function< void()> CallbackFunction
const std::vector< UnitCellMatrices > & unit_cell_matrices_
std::vector< double > face_mu_values_
const std::vector< MatDbl > * M_surf_
const std::map< int, XSPtr > & xs_
const size_t groupset_angle_group_stride_
CellLBSView * cell_transport_view_
std::vector< CallbackFunction > mass_term_kernels_
const LBSGroupset & groupset_
std::vector< CallbackFunction > direction_data_callbacks_and_kernels_
const chi_math::SpatialDiscretization & grid_fe_view_
CallbackFunction Kernel(const std::string &name) const
const std::vector< double > & q_moments_
SweepDependencyInterface & sweep_dependency_interface_
void KernelFEMVolumetricGradientTerm()
std::map< std::string, CallbackFunction > kernels_
virtual void OutgoingSurfaceOperations()
static void ExecuteKernels(const std::vector< CallbackFunction > &kernels)
const chi_mesh::Cell * cell_
std::vector< std::vector< double > > b_
std::vector< std::vector< double > > Amat_
std::vector< CallbackFunction > post_cell_dir_sweep_callbacks_
const size_t groupset_group_stride_
std::vector< CallbackFunction > cell_data_callbacks_
const chi_mesh::MeshContinuum & grid_
void KernelFEMUpwindSurfaceIntegrals()
const chi_math::CellMapping * cell_mapping_
SweepChunk(std::vector< double > &destination_phi, std::vector< double > &destination_psi, const chi_mesh::MeshContinuum &grid, const chi_math::SpatialDiscretization &discretization, const std::vector< UnitCellMatrices > &unit_cell_matrices, std::vector< lbs::CellLBSView > &cell_transport_views, const std::vector< double > &source_moments, const LBSGroupset &groupset, const std::map< int, XSPtr > &xs, int num_moments, int max_num_cell_dofs, std::unique_ptr< SweepDependencyInterface > sweep_dependency_interface_ptr)
std::vector< lbs::CellLBSView > & grid_transport_view_
const bool save_angular_flux_
std::unique_ptr< SweepDependencyInterface > sweep_dependency_interface_ptr_
std::vector< VecDbl > MatDbl
std::vector< VecVec3 > MatVec3
bool surface_source_active_
bool is_reflecting_bndry_
SweepDependencyInterface()=default
virtual void SetupOutgoingFace(int face_id, size_t num_face_nodes, uint64_t neighbor_id, bool on_local_face, bool on_boundary, int locality)
size_t groupset_angle_group_stride_
size_t groupset_group_stride_
virtual const double * GetUpwindPsi(int face_node_local_idx) const =0
virtual ~SweepDependencyInterface()=default
const chi_mesh::Cell * cell_ptr_
virtual void SetupIncomingFace(int face_id, size_t num_face_nodes, uint64_t neighbor_id, bool on_local_face, bool on_boundary)
chi_mesh::sweep_management::AngleSet * angle_set_
virtual double * GetDownwindPsi(int face_node_local_idx) const =0