Begin process of building in 3D infrastructure. 2D scheme still works as
normal. Move mesh creation into the Domain constructor.
Use full property names for materials.
Convert all ublas vectors and matrices to std::vector and
boost::multi_array objects unless they are actually used for linear
algebra functions. Also switch to absolute namespaces (no "using
namespace" commands).
Loop over Y-dimension.
Add inputs for foundation width and length (area & prerimeter are now
subsequently calculated).
Replace "r" variables with "x" variables for a consistent coordinate
scheme.
Fix cell types near interior walls of basements/crawlspaces.
Move linear algebra constructs (matrix and vectors) into initialization
so they are only constructed once and subsequently copied over.
Remove timestep from domain calculations. Also add default message if
program is run without arguments.
Clean up creation of mesh data using blocks and surfaces.
Generalize boundary condition calculations. Make boundary conditions a
property of Surfaces. Construct domain from Blocks and Surfaces. Create
"Cell" object to contain cell properties. Add zero flux boundary
condition for deep ground.
Simplify zero-flux boundary conditions. This fixes a bug with
deep-ground zero-flux boundary condition.