Chi-Tech
FLUDS.h
Go to the documentation of this file.
1#ifndef CHI_FLUDS_H
2#define CHI_FLUDS_H
3
4#include <vector>
5#include <set>
6#include <cstddef>
7#include <cstdint>
8
9#include "FLUDSCommonData.h"
10
11namespace chi_mesh
12{
13class GridFaceHistogram;
14
15} // namespace chi_mesh
16
18{
19
20class SPDS;
21
22class FLUDS
23{
24public:
25 FLUDS(size_t num_groups, size_t num_angles, const SPDS& spds)
26 : num_groups_(num_groups),
27 num_angles_(num_angles),
29 spds_(spds){};
30
31 const SPDS& GetSPDS() const { return spds_; }
32
33 virtual void ClearLocalAndReceivePsi() {}
34 virtual void ClearSendPsi() {}
35 virtual void AllocateInternalLocalPsi(size_t num_grps, size_t num_angles) {}
36 virtual void
37 AllocateOutgoingPsi(size_t num_grps, size_t num_angles, size_t num_loc_sucs)
38 {
39 }
40
41 virtual void AllocateDelayedLocalPsi(size_t num_grps, size_t num_angles) {}
42 virtual void AllocatePrelocIOutgoingPsi(size_t num_grps,
43 size_t num_angles,
44 size_t num_loc_deps)
45 {
46 }
47 virtual void AllocateDelayedPrelocIOutgoingPsi(size_t num_grps,
48 size_t num_angles,
49 size_t num_loc_deps)
50 {
51 }
52
53 virtual std::vector<double>& DelayedLocalPsi() = 0;
54 virtual std::vector<double>& DelayedLocalPsiOld() = 0;
55
56 virtual std::vector<std::vector<double>>& DeplocIOutgoingPsi() = 0;
57
58 virtual std::vector<std::vector<double>>& PrelocIOutgoingPsi() = 0;
59
60 virtual std::vector<std::vector<double>>& DelayedPrelocIOutgoingPsi() = 0;
61
62 virtual std::vector<std::vector<double>>& DelayedPrelocIOutgoingPsiOld() = 0;
63
64 virtual ~FLUDS() = default;
65
66protected:
67 const size_t num_groups_;
68 const size_t num_angles_;
70 const SPDS& spds_;
71};
72
73} // namespace chi_mesh::sweep_management
74
75#endif // CHI_FLUDS_H
virtual void ClearLocalAndReceivePsi()
Definition: FLUDS.h:33
virtual std::vector< double > & DelayedLocalPsi()=0
virtual void AllocatePrelocIOutgoingPsi(size_t num_grps, size_t num_angles, size_t num_loc_deps)
Definition: FLUDS.h:42
virtual std::vector< double > & DelayedLocalPsiOld()=0
virtual void AllocateDelayedPrelocIOutgoingPsi(size_t num_grps, size_t num_angles, size_t num_loc_deps)
Definition: FLUDS.h:47
virtual std::vector< std::vector< double > > & PrelocIOutgoingPsi()=0
const size_t num_groups_and_angles_
Definition: FLUDS.h:69
virtual void AllocateInternalLocalPsi(size_t num_grps, size_t num_angles)
Definition: FLUDS.h:35
virtual std::vector< std::vector< double > > & DelayedPrelocIOutgoingPsi()=0
virtual std::vector< std::vector< double > > & DelayedPrelocIOutgoingPsiOld()=0
virtual void ClearSendPsi()
Definition: FLUDS.h:34
virtual std::vector< std::vector< double > > & DeplocIOutgoingPsi()=0
FLUDS(size_t num_groups, size_t num_angles, const SPDS &spds)
Definition: FLUDS.h:25
virtual void AllocateOutgoingPsi(size_t num_grps, size_t num_angles, size_t num_loc_sucs)
Definition: FLUDS.h:37
virtual void AllocateDelayedLocalPsi(size_t num_grps, size_t num_angles)
Definition: FLUDS.h:41
const SPDS & GetSPDS() const
Definition: FLUDS.h:31