File indexing completed on 2026-10-26 09:34:37
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include "corecel/Types.hh"
0010 #include "corecel/cont/Array.hh"
0011 #include "corecel/inp/Distributions.hh"
0012 #include "corecel/random/data/DistributionData.hh"
0013
0014 namespace celeritas
0015 {
0016
0017
0018
0019
0020 class DistributionInserter
0021 {
0022 public:
0023
0024 explicit DistributionInserter(HostVal<DistributionParamsData>&);
0025
0026
0027 OnedDistributionId operator()(inp::DeltaDistribution<double> const&);
0028 OnedDistributionId operator()(inp::NormalDistribution const&);
0029 OnedDistributionId operator()(
0030 inp::TruncatedDistribution<inp::NormalDistribution> const&);
0031
0032
0033 ThreedDistributionId operator()(
0034 inp::DeltaDistribution<Array<double, 3>> const&);
0035 ThreedDistributionId operator()(inp::IsotropicDistribution const&);
0036 ThreedDistributionId operator()(inp::UniformBoxDistribution const&);
0037
0038 private:
0039 HostVal<DistributionParamsData>& data_;
0040
0041 OnedDistributionId operator()(OnedDistributionType type, size_type idx);
0042 ThreedDistributionId operator()(ThreedDistributionType type, size_type idx);
0043 };
0044
0045
0046 }