Пример #1
0
void
ODEKernel::computeJacobian()
{
  prepareMatrixTag(_assembly, _var.number(), _var.number());

  for (_i = 0; _i < _var.order(); _i++)
    for (_j = 0; _j < _var.order(); _j++)
      _local_ke(_i, _j) += computeQpJacobian();

  accumulateTaggedLocalMatrix();

  // compute off-diagonal jacobians wrt scalar variables
  const std::vector<MooseVariableScalar *> & scalar_vars = _sys.getScalarVariables(_tid);
  for (const auto & var : scalar_vars)
    computeOffDiagJacobian(var->number());
}
Пример #2
0
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());
  }
}
Пример #3
0
void
FDKernel::computeJacobian()
{
    computeOffDiagJacobian(_var.number());
}