If you want to read custom user data, let's say to read a couple of check point for your time loop from file, here is some recipes of how to achieve that with simple helpers available in DuMux.
If you have a simple text file containing a list of numbers
You can read these numbers into a std::vector<double>
like this
The file extension is arbitrary. The container type std::vector<>
needs to support begin()
, end()
, and push_back()
. It has to have an alias value_type
(the type of the element, here double
) and this type needs to have an overloaded operator>>
to be constructible from an input stream. With similar code you can also multi-column data like this
for example into a std::vector<Dune::FieldVector<float, 3>>
You can read config data (key-value data) using the Dune::ParameterTreeParser
. This is the same type of file we use for DuMux input
files. Given a config file like this
the data can be read into a Dune::ParameterTree
like this
Again, the file extension is arbitrary. You can retrieve data by casting it into another type like this
XML (Extensible Markup Language) is a very flexible structured data format. You can read and write XML files using the TinyXML-2 library contained in DuMux. For example, given an XML file like this
You can initialise the file reader like this
and read fields like this