https://mooseframework.inl.gov
Loading...
Searching...
No Matches
RandomEulerAngleProvider.C
Go to the documentation of this file.
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
12
14
17{
19 params.addClassDescription("Assign random Euler angles for each grain.");
20 params.addRequiredParam<UserObjectName>("grain_tracker_object",
21 "The FeatureFloodCount UserObject to get values from.");
22 params.addParam<unsigned int>("seed", 0, "Seed value for the random number generator");
23 return params;
24}
25
27 : EulerAngleProvider(params),
28 _grain_tracker(getUserObject<GrainTrackerInterface>("grain_tracker_object"))
29{
30 _random.seed(0, getParam<unsigned int>("seed"));
31}
32
33void
35{
36 EulerAngles angle;
37 auto grain_num = _grain_tracker.getTotalFeatureCount();
38 for (auto i = _angles.size(); i < grain_num; ++i)
39 {
40 angle.random(_random);
41 _angles.push_back(angle);
42 }
43}
registerMooseObject("PhaseFieldApp", RandomEulerAngleProvider)
Abstract base class for user objects that implement the Euler Angle provider interface.
std::vector< EulerAngles > & _angles
static InputParameters validParams()
Euler angle triplet.
Definition EulerAngles.h:25
void random()
Definition EulerAngles.C:84
This class defines the interface for the GrainTracking objects.
virtual std::size_t getTotalFeatureCount() const =0
Returns a number large enough to contain the largest ID for all grains in use.
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void seed(std::size_t i, unsigned int seed)
Assign random Euler angles to each grains.
const GrainTrackerInterface & _grain_tracker
static InputParameters validParams()
virtual void initialize() override
RandomEulerAngleProvider(const InputParameters &parameters)