https://mooseframework.inl.gov
ComputeBlockOrientationByMisorientation.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 #include "libmesh/mesh_tools.h"
15 #include "EulerAngles.h"
16 
21 {
22 public:
24 
26 
30  virtual void initialize() override;
31 
36  virtual void execute() override;
37 
38  virtual void threadJoin(const UserObject & /*y*/) override {};
39 
44  virtual void finalize() override;
45 
47 
48 protected:
49  // updated quaternion
51 
52  // misorientation angle values
54 
55  // Array of vectors to store block ID, maximum misorientation angle and corresponding EulerAngle
56  std::unordered_map<SubdomainID, std::vector<std::tuple<Real, Real, Real, Real>>>
58 };
const InputParameters & parameters() const
ComputeBlockOrientationByMisorientation(const InputParameters &parameters)
Computes the average value of a variable on each block.
subdomain_id_type SubdomainID
std::unordered_map< SubdomainID, std::vector< std::tuple< Real, Real, Real, Real > > > _grain_misorientation
Computes the average value of a variable on each block.
virtual void initialize() override
Clear internal Euler angle and misorientationdata.
Euler angle triplet.
Definition: EulerAngles.h:24
const MaterialProperty< RankTwoTensor > & _updated_rotation
virtual void threadJoin(const UserObject &) override
virtual void execute() override
Compute the average of the rotation matrix, Euler angles, and misorientation in each element...
virtual void finalize() override
Sync data from all processors (gather the maximum misorientation and the corresponding EulerAngle fro...