PiecewiseConstantDiscontinuousScalarSpaceBarycentric<BasisFunctionType>::
    PiecewiseConstantDiscontinuousScalarSpaceBarycentric(
        const shared_ptr<const Grid> &grid, const GridSegment &segment)
    : ScalarSpace<BasisFunctionType>(grid->barycentricGrid()),
      m_segment(segment) {
  assignDofsImpl(m_segment);
}
void PiecewiseLinearDiscontinuousScalarSpaceBarycentric<BasisFunctionType>::initialize()
{
    const int gridDim = this->grid()->dim();
    if (gridDim != 1 && gridDim != 2)
        throw std::invalid_argument(
                "PiecewiseLinearDiscontinuousScalarSpaceBarycentric::initialize(): "
                "only 1- and 2-dimensional grids are supported");
    assignDofsImpl();
}
void PiecewiseLinearDiscontinuousScalarSpace<BasisFunctionType>::initialize(
    const GridSegment &segment, bool strictlyOnSegment) {
    const int gridDim = this->grid()->dim();
    if (gridDim != 1 && gridDim != 2)
        throw std::invalid_argument(
            "PiecewiseLinearDiscontinuousScalarSpace::"
            "PiecewiseLinearDiscontinuousScalarSpace(): "
            "only 1- and 2-dimensional grids are supported");
    m_view = this->grid()->leafView();
    assignDofsImpl(segment, strictlyOnSegment);
}