27 auto const field_name =
33 if (range.size() != 2)
36 "The range needs to have two components, but {:d} were given.",
42 DBUG(
"Generating field {:s} with range {:g} to {:g} and seed {:d}.",
43 field_name, range[0], range[1], seed);
45 std::vector<double> values(mesh.
getElements().size());
47 std::mt19937 generator(seed);
48 std::uniform_real_distribution<> distr(range[0], range[1]);
49 auto gen = [&distr, &generator]() {
return distr(generator); };
50 generate(begin(values), end(values), gen);
55 auto const&
property =
60 OGS_FATAL(
"The mesh property `{:s}' is not an element property.",
64 return std::make_unique<RandomFieldMeshElementParameter<double>>(
name, mesh,
void DBUG(char const *fmt, Args const &... args)
Definition of the Mesh class.
void checkConfigParameter(std::string const ¶m, T const &value) const
T getConfigParameter(std::string const ¶m) const
std::vector< Element * > const & getElements() const
Get the element-vector for the mesh.
Properties & getProperties()
PropertyVector< T > const * getPropertyVector(std::string const &name) const
void addPropertyToMesh(Mesh &mesh, std::string const &name, MeshItemType item_type, std::size_t number_of_components, std::vector< T > const &values)
std::unique_ptr< ParameterBase > createRandomFieldMeshElementParameter(std::string const &name, BaseLib::ConfigTree const &config, MeshLib::Mesh &mesh)