LCOV - code coverage report
Current view: top level - src/userobjects - ParkinCoulterDPAUserObject.C (source / functions) Hit Total Coverage
Test: idaholab/magpie: 5710af Lines: 31 32 96.9 %
Date: 2025-07-21 23:34:39 Functions: 11 11 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /**********************************************************************/
       2             : /*                     DO NOT MODIFY THIS HEADER                      */
       3             : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */
       4             : /*                                                                    */
       5             : /*            Copyright 2017 Battelle Energy Alliance, LLC            */
       6             : /*                        ALL RIGHTS RESERVED                         */
       7             : /**********************************************************************/
       8             : #ifdef GSL_ENABLED
       9             : 
      10             : #include "ParkinCoulterDPAUserObject.h"
      11             : #include "PolyatomicRecoil.h"
      12             : #include "PolyatomicDisplacementFunction.h"
      13             : #include "PolyatomicDamageEnergyFunction.h"
      14             : #include "PolyatomicDisplacementDerivativeFunction.h"
      15             : #include "MooseMesh.h"
      16             : 
      17             : // various other includes
      18             : #include <mytrim/element.h>
      19             : #include <limits>
      20             : 
      21             : registerMooseObject("MagpieApp", ParkinCoulterDPAUserObject);
      22             : 
      23             : InputParameters
      24           8 : ParkinCoulterDPAUserObject::validParams()
      25             : {
      26           8 :   InputParameters params = DPAUserObjectBase::validParams();
      27           8 :   params += ParkinCoulterInterface::validParams();
      28           8 :   params.addClassDescription(
      29             :       "Computes the dose in dpa from composition, cross section, damage type, and neutron flux for "
      30             :       "polyatomic materials using Parkin-Coulter's method.");
      31           8 :   return params;
      32           0 : }
      33             : 
      34           4 : ParkinCoulterDPAUserObject::ParkinCoulterDPAUserObject(const InputParameters & parameters)
      35           4 :   : DPAUserObjectBase(parameters), ParkinCoulterInterface(this)
      36             : {
      37           4 : }
      38             : 
      39             : void
      40           4 : ParkinCoulterDPAUserObject::initialSetup()
      41             : {
      42           4 :   prepare();
      43           4 : }
      44             : 
      45             : std::vector<unsigned int>
      46           4 : ParkinCoulterDPAUserObject::atomicNumbers() const
      47             : {
      48           4 :   return getAtomicNumbers();
      49             : }
      50             : 
      51             : std::vector<Real>
      52           4 : ParkinCoulterDPAUserObject::massNumbers() const
      53             : {
      54           4 :   return getMassNumbers();
      55             : }
      56             : 
      57             : std::vector<Real>
      58           4 : ParkinCoulterDPAUserObject::numberFractions() const
      59             : {
      60           4 :   return getNumberFractions();
      61             : }
      62             : 
      63             : void
      64           4 : ParkinCoulterDPAUserObject::initDamageFunctions()
      65             : {
      66           4 :   _padf = std::make_unique<PolyatomicDisplacementFunction>(polyMat(), NET, _Ecap);
      67           4 : }
      68             : 
      69             : void
      70           4 : ParkinCoulterDPAUserObject::execute()
      71             : {
      72           4 :   accumulateDamage();
      73           4 : }
      74             : 
      75             : void
      76           4 : ParkinCoulterDPAUserObject::onCompositionChanged()
      77             : {
      78           4 :   computeDamageFunctions();
      79           4 :   _padf->computeDisplacementFunctionIntegral();
      80           4 : }
      81             : 
      82             : Real
      83       29760 : ParkinCoulterDPAUserObject::integralDamageFunction(Real T, unsigned int i, unsigned int j) const
      84             : {
      85       29760 :   return _padf->linearInterpolationIntegralDamageFunction(T, i, j);
      86             : }
      87             : 
      88             : void
      89           4 : ParkinCoulterDPAUserObject::finalize()
      90             : {
      91           4 : }
      92             : 
      93             : #endif

Generated by: LCOV version 1.14