https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeBlockOrientationByRotation.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
18{
19public:
21
23
27 virtual void initialize() override;
28
32 virtual void execute() override;
33
34 virtual void threadJoin(const UserObject & /*y*/) override {};
35
39 virtual void finalize() override;
40
41protected:
49
50 // updated quaternion
52
54 unsigned int _bins;
55
57 Real _L_norm;
58
59 // Array of vectors to store quaternions of each grain
60 std::unordered_map<SubdomainID, std::vector<std::tuple<Real, Real, Real, Real>>> _quat;
61};
Computes the average value of a variable on each block.
Computes the average value of a variable on each block.
unsigned int _bins
number of bins for each quaternion component
Real _L_norm
parameter used to compute the weighting function for the average quaternion calculation
EulerAngles computeSubdomainEulerAngles(const SubdomainID &sid)
Compute Quaternion for each subdomain (block), following Markley, F.
virtual void execute() override
Compute the average of the rotation matrix in this element.
std::unordered_map< SubdomainID, std::vector< std::tuple< Real, Real, Real, Real > > > _quat
virtual void initialize() override
Clear internal Euler angle and misorientationdata.
const MaterialProperty< RankTwoTensor > & _updated_rotation
virtual void threadJoin(const UserObject &) override
virtual void finalize() override
Gather all Euler angles from this block.
Euler angle triplet.
Definition EulerAngles.h:25
const InputParameters & parameters() const