void ODEKernel::computeJacobian() { DenseMatrix<Number> & ke = _assembly.jacobianBlock(_var.number(), _var.number()); for (_i = 0; _i < _var.order(); _i++) for (_j = 0; _j < _var.order(); _j++) ke(_i, _j) += computeQpJacobian(); // compute off-diagonal jacobians wrt scalar variables const std::vector<MooseVariableScalar *> & scalar_vars = _sys.getScalarVariables(_tid); for (std::vector<MooseVariableScalar *>::const_iterator it = scalar_vars.begin(); it != scalar_vars.end(); ++it) { MooseVariableScalar * jvar = *it; computeOffDiagJacobian(jvar->number()); } }