www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
RandomEulerAngleProvider Class Reference

Assign random Euler angles to each grains. More...

#include <RandomEulerAngleProvider.h>

Inheritance diagram for RandomEulerAngleProvider:
[legend]

Public Member Functions

 RandomEulerAngleProvider (const InputParameters &parameters)
 
virtual void initialize () override
 
virtual void execute () override
 
virtual void finalize () override
 
virtual const EulerAngles & getEulerAngles (unsigned int) const override
 
virtual unsigned int getGrainNum () const override
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

const GrainTrackerInterface & _grain_tracker
 
std::vector< EulerAngles > _angles
 
MooseRandom _random
 

Detailed Description

Assign random Euler angles to each grains.

Definition at line 25 of file RandomEulerAngleProvider.h.

Constructor & Destructor Documentation

◆ RandomEulerAngleProvider()

RandomEulerAngleProvider::RandomEulerAngleProvider ( const InputParameters &  parameters)

Definition at line 27 of file RandomEulerAngleProvider.C.

28  : EulerAngleProvider(params),
29  _grain_tracker(getUserObject<GrainTrackerInterface>("grain_tracker_object")),
30  _angles(0)
31 {
32  _random.seed(0, getParam<unsigned int>("seed"));
33 }

Member Function Documentation

◆ execute()

virtual void RandomEulerAngleProvider::execute ( )
inlineoverridevirtual

Definition at line 31 of file RandomEulerAngleProvider.h.

31 {}

◆ finalize()

virtual void RandomEulerAngleProvider::finalize ( )
inlineoverridevirtual

Definition at line 32 of file RandomEulerAngleProvider.h.

32 {}

◆ getEulerAngles()

const EulerAngles & RandomEulerAngleProvider::getEulerAngles ( unsigned int  i) const
overridevirtual

Implements EulerAngleProvider.

Definition at line 54 of file RandomEulerAngleProvider.C.

55 {
56  mooseAssert(i < getGrainNum(), "Requesting Euler angles for an invalid grain id");
57  return _angles[i];
58 }

◆ getGrainNum()

unsigned int RandomEulerAngleProvider::getGrainNum ( ) const
overridevirtual

Implements EulerAngleProvider.

Definition at line 48 of file RandomEulerAngleProvider.C.

49 {
50  return _angles.size();
51 }

Referenced by getEulerAngles().

◆ initialize()

void RandomEulerAngleProvider::initialize ( )
overridevirtual

Definition at line 36 of file RandomEulerAngleProvider.C.

37 {
38  EulerAngles angle;
39  auto grain_num = _grain_tracker.getTotalFeatureCount();
40  for (auto i = _angles.size(); i < grain_num; ++i)
41  {
42  angle.random(_random);
43  _angles.push_back(angle);
44  }
45 }

◆ validParams()

InputParameters EulerAngleProvider::validParams ( )
staticinherited

Definition at line 15 of file EulerAngleProvider.C.

16 {
18 }

Referenced by EulerAngleFileReader::validParams().

Member Data Documentation

◆ _angles

std::vector<EulerAngles> RandomEulerAngleProvider::_angles
protected

Definition at line 39 of file RandomEulerAngleProvider.h.

Referenced by getEulerAngles(), getGrainNum(), and initialize().

◆ _grain_tracker

const GrainTrackerInterface& RandomEulerAngleProvider::_grain_tracker
protected

Definition at line 38 of file RandomEulerAngleProvider.h.

Referenced by initialize().

◆ _random

MooseRandom RandomEulerAngleProvider::_random
protected

Definition at line 41 of file RandomEulerAngleProvider.h.

Referenced by initialize(), and RandomEulerAngleProvider().


The documentation for this class was generated from the following files:
RandomEulerAngleProvider::_random
MooseRandom _random
Definition: RandomEulerAngleProvider.h:41
RandomEulerAngleProvider::getGrainNum
virtual unsigned int getGrainNum() const override
Definition: RandomEulerAngleProvider.C:48
GrainTrackerInterface::getTotalFeatureCount
virtual std::size_t getTotalFeatureCount() const =0
Returns a number large enough to contain the largest ID for all grains in use.
validParams
InputParameters validParams()
RandomEulerAngleProvider::_grain_tracker
const GrainTrackerInterface & _grain_tracker
Definition: RandomEulerAngleProvider.h:38
EulerAngles::random
void random()
Definition: EulerAngles.C:73
EulerAngles
Euler angle triplet.
Definition: EulerAngles.h:22
EulerAngleProvider::EulerAngleProvider
EulerAngleProvider(const InputParameters &parameters)
Definition: EulerAngleProvider.h:29
RandomEulerAngleProvider::_angles
std::vector< EulerAngles > _angles
Definition: RandomEulerAngleProvider.h:39