https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeGrainForceAndTorque.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
15
16// Forward Declarations
18
22class ComputeGrainForceAndTorque : public DerivativeMaterialInterface<ShapeElementUserObject>,
24{
25public:
27
29
30 virtual void initialize();
31 virtual void execute();
32 virtual void executeJacobian(unsigned int jvar);
33 virtual void finalize();
34 virtual void threadJoin(const UserObject & y);
35
36 virtual const std::vector<RealGradient> & getForceValues() const;
37 virtual const std::vector<RealGradient> & getTorqueValues() const;
38 virtual const std::vector<Real> & getForceCJacobians() const;
39 virtual const std::vector<std::vector<Real>> & getForceEtaJacobians() const;
40
41protected:
42 unsigned int _qp;
43
44 VariableName _c_name;
45 unsigned int _c_var;
47 MaterialPropertyName _dF_name;
52 unsigned int _op_num;
55 unsigned int _grain_num;
56 unsigned int _ncomp;
57
58 std::vector<unsigned int> _vals_var;
59 std::vector<VariableName> _vals_name;
60 std::vector<const MaterialProperty<std::vector<Real>> *> _dFdgradeta;
61 std::vector<const MaterialProperty<Real> *> _test_derivatives;
62
64 std::vector<RealGradient> _force_values;
65 std::vector<RealGradient> _torque_values;
66
68 std::vector<Real> _force_torque_store;
71 std::vector<std::vector<Real>> _force_torque_eta_jacobian_store;
72
73 unsigned int _total_dofs;
74};
const std::vector< double > y
This class is here to get the force and torque acting on a grain.
std::vector< std::vector< Real > > _force_torque_eta_jacobian_store
virtual void executeJacobian(unsigned int jvar)
std::vector< RealGradient > _force_values
providing grain forces, torques and their jacobians w. r. t c
const MaterialProperty< std::vector< RealGradient > > & _dF
static InputParameters validParams()
std::vector< Real > _force_torque_store
vector storing grain force and torque values
virtual const std::vector< RealGradient > & getForceValues() const
std::vector< VariableName > _vals_name
const GrainTrackerInterface & _grain_tracker
provide UserObject for calculating grain volumes and centers
std::vector< const MaterialProperty< std::vector< Real > > * > _dFdgradeta
virtual const std::vector< std::vector< Real > > & getForceEtaJacobians() const
std::vector< RealGradient > _torque_values
std::vector< const MaterialProperty< Real > * > _test_derivatives
virtual void threadJoin(const UserObject &y)
virtual const std::vector< RealGradient > & getTorqueValues() const
std::vector< Real > _force_torque_c_jacobian_store
vector storing jacobian of grain force and torque values
MaterialPropertyName _dF_name
material property that provides force density
virtual const std::vector< Real > & getForceCJacobians() const
std::vector< unsigned int > _vals_var
unsigned int _op_num
no. of order parameters
const MaterialProperty< std::vector< RealGradient > > & _dFdc
material property that provides jacobian of force density with respect to c
This class provides interface for extracting the forces and torques computed in other UserObjects.
This class defines the interface for the GrainTracking objects.