LCOV - code coverage report
Current view: top level - src/scalarkernels - GeneralizedPlaneStrain.C (source / functions) Hit Total Coverage
Test: idaholab/moose tensor_mechanics: d6b47a Lines: 28 29 96.6 %
Date: 2024-02-27 11:53:14 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://www.mooseframework.org
       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("TensorMechanicsApp", GeneralizedPlaneStrain);
      23             : 
      24             : InputParameters
      25         182 : GeneralizedPlaneStrain::validParams()
      26             : {
      27         182 :   InputParameters params = ScalarKernel::validParams();
      28         182 :   params.addClassDescription("Generalized Plane Strain Scalar Kernel");
      29         364 :   params.addRequiredParam<UserObjectName>("generalized_plane_strain",
      30             :                                           "The name of the GeneralizedPlaneStrainUserObject");
      31         364 :   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         182 :   return params;
      36           0 : }
      37             : 
      38          91 : GeneralizedPlaneStrain::GeneralizedPlaneStrain(const InputParameters & parameters)
      39             :   : ScalarKernel(parameters),
      40          91 :     _gps(getUserObject<GeneralizedPlaneStrainUOInterface>("generalized_plane_strain")),
      41          91 :     _scalar_var_id(isParamValid("scalar_out_of_plane_strain_index")
      42          91 :                        ? getParam<unsigned int>("scalar_out_of_plane_strain_index")
      43          91 :                        : 0)
      44             : {
      45          91 : }
      46             : 
      47             : void
      48        4058 : GeneralizedPlaneStrain::computeResidual()
      49             : {
      50        4058 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::NonReference);
      51        8116 :   for (_i = 0; _i < _local_re.size(); ++_i)
      52        4058 :     _local_re(_i) += _gps.returnResidual(_scalar_var_id);
      53        4058 :   accumulateTaggedLocalResidual();
      54             : 
      55        4058 :   prepareVectorTag(_assembly, _var.number(), TaggingInterface::ResidualTagType::Reference);
      56        4106 :   for (_i = 0; _i < _local_re.size(); ++_i)
      57          48 :     _local_re(_i) += _gps.returnReferenceResidual(_scalar_var_id);
      58        4058 :   accumulateTaggedLocalResidual();
      59        4058 : }
      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         486 : GeneralizedPlaneStrain::computeJacobian()
      68             : {
      69         486 :   prepareMatrixTag(_assembly, _var.number(), _var.number());
      70         972 :   for (_i = 0; _i < _local_ke.m(); ++_i)
      71         486 :     _local_ke(_i, _i) += _gps.returnJacobian(_scalar_var_id);
      72             : 
      73         486 :   accumulateTaggedLocalMatrix();
      74         486 : }

Generated by: LCOV version 1.14