LCOV - code coverage report
Current view: top level - src/dampers - ElementDamper.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 26 27 96.3 %
Date: 2025-07-17 01:28:37 Functions: 3 3 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 "ElementDamper.h"
      11             : 
      12             : // MOOSE includes
      13             : #include "Assembly.h"
      14             : #include "FEProblem.h"
      15             : #include "MooseVariableFE.h"
      16             : #include "SubProblem.h"
      17             : #include "SystemBase.h"
      18             : 
      19             : #include "libmesh/quadrature.h"
      20             : 
      21             : InputParameters
      22       28696 : ElementDamper::validParams()
      23             : {
      24       28696 :   InputParameters params = Damper::validParams();
      25       28696 :   params += MaterialPropertyInterface::validParams();
      26       28696 :   params.addRequiredParam<NonlinearVariableName>(
      27             :       "variable", "The name of the variable that this damper operates on");
      28       28696 :   return params;
      29           0 : }
      30             : 
      31          92 : ElementDamper::ElementDamper(const InputParameters & parameters)
      32             :   : Damper(parameters),
      33             :     MaterialPropertyInterface(this, Moose::EMPTY_BLOCK_IDS, Moose::EMPTY_BOUNDARY_IDS),
      34          92 :     _tid(parameters.get<THREAD_ID>("_tid")),
      35          92 :     _assembly(_subproblem.assembly(_tid, _sys.number())),
      36          92 :     _coord_sys(_assembly.coordSystem()),
      37          92 :     _var(_sys.getFieldVariable<Real>(_tid, parameters.get<NonlinearVariableName>("variable"))),
      38             : 
      39          92 :     _current_elem(_var.currentElem()),
      40          92 :     _q_point(_assembly.qPoints()),
      41          92 :     _qrule(_assembly.qRule()),
      42          92 :     _JxW(_assembly.JxW()),
      43             : 
      44          92 :     _u_increment(_var.increment()),
      45             : 
      46          92 :     _u(_var.sln()),
      47         184 :     _grad_u(_var.gradSln())
      48             : {
      49          92 : }
      50             : 
      51             : Real
      52        1764 : ElementDamper::computeDamping()
      53             : {
      54        1764 :   Real damping = 1.0;
      55        1764 :   Real cur_damping = 1.0;
      56             : 
      57       14938 :   for (_qp = 0; _qp < _qrule->n_points(); _qp++)
      58             :   {
      59       13174 :     cur_damping = computeQpDamping();
      60       13174 :     if (cur_damping < damping)
      61        2025 :       damping = cur_damping;
      62             :   }
      63             : 
      64        1764 :   return damping;
      65             : }

Generated by: LCOV version 1.14