LCOV - code coverage report
Current view: top level - src/kernels - ODEKernel.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 33 33 100.0 %
Date: 2025-07-17 01:28:37 Functions: 7 7 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* This file is part of the MOOSE framework
       2             : //* https://mooseframework.inl.gov
       3             : //*
       4             : //* All rights reserved, see COPYRIGHT for full restrictions
       5             : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
       6             : //*
       7             : //* Licensed under LGPL 2.1, please see LICENSE for details
       8             : //* https://www.gnu.org/licenses/lgpl-2.1.html
       9             : 
      10             : #include "ODEKernel.h"
      11             : 
      12             : // MOOSE includes
      13             : #include "Assembly.h"
      14             : #include "MooseVariableScalar.h"
      15             : #include "SystemBase.h"
      16             : 
      17             : InputParameters
      18      102115 : ODEKernel::validParams()
      19             : {
      20      102115 :   InputParameters params = ScalarKernel::validParams();
      21      102115 :   return params;
      22             : }
      23             : 
      24        1128 : ODEKernel::ODEKernel(const InputParameters & parameters) : ScalarKernel(parameters) {}
      25             : 
      26             : void
      27      217256 : ODEKernel::reinit()
      28             : {
      29      217256 : }
      30             : 
      31             : void
      32       74239 : ODEKernel::computeResidual()
      33             : {
      34       74239 :   prepareVectorTag(_assembly, _var.number());
      35             : 
      36      148782 :   for (_i = 0; _i < _var.order(); _i++)
      37       74543 :     _local_re(_i) += computeQpResidual();
      38             : 
      39       74239 :   accumulateTaggedLocalResidual();
      40       74239 : }
      41             : 
      42             : void
      43       34449 : ODEKernel::computeJacobian()
      44             : {
      45       34449 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      46             : 
      47       68974 :   for (_i = 0; _i < _var.order(); _i++)
      48       69278 :     for (_j = 0; _j < _var.order(); _j++)
      49       34753 :       _local_ke(_i, _j) += computeQpJacobian();
      50             : 
      51       34449 :   accumulateTaggedLocalMatrix();
      52             : 
      53             :   // compute off-diagonal jacobians wrt scalar variables
      54       34449 :   const std::vector<MooseVariableScalar *> & scalar_vars = _sys.getScalarVariables(_tid);
      55       83862 :   for (const auto & var : scalar_vars)
      56       49413 :     computeOffDiagJacobianScalar(var->number());
      57       34449 : }
      58             : 
      59             : void
      60       49413 : ODEKernel::computeOffDiagJacobianScalar(unsigned int jvar)
      61             : {
      62       49413 :   prepareMatrixTag(_assembly, _var.number(), jvar);
      63             : 
      64       49413 :   MooseVariableScalar & var_j = _sys.getScalarVariable(_tid, jvar);
      65       98902 :   for (_i = 0; _i < _var.order(); _i++)
      66       99206 :     for (_j = 0; _j < var_j.order(); _j++)
      67             :     {
      68       49717 :       if (jvar != _var.number())
      69       14964 :         _local_ke(_i, _j) += computeQpOffDiagJacobianScalar(jvar);
      70             :     }
      71             : 
      72       49413 :   accumulateTaggedLocalMatrix();
      73       49413 : }
      74             : 
      75             : Real
      76         320 : ODEKernel::computeQpJacobian()
      77             : {
      78         320 :   return 0.;
      79             : }

Generated by: LCOV version 1.14