Real SoretDiffusion::computeQpJacobian() { if (_c_var == _var.number()) //Requires c jacobian return computeQpCJacobian(); return 0.0; }
Real SoretDiffusion::computeQpOffDiagJacobian(unsigned int jvar) { if (_c_var == jvar) //Requires c jacobian return computeQpCJacobian(); else if (_T_var == jvar) //Requires T jacobian return _D[_qp] * _Q[_qp] * _c[_qp] * _grad_test[_i][_qp] * (_grad_phi[_j][_qp]/(_kb * _T[_qp] * _T[_qp]) - 2.0 * _grad_T[_qp] * _phi[_j][_qp] / (_kb * _T[_qp] * _T[_qp] * _T[_qp])); return 0.0; }
Real SoretDiffusion::computeQpOffDiagJacobian(unsigned int jvar) { // c Off-Diagonal Jacobian if (_c_var == jvar) return computeQpCJacobian(); // T Off-Diagonal Jacobian if (_T_var == jvar) return _D[_qp] * _Q[_qp] * _c[_qp] * _grad_test[_i][_qp] * (_grad_phi[_j][_qp] - 2.0 * _grad_T[_qp] * _phi[_j][_qp] / _T[_qp]) / (_kB * _T[_qp] * _T[_qp]); return 0.0; }
Real SoretDiffusion::computeQpJacobian() { return _is_coupled ? 0.0 : computeQpCJacobian(); }