www.mooseframework.org
PolycrystalCircles.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 
12 #include <array>
14 #include "DelimitedFileReader.h"
15 
16 // Forward Declarations
17 class PolycrystalCircles;
18 
19 template <>
20 InputParameters validParams<PolycrystalCircles>();
21 
31 {
32 public:
33  PolycrystalCircles(const InputParameters & parameters);
34 
35  // Required functions from PolycrystalUserObjectBase
36  virtual void precomputeGrainStructure() override;
37  virtual void getGrainsBasedOnPoint(const Point & point,
38  std::vector<unsigned int> & grains) const override;
39  virtual Real getVariableValue(unsigned int op_index, const Point & p) const override;
40  virtual unsigned int getNumGrains() const override { return _grain_num; }
41 
42 protected:
43  enum COLS
44  {
45  X,
46  Y,
47  Z,
48  R
49  }; // Names of columns in text file.
51  const bool _columnar_3D;
52 
54  const Real _int_width;
55 
57  unsigned int _grain_num;
58 
60  std::vector<Point> _centerpoints;
61 
63  std::vector<Real> _radii;
64 
65  Real computeDiffuseInterface(const Point & p, const unsigned int & i) const;
66 };
PolycrystalCircles::_centerpoints
std::vector< Point > _centerpoints
x,y,z coordinates of circle centers
Definition: PolycrystalCircles.h:60
PolycrystalCircles::COLS
COLS
Definition: PolycrystalCircles.h:43
PolycrystalCircles
PolycrystalCircles creates a polycrystal made up of circles.
Definition: PolycrystalCircles.h:30
PolycrystalCircles::_radii
std::vector< Real > _radii
Radius for each circular grain created.
Definition: PolycrystalCircles.h:63
PolycrystalCircles::_columnar_3D
const bool _columnar_3D
Whether to use columns or spheres in 3D geometries.
Definition: PolycrystalCircles.h:51
PolycrystalCircles::computeDiffuseInterface
Real computeDiffuseInterface(const Point &p, const unsigned int &i) const
Definition: PolycrystalCircles.C:178
PolycrystalCircles::Z
Definition: PolycrystalCircles.h:47
PolycrystalCircles::precomputeGrainStructure
virtual void precomputeGrainStructure() override
This callback is triggered after the object is initialized and may be optionally overridden to do pre...
Definition: PolycrystalCircles.C:94
PolycrystalCircles::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: PolycrystalCircles.h:40
PolycrystalCircles::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: PolycrystalCircles.C:52
PolycrystalUserObjectBase
This object provides the base capability for creating proper polycrystal ICs.
Definition: PolycrystalUserObjectBase.h:27
PolycrystalCircles::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: PolycrystalCircles.C:77
PolycrystalCircles::Y
Definition: PolycrystalCircles.h:46
PolycrystalCircles::PolycrystalCircles
PolycrystalCircles(const InputParameters &parameters)
Definition: PolycrystalCircles.C:43
PolycrystalCircles::_grain_num
unsigned int _grain_num
Number of crystal grains to create.
Definition: PolycrystalCircles.h:57
PolycrystalCircles::_int_width
const Real _int_width
Interfacial width.
Definition: PolycrystalCircles.h:54
PolycrystalUserObjectBase.h
PolycrystalCircles::R
Definition: PolycrystalCircles.h:48
PolycrystalCircles::X
Definition: PolycrystalCircles.h:45
validParams< PolycrystalCircles >
InputParameters validParams< PolycrystalCircles >()
Definition: PolycrystalCircles.C:21