LCOV - code coverage report
Current view: top level - src/kernels - ODEKernel.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 33 33 100.0 %
Date: 2026-05-29 20:35:17 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       23514 : ODEKernel::validParams()
      19             : {
      20       23514 :   InputParameters params = ScalarKernel::validParams();
      21       23514 :   return params;
      22             : }
      23             : 
      24        1047 : ODEKernel::ODEKernel(const InputParameters & parameters) : ScalarKernel(parameters) {}
      25             : 
      26             : void
      27      194636 : ODEKernel::reinit()
      28             : {
      29      194636 : }
      30             : 
      31             : void
      32       65490 : ODEKernel::computeResidual()
      33             : {
      34       65490 :   prepareVectorTag(_assembly, _var.number());
      35             : 
      36      131284 :   for (_i = 0; _i < _var.order(); _i++)
      37       65794 :     _local_re(_i) += computeQpResidual();
      38             : 
      39       65490 :   accumulateTaggedLocalResidual();
      40       65490 : }
      41             : 
      42             : void
      43       29747 : ODEKernel::computeJacobian()
      44             : {
      45       29747 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      46             : 
      47       59572 :   for (_i = 0; _i < _var.order(); _i++)
      48       59884 :     for (_j = 0; _j < _var.order(); _j++)
      49       30059 :       _local_ke(_i, _j) += computeQpJacobian();
      50             : 
      51       29747 :   accumulateTaggedLocalMatrix();
      52             : 
      53             :   // compute off-diagonal jacobians wrt scalar variables
      54       29747 :   const std::vector<MooseVariableScalar *> & scalar_vars = _sys.getScalarVariables(_tid);
      55       73900 :   for (const auto & var : scalar_vars)
      56       44153 :     computeOffDiagJacobianScalar(var->number());
      57       29747 : }
      58             : 
      59             : void
      60       44153 : ODEKernel::computeOffDiagJacobianScalar(unsigned int jvar)
      61             : {
      62       44153 :   prepareMatrixTag(_assembly, _var.number(), jvar);
      63             : 
      64       44153 :   MooseVariableScalar & var_j = _sys.getScalarVariable(_tid, jvar);
      65       88384 :   for (_i = 0; _i < _var.order(); _i++)
      66       88696 :     for (_j = 0; _j < var_j.order(); _j++)
      67             :     {
      68       44465 :       if (jvar != _var.number())
      69       14406 :         _local_ke(_i, _j) += computeQpOffDiagJacobianScalar(jvar);
      70             :     }
      71             : 
      72       44153 :   accumulateTaggedLocalMatrix();
      73       44153 : }
      74             : 
      75             : Real
      76         324 : ODEKernel::computeQpJacobian()
      77             : {
      78         324 :   return 0.;
      79             : }

Generated by: LCOV version 1.14