24 std::vector<std::variant<DensityBasedSurfaceSite, MoleBasedSurfaceSite>>
27 auto const surface_site_unit =
29 config->getConfigAttribute<std::string>(
"site_unit",
"mole");
31 if (surface_site_unit ==
"density")
33 for (
auto const& site_config :
35 config->getConfigSubtreeList(
"site"))
38 auto name = site_config.getConfigParameter<std::string>(
"name");
40 auto const site_density =
42 site_config.getConfigParameter<
double>(
"site_density");
44 auto const specific_surface_area =
46 site_config.getConfigParameter<
double>(
"specific_surface_area");
50 site_config.getConfigParameter<
double>(
"mass");
53 std::move(name), site_density, specific_surface_area, mass));
59 if (surface_site_unit ==
"mole")
61 for (
auto const& site_config :
63 config->getConfigSubtreeList(
"site"))
66 auto name = site_config.getConfigParameter<std::string>(
"name");
77 OGS_FATAL(
"Surface site unit should be either of 'density' or 'mole'.");