LCOV - code coverage report
Current view: top level - src/kernels - ODEKernel.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 419b9d Lines: 33 33 100.0 %
Date: 2025-08-08 20:01:16 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      102281 : ODEKernel::validParams()
      19             : {
      20      102281 :   InputParameters params = ScalarKernel::validParams();
      21      102281 :   return params;
      22             : }
      23             : 
      24        1211 : ODEKernel::ODEKernel(const InputParameters & parameters) : ScalarKernel(parameters) {}
      25             : 
      26             : void
      27      240685 : ODEKernel::reinit()
      28             : {
      29      240685 : }
      30             : 
      31             : void
      32       83724 : ODEKernel::computeResidual()
      33             : {
      34       83724 :   prepareVectorTag(_assembly, _var.number());
      35             : 
      36      167790 :   for (_i = 0; _i < _var.order(); _i++)
      37       84066 :     _local_re(_i) += computeQpResidual();
      38             : 
      39       83724 :   accumulateTaggedLocalResidual();
      40       83724 : }
      41             : 
      42             : void
      43       38816 : ODEKernel::computeJacobian()
      44             : {
      45       38816 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      46             : 
      47       77718 :   for (_i = 0; _i < _var.order(); _i++)
      48       78062 :     for (_j = 0; _j < _var.order(); _j++)
      49       39160 :       _local_ke(_i, _j) += computeQpJacobian();
      50             : 
      51       38816 :   accumulateTaggedLocalMatrix();
      52             : 
      53             :   // compute off-diagonal jacobians wrt scalar variables
      54       38816 :   const std::vector<MooseVariableScalar *> & scalar_vars = _sys.getScalarVariables(_tid);
      55       94502 :   for (const auto & var : scalar_vars)
      56       55686 :     computeOffDiagJacobianScalar(var->number());
      57       38816 : }
      58             : 
      59             : void
      60       55686 : ODEKernel::computeOffDiagJacobianScalar(unsigned int jvar)
      61             : {
      62       55686 :   prepareMatrixTag(_assembly, _var.number(), jvar);
      63             : 
      64       55686 :   MooseVariableScalar & var_j = _sys.getScalarVariable(_tid, jvar);
      65      111458 :   for (_i = 0; _i < _var.order(); _i++)
      66      111802 :     for (_j = 0; _j < var_j.order(); _j++)
      67             :     {
      68       56030 :       if (jvar != _var.number())
      69       16870 :         _local_ke(_i, _j) += computeQpOffDiagJacobianScalar(jvar);
      70             :     }
      71             : 
      72       55686 :   accumulateTaggedLocalMatrix();
      73       55686 : }
      74             : 
      75             : Real
      76         364 : ODEKernel::computeQpJacobian()
      77             : {
      78         364 :   return 0.;
      79             : }

Generated by: LCOV version 1.14