Chi-Tech
lbts_transient_solver.h
Go to the documentation of this file.
1#ifndef CHITECH_LBTS_TRANSIENT_SOLVER_H
2#define CHITECH_LBTS_TRANSIENT_SOLVER_H
3
4#include "Cc_DO_KEigenvalue/lbkes_k_eigenvalue_solver.h"
6
8
9namespace lbs
10{
11
12//################################################################### Class def
13/**A transient neutral particle transport solver.
14 *
15\author Zachary Hardy.*/
16class DiscOrdTransientSolver : public DiscOrdKEigenvalueSolver
17{
18public:
20
21 /// Options for initial condition normalization
23 {
24 TOTAL_POWER = 0, ///< Total reactor power
25 POWER_DENSITY = 1, ///< Power density
26 NONE = 2 ///< No normalization
27 };
28
29 struct Options
30 {
32
33 bool inhibit_advance = false;
34 double t_final = 0.1;
37
38 bool scale_fission_xs = false;
41
42 /**Temporal domain and discretization information.*/
43 double dt_ = 2.0e-3;
44 double time_ = 0.0;
45
46protected:
47 /**Previous time step vectors.*/
48 std::vector<double> phi_prev_local_;
49 std::vector<double> precursor_prev_local_;
50 std::vector<std::vector<double>> psi_prev_local_;
51
52 /**Fission rate vector*/
53 std::vector<double> fission_rate_local_;
54
55public:
56 explicit DiscOrdTransientSolver(const std::string& in_text_name);
57
58 //01
59 void Initialize() override;
60 //02
61 void Execute() override;
62 void Step() override;
63 void Advance() override;
64
65 //Iterative operations
66 std::shared_ptr<SweepChunk> SetTransientSweepChunk(LBSGroupset& groupset);
67
68 double ComputeBeta();
69 void PostStepCallBackFunction() const;
70
71 //precursors
72 void StepPrecursors();
73
74 virtual ~DiscOrdTransientSolver() override;
75};
76
77}//namespace lbs
78
79#endif //CHITECH_LBTS_TRANSIENT_SOLVER_H
std::vector< double > precursor_prev_local_
std::vector< double > fission_rate_local_
std::vector< double > phi_prev_local_
void PostStepCallBackFunction() const
Definition: lbts_callback.cc:9
NormalizationMethod
Options for initial condition normalization.
virtual ~DiscOrdTransientSolver() override
std::shared_ptr< SweepChunk > SetTransientSweepChunk(LBSGroupset &groupset)
DiscOrdTransientSolver(const std::string &in_text_name)
std::vector< std::vector< double > > psi_prev_local_
chi_math::SteppingMethod method
struct lbs::DiscOrdTransientSolver::Options transient_options_
chi_mesh::sweep_management::SweepChunk SweepChunk