Topic: Changing from "giveInputRecordString" to "giveInputRecord"
With the dynamic input record, string identifiers and such, it was now possible to add a
FEMComponent::giveInputRecord(DynamicInputRecord &ir);which is more flexible, faster, easier to implement, and less error-prone, than the old giveInputRecordString where tedious string manipulations where necessary.
These were only used in 2 places (inside OOFEM at least); The subdivision code and the huerta error estimator.
I've been as careful as possible, but there isn't any tests for either of the codes so I can't be 100% certain everything is working flawlessly (however, judging from the giveInputRecordStrings-functions that was replaced, many of them were broken, e.g. missing entries, wrong string names etc.).
A typical implementation is straight forward, e.g.:
void PrescribedGradient :: giveInputRecord(DynamicInputRecord &input)
{
BoundaryCondition :: giveInputRecord(input);
input.setField(this->gradient, _IFT_PrescribedGradient_gradient);
input.setField(this->centerCoord, _IFT_PrescribedGradient_centercoords);
}The heurta error estimator still uses BufferedDataReader, but that should also be replaced by DynamicDataReader, which is much more flexible (one can then initialize problems without storing files), but primarly, more robust and easier to use.