https://mooseframework.inl.gov
ComputeGBMisorientationType.h
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 
10 #pragma once
11 
12 #include "Material.h"
13 #include "GrainTracker.h"
14 #include "EBSDReader.h"
15 
20 {
21 public:
23 
25 
26 protected:
28  virtual void computeQpProperties() override;
29 
31  virtual unsigned int getTotalLineNum() const;
33  virtual unsigned int getLineNum(unsigned int grain_i, unsigned int grain_j);
35  virtual Real getTripleJunctionType();
37  void rotationSymmetryToQuaternion(const double O[3][3], Eigen::Quaternion<Real> & q);
41  double getMisorientationFromQuaternion(const Eigen::Quaternion<Real> qi,
42  const Eigen::Quaternion<Real> qj);
45 
48 
51 
53  std::vector<double> _misorientation_angles;
54 
56  std::vector<unsigned int> _gb_pairs;
57  std::vector<Real> _gb_op_pairs;
58 
60  const unsigned int _op_num;
61  const std::vector<const VariableValue *> _vals;
62 
65 
67  std::vector<Eigen::Quaternion<Real>> _sym_quat;
68  int _o_sym = 24;
69  std::vector<EulerAngles> _euler_angle;
70  std::vector<Eigen::Quaternion<Real>> _quat_angle;
71 
74 };
double getMisorientationFromQuaternion(const Eigen::Quaternion< Real > qi, const Eigen::Quaternion< Real > qj)
Function to return the misorientation of two quaternions.
const Real _angle_threshold
the max value of LAGB
ComputeGBMisorientationType(const InputParameters &parameters)
virtual unsigned int getLineNum(unsigned int grain_i, unsigned int grain_j)
Function to obtain line number for a given grain pair.
void defineSymmetryOperator()
Function to define the symmetry operator.
void rotationSymmetryToQuaternion(const double O[3][3], Eigen::Quaternion< Real > &q)
Function to convert symmetry matrix to quaternion form.
virtual Real getTripleJunctionType()
Function to get the GB type for triple junctions.
std::vector< EulerAngles > _euler_angle
const unsigned int _op_num
order parameters
std::vector< double > _misorientation_angles
Parameters to calculate the Misorientation angle file.
virtual void computeQpProperties() override
Necessary override. This is where the property values are set.
const std::vector< const VariableValue * > _vals
const GrainTracker & _grain_tracker
Grain tracker object.
A GeneralUserObject that reads an EBSD file and stores the centroid data in a data structure which in...
Definition: EBSDReader.h:31
std::vector< unsigned int > _gb_pairs
parameters to store the EBSD id and corresponding value on GB
std::vector< Eigen::Quaternion< Real > > _sym_quat
The parameters to calculate the misorientation.
std::vector< Eigen::Quaternion< Real > > _quat_angle
static InputParameters validParams()
virtual unsigned int getTotalLineNum() const
Function to obtain the total line number in misorientation angle file.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
Visualize the location of grain boundaries in a polycrystalline simulation.
ADMaterialProperty< Real > & _gb_type
precalculated element value
void getMisorientationAngles()
Get the Misorientation angle.
const EBSDReader & _ebsd_reader
EBSD reader user object.