https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
21public:
23
25
26protected:
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
64 const Real _angle_threshold;
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};
Visualize the location of grain boundaries in a polycrystalline simulation.
virtual unsigned int getTotalLineNum() const
Function to obtain the total line number in misorientation angle file.
const std::vector< const VariableValue * > _vals
void defineSymmetryOperator()
Function to define the symmetry operator.
const Real _angle_threshold
the max value of LAGB
void getMisorientationAngles()
Get the Misorientation angle.
std::vector< Eigen::Quaternion< Real > > _sym_quat
The parameters to calculate the misorientation.
virtual Real getTripleJunctionType()
Function to get the GB type for triple junctions.
double getMisorientationFromQuaternion(const Eigen::Quaternion< Real > qi, const Eigen::Quaternion< Real > qj)
Function to return the misorientation of two quaternions.
virtual void computeQpProperties() override
Necessary override. This is where the property values are set.
const GrainTracker & _grain_tracker
Grain tracker object.
ADMaterialProperty< Real > & _gb_type
precalculated element value
void rotationSymmetryToQuaternion(const double O[3][3], Eigen::Quaternion< Real > &q)
Function to convert symmetry matrix to quaternion form.
std::vector< EulerAngles > _euler_angle
std::vector< unsigned int > _gb_pairs
parameters to store the EBSD id and corresponding value on GB
virtual unsigned int getLineNum(unsigned int grain_i, unsigned int grain_j)
Function to obtain line number for a given grain pair.
const EBSDReader & _ebsd_reader
EBSD reader user object.
const unsigned int _op_num
order parameters
std::vector< double > _misorientation_angles
Parameters to calculate the Misorientation angle file.
std::vector< Eigen::Quaternion< Real > > _quat_angle
A GeneralUserObject that reads an EBSD file and stores the centroid data in a data structure which in...
Definition EBSDReader.h:32
const InputParameters & parameters() const