This diagram illustrates the simplest as well as the fully SIDS-compliant implementation of the ZoneBC_t node. In both cases, the ZoneBC_t node has a child BC_t node, with data "BCType".
In the lowest-level boundary condition implementation allowed, shown on the left, the BC_t node has a single child IndexRange_t node, with data "index range". The application code must interpret the meaning of BCType.
In the fully SIDS-compliant boundary condition implementation, shown on the right, the BC_t node again has a child IndexRange_t node, with data "index range", but also has multiple BCDataSet_t child nodes, with the data "BCTypeSimple". Each of these BCDataSet_t nodes in turn has two BCData_t child nodes, one named DirichletData and the other named NeumannData. Finally, the BCData_t nodes each have a child DataArray_t node, with the data "BC quantities".