function [D_scheme, penalties, D_f] = constructSchemeDiffOps(scheme, g, order, schemeParams, opSet, BCs)
    %% DiffOps for solution vector
    [D_f, closures, penalties] = rv.diffops.constructFluxDiffOps(scheme, g, order, schemeParams, opSet, BCs);
    D_scheme = rv.diffops.addClosuresToDiffOp(D_f, closures);
    D2 = rv.diffops.constructSymmetricD2(g, order, opSet);
    D_scheme = @(v,viscosity)(D_scheme(v) + D2(viscosity)*v);
end