www.mooseframework.org
RandomEulerAngleProvider.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef RANDOMEULERANGLEPROVIDER_H
8 #define RANDOMEULERANGLEPROVIDER_H
9 
10 #include "EulerAngleProvider.h"
11 #include "MooseRandom.h"
12 
13 // Forward declaration
16 
17 template <>
19 
24 {
25 public:
26  RandomEulerAngleProvider(const InputParameters & parameters);
27 
28  virtual void initialize() override;
29  virtual void execute() override {}
30  virtual void finalize() override {}
31 
32  virtual const EulerAngles & getEulerAngles(unsigned int) const override;
33  virtual unsigned int getGrainNum() const override;
34 
35 protected:
37  std::vector<EulerAngles> _angles;
38 
39  MooseRandom _random;
40 };
41 
42 #endif // RANDOMEULERANGLEPROVIDER_H
virtual void initialize() override
virtual unsigned int getGrainNum() const override
This class defines the interface for the GrainTracking objects.
virtual void finalize() override
InputParameters validParams< RandomEulerAngleProvider >()
RandomEulerAngleProvider(const InputParameters &parameters)
virtual const EulerAngles & getEulerAngles(unsigned int) const override
Assign random Euler angles to each grains.
virtual void execute() override
Euler angle triplet.
Definition: EulerAngles.h:20
Abstract base class for user objects that implement the Euler Angle provider interface.
std::vector< EulerAngles > _angles
const GrainTrackerInterface & _grain_tracker