moltres
Loading...
Searching...
No Matches
MoltresSNMaterial.h
Go to the documentation of this file.
1#pragma once
2
3#include "GenericConstantMaterial.h"
4#include "SplineInterpolation.h"
5#include "MonotoneCubicInterpolation.h"
6#include "LinearInterpolation.h"
7#include "nlohmann/json.h"
8
25class MoltresSNMaterial : public GenericConstantMaterial
26{
27public:
28 MoltresSNMaterial(const InputParameters & parameters);
29
30 static InputParameters validParams();
31
32 // correspond to descriptions above
40
41 // returns a MooseEnum corresponding to the above enum
42 static MooseEnum interpTypes()
43 {
44 return MooseEnum("spline=0 monotone_cubic=1 linear=2 none=3");
45 }
46
47protected:
48 virtual void dummyComputeQpProperties();
49 virtual void splineComputeQpProperties();
51 virtual void linearComputeQpProperties();
52 virtual void preComputeQpProperties();
53 void Construct(nlohmann::json xs_root);
54 virtual void computeQpProperties() override;
55
57 const VariableValue & _temperature;
58
60 unsigned int _num_groups;
61
64
66 MaterialProperty<std::vector<Real>> & _totxs;
67 MaterialProperty<std::vector<Real>> & _fissxs;
68 MaterialProperty<std::vector<Real>> & _nsf;
69 MaterialProperty<std::vector<Real>> & _fisse;
70 MaterialProperty<std::vector<Real>> & _recipvel;
71 MaterialProperty<std::vector<Real>> & _chi_t;
72 MaterialProperty<std::vector<Real>> & _chi_p;
73 MaterialProperty<std::vector<Real>> & _chi_d;
74 MaterialProperty<std::vector<Real>> & _scatter;
75 MaterialProperty<std::vector<Real>> & _beta_eff;
76 MaterialProperty<Real> & _beta;
77 MaterialProperty<std::vector<Real>> & _decay_constant;
78 MaterialProperty<std::vector<Real>> & _diffcoef;
79 MaterialProperty<std::vector<Real>> & _d_totxs_d_temp;
80 MaterialProperty<std::vector<Real>> & _d_fissxs_d_temp;
81 MaterialProperty<std::vector<Real>> & _d_nsf_d_temp;
82 MaterialProperty<std::vector<Real>> & _d_fisse_d_temp;
83 MaterialProperty<std::vector<Real>> & _d_recipvel_d_temp;
84 MaterialProperty<std::vector<Real>> & _d_chi_t_d_temp;
85 MaterialProperty<std::vector<Real>> & _d_chi_p_d_temp;
86 MaterialProperty<std::vector<Real>> & _d_chi_d_d_temp;
87 MaterialProperty<std::vector<Real>> & _d_scatter_d_temp;
88 MaterialProperty<std::vector<Real>> & _d_beta_eff_d_temp;
89 MaterialProperty<Real> & _d_beta_d_temp;
90 MaterialProperty<std::vector<Real>> & _d_decay_constant_d_temp;
91 MaterialProperty<std::vector<Real>> & _d_diffcoef_d_temp;
92
94 MooseEnum _interp_type;
95
97 std::vector<std::string> _group_consts;
98
100 std::string _material_key;
101
103 const unsigned int _L;
104
106 const Real _sigma;
107
109 const Real _c;
110
112 const MooseEnum _h_type;
113
115 MaterialProperty<std::vector<Real>> & _tau_sn;
116
118 std::vector<std::string> _xsec_names{"TOTXS",
119 "FISSXS",
120 "NSF",
121 "FISSE",
122 "RECIPVEL",
123 "CHI_T",
124 "CHI_P",
125 "CHI_D",
126 "SPN",
127 "BETA_EFF",
128 "DECAY_CONSTANT",
129 "DIFFCOEF"};
130
132 std::map<std::string, std::vector<std::vector<Real>>> _xsec_map;
133
135 std::map<std::string, std::vector<SplineInterpolation>> _xsec_spline_interpolators;
136 std::map<std::string, std::vector<MonotoneCubicInterpolation>> _xsec_monotone_cubic_interpolators;
137 std::map<std::string, std::vector<LinearInterpolation>> _xsec_linear_interpolators;
138
140 std::map<std::string, int> _vec_lengths;
141
143 std::vector<double> _XsTemperature;
144};
Definition MoltresSNMaterial.h:26
MaterialProperty< std::vector< Real > > & _diffcoef
Definition MoltresSNMaterial.h:78
MaterialProperty< std::vector< Real > > & _chi_p
Definition MoltresSNMaterial.h:72
const VariableValue & _temperature
Temperature variable.
Definition MoltresSNMaterial.h:57
MaterialProperty< std::vector< Real > > & _nsf
Definition MoltresSNMaterial.h:68
MaterialProperty< std::vector< Real > > & _d_beta_eff_d_temp
Definition MoltresSNMaterial.h:88
virtual void computeQpProperties() override
Definition MoltresSNMaterial.C:491
const unsigned int _L
Maximum scattering Legendre moment.
Definition MoltresSNMaterial.h:103
static InputParameters validParams()
Definition MoltresSNMaterial.C:7
INTERPOLATOR
Definition MoltresSNMaterial.h:34
@ NONE
Definition MoltresSNMaterial.h:38
@ MONOTONE_CUBIC
Definition MoltresSNMaterial.h:36
@ SPLINE
Definition MoltresSNMaterial.h:35
@ LINEAR
Definition MoltresSNMaterial.h:37
virtual void splineComputeQpProperties()
Definition MoltresSNMaterial.C:169
MaterialProperty< Real > & _d_beta_d_temp
Definition MoltresSNMaterial.h:89
const Real _sigma
Void constant for stabilization scheme in voids.
Definition MoltresSNMaterial.h:106
MoltresSNMaterial(const InputParameters &parameters)
Definition MoltresSNMaterial.C:53
MaterialProperty< std::vector< Real > > & _d_recipvel_d_temp
Definition MoltresSNMaterial.h:83
MaterialProperty< std::vector< Real > > & _d_chi_d_d_temp
Definition MoltresSNMaterial.h:86
std::map< std::string, std::vector< std::vector< Real > > > _xsec_map
Map of group constant names to group constant values.
Definition MoltresSNMaterial.h:132
unsigned int _num_groups
Number of neutron groups.
Definition MoltresSNMaterial.h:60
MaterialProperty< std::vector< Real > > & _recipvel
Definition MoltresSNMaterial.h:70
MaterialProperty< std::vector< Real > > & _d_fissxs_d_temp
Definition MoltresSNMaterial.h:80
const MooseEnum _h_type
Type of element length unit (maximum or minimum vertex separation)
Definition MoltresSNMaterial.h:112
virtual void linearComputeQpProperties()
Definition MoltresSNMaterial.C:284
MaterialProperty< std::vector< Real > > & _d_scatter_d_temp
Definition MoltresSNMaterial.h:87
MaterialProperty< std::vector< Real > > & _d_diffcoef_d_temp
Definition MoltresSNMaterial.h:91
const Real _c
Stabilization constant for stabilization scheme in voids.
Definition MoltresSNMaterial.h:109
static MooseEnum interpTypes()
Definition MoltresSNMaterial.h:42
MaterialProperty< std::vector< Real > > & _fissxs
Definition MoltresSNMaterial.h:67
MaterialProperty< std::vector< Real > > & _decay_constant
Definition MoltresSNMaterial.h:77
virtual void dummyComputeQpProperties()
Definition MoltresSNMaterial.C:128
MaterialProperty< std::vector< Real > > & _beta_eff
Definition MoltresSNMaterial.h:75
MaterialProperty< std::vector< Real > > & _d_fisse_d_temp
Definition MoltresSNMaterial.h:82
MaterialProperty< std::vector< Real > > & _tau_sn
Void stabilization factor.
Definition MoltresSNMaterial.h:115
MaterialProperty< std::vector< Real > > & _d_chi_t_d_temp
Definition MoltresSNMaterial.h:84
virtual void preComputeQpProperties()
Definition MoltresSNMaterial.C:341
MaterialProperty< std::vector< Real > > & _d_totxs_d_temp
Definition MoltresSNMaterial.h:79
MaterialProperty< std::vector< Real > > & _fisse
Definition MoltresSNMaterial.h:69
std::map< std::string, std::vector< MonotoneCubicInterpolation > > _xsec_monotone_cubic_interpolators
Definition MoltresSNMaterial.h:136
MaterialProperty< std::vector< Real > > & _totxs
Group constant MaterialProperty(s)
Definition MoltresSNMaterial.h:66
void Construct(nlohmann::json xs_root)
Definition MoltresSNMaterial.C:375
std::vector< std::string > _xsec_names
Vector of group constant names.
Definition MoltresSNMaterial.h:118
MaterialProperty< std::vector< Real > > & _d_chi_p_d_temp
Definition MoltresSNMaterial.h:85
unsigned int _num_precursor_groups
Number of precursor groups.
Definition MoltresSNMaterial.h:63
MaterialProperty< Real > & _beta
Definition MoltresSNMaterial.h:76
std::vector< std::string > _group_consts
Vector of group constants to be loaded.
Definition MoltresSNMaterial.h:97
std::map< std::string, int > _vec_lengths
Map of group constant names to number of neutron/precursor groups.
Definition MoltresSNMaterial.h:140
MaterialProperty< std::vector< Real > > & _d_nsf_d_temp
Definition MoltresSNMaterial.h:81
virtual void monotoneCubicComputeQpProperties()
Definition MoltresSNMaterial.C:226
MaterialProperty< std::vector< Real > > & _chi_t
Definition MoltresSNMaterial.h:71
MaterialProperty< std::vector< Real > > & _scatter
Definition MoltresSNMaterial.h:74
MaterialProperty< std::vector< Real > > & _d_decay_constant_d_temp
Definition MoltresSNMaterial.h:90
MaterialProperty< std::vector< Real > > & _chi_d
Definition MoltresSNMaterial.h:73
MooseEnum _interp_type
Group constant interpolation type.
Definition MoltresSNMaterial.h:94
std::map< std::string, std::vector< LinearInterpolation > > _xsec_linear_interpolators
Definition MoltresSNMaterial.h:137
std::string _material_key
Material associated with the group constants to be loaded.
Definition MoltresSNMaterial.h:100
std::map< std::string, std::vector< SplineInterpolation > > _xsec_spline_interpolators
Group constant interpolators.
Definition MoltresSNMaterial.h:135
std::vector< double > _XsTemperature
Vector of temperature values.
Definition MoltresSNMaterial.h:143