Chi-Tech
pi_keigen_scdsa.h
Go to the documentation of this file.
1#ifndef CHITECH_PI_KEIGEN_SCDSA_H
2#define CHITECH_PI_KEIGEN_SCDSA_H
3
4#include "pi_keigen.h"
6
7namespace chi_math
8{
9class VectorGhostCommunicator;
10}
11
12
13namespace lbs
14{
15
17{
18 typedef std::shared_ptr<acceleration::DiffusionSolver> DiffusionSolverPtr;
19 typedef std::shared_ptr<chi_math::VectorGhostCommunicator> VecGhostCommPtr;
20 typedef std::shared_ptr<chi_math::SpatialDiscretization> SDMPtr;
21
22protected:
27
28 const std::string diffusion_solver_sdm_;
29
31 bool requires_ghosts_ = false;
32 struct GhostInfo
33 {
35 std::map<int64_t, int64_t> ghost_global_id_2_local_map;
36 };
38
43
44public:
47 const chi::InputParameters& params);
48
49 void Initialize() override;
50 void Execute() override;
51
52 std::vector<double> CopyOnlyPhi0(const LBSGroupset& groupset,
53 const std::vector<double>& phi_in);
54
55 void ProjectBackPhi0(const LBSGroupset& groupset,
56 const std::vector<double>& input,
57 std::vector<double>& output);
58
60 const chi_math::UnknownManager& uk_man);
61
62 static std::vector<double> NodallyAveragedPWLDVector(
63 const std::vector<double>& input,
64 const chi_math::SpatialDiscretization& pwld_sdm,
65 const chi_math::SpatialDiscretization& pwlc_sdm,
66 const chi_math::UnknownManager& uk_man,
68};
69
70} // namespace lbs
71
72#endif // CHITECH_PI_KEIGEN_SCDSA_H
static std::vector< double > NodallyAveragedPWLDVector(const std::vector< double > &input, const chi_math::SpatialDiscretization &pwld_sdm, const chi_math::SpatialDiscretization &pwlc_sdm, const chi_math::UnknownManager &uk_man, const XXPowerIterationKEigenSCDSA::GhostInfo &ghost_info)
static chi::InputParameters GetInputParameters()
std::shared_ptr< acceleration::DiffusionSolver > DiffusionSolverPtr
std::vector< double > CopyOnlyPhi0(const LBSGroupset &groupset, const std::vector< double > &phi_in)
const std::string diffusion_solver_sdm_
DiffusionSolverPtr diffusion_solver_
std::shared_ptr< chi_math::SpatialDiscretization > SDMPtr
XXPowerIterationKEigenSCDSA(const chi::InputParameters &params)
void ProjectBackPhi0(const LBSGroupset &groupset, const std::vector< double > &input, std::vector< double > &output)
std::shared_ptr< chi_math::VectorGhostCommunicator > VecGhostCommPtr
GhostInfo MakePWLDVecGhostCommInfo(const chi_math::SpatialDiscretization &sdm, const chi_math::UnknownManager &uk_man)
std::map< int64_t, int64_t > ghost_global_id_2_local_map