28{
30 auto const type = conf.getConfigParameter<std::string>("type");
31
32 if (type == "Z13XBF")
33 {
34 return std::make_unique<DensityLegacy>();
35 }
36 if (type == "Z13XBF_100MPa")
37 {
38 return std::make_unique<Density100MPa>();
39 }
40 if (type == "Z13XBF_Const")
41 {
42 return std::make_unique<DensityConst>();
43 }
44 if (type == "Z13XBF_Cook")
45 {
46 return std::make_unique<DensityCook>();
47 }
48 if (type == "Z13XBF_Dubinin")
49 {
50 return std::make_unique<DensityDubinin>();
51 }
52 if (type == "Z13XBF_Hauer")
53 {
54 return std::make_unique<DensityHauer>();
55 }
56 if (type == "Z13XBF_Mette")
57 {
58 return std::make_unique<DensityMette>();
59 }
60 if (type == "Z13XBF_Nunez")
61 {
62 return std::make_unique<DensityNunez>();
63 }
64 if (type == "Inert")
65 {
66 return std::make_unique<ReactionInert>();
67 }
68 if (type == "Sinusoidal")
69 {
70 return std::make_unique<ReactionSinusoidal>(conf);
71 }
72 if (type == "CaOH2")
73 {
74 return std::make_unique<ReactionCaOH2>(conf);
75 }
76
77 OGS_FATAL(
"Unknown reactive system: {:s}.", type);
78
79 return nullptr;
80}