www.mooseframework.org
PolycrystalVoronoi.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #pragma once
11 
13 
14 // Forward Declarations
15 class PolycrystalVoronoi;
16 
17 template <>
18 InputParameters validParams<PolycrystalVoronoi>();
19 
21 {
22 public:
23  PolycrystalVoronoi(const InputParameters & parameters);
24 
25  virtual void precomputeGrainStructure() override;
26  virtual void getGrainsBasedOnPoint(const Point & point,
27  std::vector<unsigned int> & grains) const override;
28  virtual Real getVariableValue(unsigned int op_index, const Point & p) const override;
29 
30  virtual unsigned int getNumGrains() const override { return _grain_num; }
31  virtual std::vector<Point> getGrainCenters() const { return _centerpoints; }
32 
33 protected:
35  unsigned int _grain_num;
36 
37  const bool _columnar_3D;
38 
39  const unsigned int _rand_seed;
40  const Real _int_width;
41 
42  Point _bottom_left;
43  Point _top_right;
44  Point _range;
45 
46  std::vector<Point> _centerpoints;
47 
48  const FileName _file_name;
49 
50 private:
51  Real computeDiffuseInterface(const Point & point,
52  const unsigned int & gr_index,
53  const std::vector<unsigned int> & grain_ids) const;
54  Point findNormalVector(const Point & point, const Point & p1, const Point & p2) const;
55  Point findCenterPoint(const Point & point, const Point & p1, const Point & p2) const;
56  Real findLinePoint(const Point & point,
57  const Point & N,
58  const Point & cntr,
59  const unsigned int dim) const;
60 };
61 
PolycrystalVoronoi::_top_right
Point _top_right
Definition: PolycrystalVoronoi.h:43
PolycrystalVoronoi::getNumGrains
virtual unsigned int getNumGrains() const override
Must be overridden by the deriving class to provide the number of grains in the polycrystal structure...
Definition: PolycrystalVoronoi.h:30
PolycrystalVoronoi::getVariableValue
virtual Real getVariableValue(unsigned int op_index, const Point &p) const override
Returns the variable value for a given op_index and mesh point.
Definition: PolycrystalVoronoi.C:94
PolycrystalVoronoi::findNormalVector
Point findNormalVector(const Point &point, const Point &p1, const Point &p2) const
Definition: PolycrystalVoronoi.C:197
PolycrystalVoronoi::_file_name
const FileName _file_name
Definition: PolycrystalVoronoi.h:48
PolycrystalVoronoi::findLinePoint
Real findLinePoint(const Point &point, const Point &N, const Point &cntr, const unsigned int dim) const
Definition: PolycrystalVoronoi.C:214
PolycrystalUserObjectBase
This object provides the base capability for creating proper polycrystal ICs.
Definition: PolycrystalUserObjectBase.h:27
PolycrystalVoronoi::_centerpoints
std::vector< Point > _centerpoints
Definition: PolycrystalVoronoi.h:46
PolycrystalVoronoi::_rand_seed
const unsigned int _rand_seed
Definition: PolycrystalVoronoi.h:39
PolycrystalVoronoi::_bottom_left
Point _bottom_left
Definition: PolycrystalVoronoi.h:42
PolycrystalVoronoi::_columnar_3D
const bool _columnar_3D
Definition: PolycrystalVoronoi.h:37
PolycrystalUserObjectBase.h
PolycrystalVoronoi::findCenterPoint
Point findCenterPoint(const Point &point, const Point &p1, const Point &p2) const
Definition: PolycrystalVoronoi.C:206
validParams< PolycrystalVoronoi >
InputParameters validParams< PolycrystalVoronoi >()
Definition: PolycrystalVoronoi.C:22
PolycrystalVoronoi::precomputeGrainStructure
virtual void precomputeGrainStructure() override
This callback is triggered after the object is initialized and may be optionally overridden to do pre...
Definition: PolycrystalVoronoi.C:116
PolycrystalVoronoi::PolycrystalVoronoi
PolycrystalVoronoi(const InputParameters &parameters)
Definition: PolycrystalVoronoi.C:41
PolycrystalVoronoi
Definition: PolycrystalVoronoi.h:20
PolycrystalVoronoi::computeDiffuseInterface
Real computeDiffuseInterface(const Point &point, const unsigned int &gr_index, const std::vector< unsigned int > &grain_ids) const
Definition: PolycrystalVoronoi.C:173
PolycrystalVoronoi::getGrainCenters
virtual std::vector< Point > getGrainCenters() const
Definition: PolycrystalVoronoi.h:31
PolycrystalVoronoi::_int_width
const Real _int_width
Definition: PolycrystalVoronoi.h:40
PolycrystalVoronoi::_grain_num
unsigned int _grain_num
The number of grains to create.
Definition: PolycrystalVoronoi.h:35
PolycrystalVoronoi::getGrainsBasedOnPoint
virtual void getGrainsBasedOnPoint(const Point &point, std::vector< unsigned int > &grains) const override
Method for retrieving active grain IDs based on some point in the mesh.
Definition: PolycrystalVoronoi.C:57
PolycrystalVoronoi::_range
Point _range
Definition: PolycrystalVoronoi.h:44