LCOV - code coverage report
Current view: top level - src/scalarkernels - GeneralizedPlaneStrain.C (source / functions) Hit Total Coverage
Test: idaholab/moose solid_mechanics: #31405 (292dce) with base fef103 Lines: 28 29 96.6 %
Date: 2025-09-04 07:57:23 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         446 : GeneralizedPlaneStrain::validParams()
      26             : {
      27         446 :   InputParameters params = ScalarKernel::validParams();
      28         446 :   params.addClassDescription("Generalized Plane Strain Scalar Kernel");
      29         892 :   params.addRequiredParam<UserObjectName>("generalized_plane_strain",
      30             :                                           "The name of the GeneralizedPlaneStrainUserObject");
      31         892 :   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         446 :   return params;
      36           0 : }
      37             : 
      38         223 : GeneralizedPlaneStrain::GeneralizedPlaneStrain(const InputParameters & parameters)
      39             :   : ScalarKernel(parameters),
      40         223 :     _gps(getUserObject<GeneralizedPlaneStrainUOInterface>("generalized_plane_strain")),
      41         223 :     _scalar_var_id(isParamValid("scalar_out_of_plane_strain_index")
      42         223 :                        ? getParam<unsigned int>("scalar_out_of_plane_strain_index")
      43         223 :                        : 0)
      44             : {
      45         223 : }
      46             : 
      47             : void
      48       13290 : GeneralizedPlaneStrain::computeResidual()
      49             : {
      50       13290 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::NonReference);
      51       26580 :   for (_i = 0; _i < _local_re.size(); ++_i)
      52       13290 :     _local_re(_i) += _gps.returnResidual(_scalar_var_id);
      53       13290 :   accumulateTaggedLocalResidual();
      54             : 
      55       13290 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::Reference);
      56       13400 :   for (_i = 0; _i < _local_re.size(); ++_i)
      57         110 :     _local_re(_i) += _gps.returnReferenceResidual(_scalar_var_id);
      58       13290 :   accumulateTaggedLocalResidual();
      59       13290 : }
      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        1774 : GeneralizedPlaneStrain::computeJacobian()
      68             : {
      69        1774 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      70        3548 :   for (_i = 0; _i < _local_ke.m(); ++_i)
      71        1774 :     _local_ke(_i, _i) += _gps.returnJacobian(_scalar_var_id);
      72             : 
      73        1774 :   accumulateTaggedLocalMatrix();
      74        1774 : }

Generated by: LCOV version 1.14