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

Generated by: LCOV version 1.14