LCOV - code coverage report
Current view: top level - src/scalarkernels - GeneralizedPlaneStrain.C (source / functions) Hit Total Coverage
Test: idaholab/moose solid_mechanics: #32971 (54bef8) with base c6cf66 Lines: 28 29 96.6 %
Date: 2026-05-29 20:40:07 Functions: 4 4 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 "GeneralizedPlaneStrain.h"
      11             : 
      12             : // MOOSE includes
      13             : #include "Assembly.h"
      14             : #include "GeneralizedPlaneStrainUOInterface.h"
      15             : #include "MooseVariableScalar.h"
      16             : #include "SystemBase.h"
      17             : #include "ReferenceResidualProblem.h"
      18             : #include "InputParameters.h"
      19             : 
      20             : #include <algorithm>
      21             : 
      22             : registerMooseObject("SolidMechanicsApp", GeneralizedPlaneStrain);
      23             : 
      24             : InputParameters
      25         252 : GeneralizedPlaneStrain::validParams()
      26             : {
      27         252 :   InputParameters params = ScalarKernel::validParams();
      28         252 :   params.addClassDescription("Generalized Plane Strain Scalar Kernel");
      29         504 :   params.addRequiredParam<UserObjectName>("generalized_plane_strain",
      30             :                                           "The name of the GeneralizedPlaneStrainUserObject");
      31         504 :   params.addParam<unsigned int>(
      32             :       "scalar_out_of_plane_strain_index",
      33             :       "The index number of scalar_out_of_plane_strain this kernel acts on");
      34             : 
      35         252 :   return params;
      36           0 : }
      37             : 
      38         126 : GeneralizedPlaneStrain::GeneralizedPlaneStrain(const InputParameters & parameters)
      39             :   : ScalarKernel(parameters),
      40         126 :     _gps(getUserObject<GeneralizedPlaneStrainUOInterface>("generalized_plane_strain")),
      41         126 :     _scalar_var_id(isParamValid("scalar_out_of_plane_strain_index")
      42         126 :                        ? getParam<unsigned int>("scalar_out_of_plane_strain_index")
      43         126 :                        : 0)
      44             : {
      45         126 : }
      46             : 
      47             : void
      48        8207 : GeneralizedPlaneStrain::computeResidual()
      49             : {
      50        8207 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::NonReference);
      51       16414 :   for (_i = 0; _i < _local_re.size(); ++_i)
      52        8207 :     _local_re(_i) += _gps.returnResidual(_scalar_var_id);
      53        8207 :   accumulateTaggedLocalResidual();
      54             : 
      55        8207 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::Reference);
      56        8277 :   for (_i = 0; _i < _local_re.size(); ++_i)
      57          70 :     _local_re(_i) += _gps.returnReferenceResidual(_scalar_var_id);
      58        8207 :   accumulateTaggedLocalResidual();
      59        8207 : }
      60             : 
      61             : /**
      62             :  * method to provide the diagonal jacobian term for scalar variable using value
      63             :  * returned from Postprocessor, off diagonal terms are computed by computeOffDiagJacobianScalar
      64             :  * in the kernel of nonlinear variables which needs to couple with the scalar variable
      65             :  */
      66             : void
      67        1088 : GeneralizedPlaneStrain::computeJacobian()
      68             : {
      69        1088 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      70        2176 :   for (_i = 0; _i < _local_ke.m(); ++_i)
      71        1088 :     _local_ke(_i, _i) += _gps.returnJacobian(_scalar_var_id);
      72             : 
      73        1088 :   accumulateTaggedLocalMatrix();
      74        1088 : }

Generated by: LCOV version 1.14