LCOV - code coverage report
Current view: top level - src/userobjects - RandomEulerAngleProvider.C (source / functions) Hit Total Coverage
Test: idaholab/moose phase_field: #32971 (54bef8) with base c6cf66 Lines: 17 18 94.4 %
Date: 2026-05-29 20:38:39 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 "RandomEulerAngleProvider.h"
      11             : #include "GrainTrackerInterface.h"
      12             : 
      13             : registerMooseObject("PhaseFieldApp", RandomEulerAngleProvider);
      14             : 
      15             : InputParameters
      16          28 : RandomEulerAngleProvider::validParams()
      17             : {
      18          28 :   InputParameters params = EulerAngleProvider::validParams();
      19          28 :   params.addClassDescription("Assign random Euler angles for each grain.");
      20          56 :   params.addRequiredParam<UserObjectName>("grain_tracker_object",
      21             :                                           "The FeatureFloodCount UserObject to get values from.");
      22          56 :   params.addParam<unsigned int>("seed", 0, "Seed value for the random number generator");
      23          28 :   return params;
      24           0 : }
      25             : 
      26          14 : RandomEulerAngleProvider::RandomEulerAngleProvider(const InputParameters & params)
      27             :   : EulerAngleProvider(params),
      28          14 :     _grain_tracker(getUserObject<GrainTrackerInterface>("grain_tracker_object"))
      29             : {
      30          28 :   _random.seed(0, getParam<unsigned int>("seed"));
      31          14 : }
      32             : 
      33             : void
      34          56 : RandomEulerAngleProvider::initialize()
      35             : {
      36          56 :   EulerAngles angle;
      37          56 :   auto grain_num = _grain_tracker.getTotalFeatureCount();
      38          68 :   for (auto i = _angles.size(); i < grain_num; ++i)
      39             :   {
      40          12 :     angle.random(_random);
      41          12 :     _angles.push_back(angle);
      42             :   }
      43          56 : }

Generated by: LCOV version 1.14