Implement the ability to refer to boundary components by symbolic names.

Add a function to the geometry interface to provide symbolic names for boundaries.

Let the 'box' geometry describe its boundary pieces.

Implement that we can parse symbolic names for boundary components. This is not tested right now, nor is there any error checking. All of that still to come.

Indent a section.

Add a test.

Add some error checking. There is one place where we do not yet translate names but that will have to wait for the pressure-bc branch to be done.

Update one TODO.

Make the heat flux and boundary velocity postprocessors also output the names of boundary components. Adjust the output of some of the tests (more is necessary).

Adjust a few more test outputs.

Also provide symbolic names for the spherical shell geometry.

Add tests forgotten in previous commit.

Adjust some more output files.

Improve error message.

Provide symbolic names for the sphere geometry as well.

Make the functions that translate between symbolic and numeric boundary indicators available globally.

Fix a style issue and remove an unnecessary local variable.

Fix wrong comment.

Trim whitespace from boundary indicator names.

Parse boundary names also in the 'constant' boundary temperature model. This is a bit inconvenient because at the time we'd like to parse the data, we do not yet have access to the geometry model and so we need to defer to a later time :-(

Fix screen output file.

Let the material model read its parameters only after we have initialized its SimulatorAccess base class.

Let the remainder of the plugins read their parameters only after we have initialized its SimulatorAccess base class.

Also let the various velocity boundary condition plugins read their parameters only after we have initialized its SimulatorAccess base class.

Undo a previous change whereby we were splitting initialization in two phases.

Move initialization to where it is possible.

Finish changing initialization orders. Fix a couple of errors in the previous code on the way.

Also initialize the postprocessors at the right time and place.

And repeat the whole process one more time with the visualization postprocessors.

Fix an ordering problem where we have changed the order in which functions are now called. This turns out to also make the code much simpler :-)

Move the code that evaluates symbolic boundary names into the Interface class.

Fix an off-by-one error.

Leave a note.

Rename a function. Also provide a way to translate from boundary_id to strings, not just the other way around.

Make compile.

Simplify the reverse lookup.

Fix the text in error messages.

Unify error reporting style.

Adjust some text. Fix an error message.

Expand doc string.

Expand doc string.

Provide an entry in the news file.

Make compile without C++11.

Avoid C++11-style variable initialization.

Update output files.

Set errno=0 before using it.

Adjust output file.

Fix space issue.

Provide more commentary.

Make error message more explicit. Make logic easier to read.

Make it actually compile.

Also parse prescribed velocity boundary conditions.

Convert these two input files to symbolic names.

Convert this input file to symbolic names as well.

Document the need for symbolic names.

Update this file with symbolic names.

Update this file with symbolic names.

Update comments.

Use better text.

Update more input files for symbolic boundary names.

Minor edits.

More conversions.

Convert the remainder of the cookbooks.

Also convert the benchmark input files.

Also convert the snippets of documentation that go into the manual.

Update the description of the statistics file.

Talk about boundary indicators in the manual. Regenerate the input file snippets.

fix some test outputs

As pointed out by Timo, add two missing initialize() calls.

Indent one line.

Simplify a function that we have twice to state what it really does.
Merge pull request #165 from bangerth/symbolic-names-for-boundary-ids

Symbolic names for boundary ids

This turned out to be a much larger feature than I thought it would be. In any case, I think that it covers all of the places where we input or output boundary indicators in the input file, and it should now be possible to use symbolic names for them as provided by the geometry model.

There is a single place where it is currently still incomplete, namely in parsing the "Prescribed velocity boundary indicators" in Parameters::parse_geometry_dependent_parameters(). This will conflict with my changes to make pressure/traction boundary conditions possible and I would like to defer dealing with this place until this other patch. I promise to get to it.

This patch also addresses issue 126 (#126) whereby we need to initialize the SimulatorAccess object of every plugin before we parse parameters. This is likely about half of the total patch.