Loading [MathJax]/extensions/tex2jax.js
www.mooseframework.org
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
ComputeExternalGrainForceAndTorque.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 
12 #include "ShapeElementUserObject.h"
14 #include "DerivativeMaterialInterface.h"
15 
16 // Forward Declarations
19 
20 template <>
22 
27  : public DerivativeMaterialInterface<ShapeElementUserObject>,
29 {
30 public:
31  ComputeExternalGrainForceAndTorque(const InputParameters & parameters);
32 
33  virtual void initialize();
34  virtual void execute();
35  virtual void executeJacobian(unsigned int jvar);
36  virtual void finalize();
37  virtual void threadJoin(const UserObject & y);
38 
39  virtual const std::vector<RealGradient> & getForceValues() const;
40  virtual const std::vector<RealGradient> & getTorqueValues() const;
41  virtual const std::vector<Real> & getForceCJacobians() const;
42  virtual const std::vector<std::vector<Real>> & getForceEtaJacobians() const;
43 
44 protected:
45  unsigned int _qp;
46 
47  VariableName _c_name;
48  unsigned int _c_var;
50  MaterialPropertyName _dF_name;
51  const MaterialProperty<std::vector<RealGradient>> & _dF;
53  const MaterialProperty<std::vector<RealGradient>> & _dFdc;
55  const unsigned int _op_num;
58  unsigned int _grain_num;
59  unsigned int _ncomp;
60 
61  std::vector<unsigned int> _vals_var;
62  std::vector<VariableName> _vals_name;
63  std::vector<const MaterialProperty<std::vector<RealGradient>> *> _dFdeta;
64 
66  std::vector<RealGradient> _force_values;
67  std::vector<RealGradient> _torque_values;
68 
70  std::vector<Real> _force_torque_store;
72  std::vector<Real> _force_torque_c_jacobian_store;
73  std::vector<std::vector<Real>> _force_torque_eta_jacobian_store;
74 
75  unsigned int _total_dofs;
76 };
77 
GrainTrackerInterface
This class defines the interface for the GrainTracking objects.
Definition: GrainTrackerInterface.h:24
ComputeExternalGrainForceAndTorque::executeJacobian
virtual void executeJacobian(unsigned int jvar)
Definition: ComputeExternalGrainForceAndTorque.C:102
ComputeExternalGrainForceAndTorque::_qp
unsigned int _qp
Definition: ComputeExternalGrainForceAndTorque.h:45
ComputeExternalGrainForceAndTorque::execute
virtual void execute()
Definition: ComputeExternalGrainForceAndTorque.C:77
ComputeExternalGrainForceAndTorque::getForceCJacobians
virtual const std::vector< Real > & getForceCJacobians() const
Definition: ComputeExternalGrainForceAndTorque.C:215
ComputeExternalGrainForceAndTorque::_force_torque_store
std::vector< Real > _force_torque_store
vector storing grain force and torque values
Definition: ComputeExternalGrainForceAndTorque.h:70
ComputeExternalGrainForceAndTorque::getForceEtaJacobians
virtual const std::vector< std::vector< Real > > & getForceEtaJacobians() const
Definition: ComputeExternalGrainForceAndTorque.C:220
ComputeExternalGrainForceAndTorque::_c_var
unsigned int _c_var
Definition: ComputeExternalGrainForceAndTorque.h:48
ComputeExternalGrainForceAndTorque::getTorqueValues
virtual const std::vector< RealGradient > & getTorqueValues() const
Definition: ComputeExternalGrainForceAndTorque.C:209
GrainForceAndTorqueInterface.h
validParams< ComputeExternalGrainForceAndTorque >
InputParameters validParams< ComputeExternalGrainForceAndTorque >()
Definition: ComputeExternalGrainForceAndTorque.C:19
ComputeExternalGrainForceAndTorque::_total_dofs
unsigned int _total_dofs
Definition: ComputeExternalGrainForceAndTorque.h:75
ComputeExternalGrainForceAndTorque::initialize
virtual void initialize()
Definition: ComputeExternalGrainForceAndTorque.C:56
ComputeExternalGrainForceAndTorque::_grain_tracker
const GrainTrackerInterface & _grain_tracker
provide UserObject for calculating grain volumes and centers
Definition: ComputeExternalGrainForceAndTorque.h:57
ComputeExternalGrainForceAndTorque::getForceValues
virtual const std::vector< RealGradient > & getForceValues() const
Definition: ComputeExternalGrainForceAndTorque.C:203
ComputeExternalGrainForceAndTorque::ComputeExternalGrainForceAndTorque
ComputeExternalGrainForceAndTorque(const InputParameters &parameters)
Definition: ComputeExternalGrainForceAndTorque.C:30
ComputeExternalGrainForceAndTorque::_vals_name
std::vector< VariableName > _vals_name
Definition: ComputeExternalGrainForceAndTorque.h:62
ComputeExternalGrainForceAndTorque::_dF_name
MaterialPropertyName _dF_name
material property that provides force density
Definition: ComputeExternalGrainForceAndTorque.h:50
ComputeExternalGrainForceAndTorque::_grain_num
unsigned int _grain_num
Definition: ComputeExternalGrainForceAndTorque.h:58
ComputeExternalGrainForceAndTorque
This class is here to get the force and torque acting on a grain.
Definition: ComputeExternalGrainForceAndTorque.h:26
ComputeExternalGrainForceAndTorque::_force_torque_eta_jacobian_store
std::vector< std::vector< Real > > _force_torque_eta_jacobian_store
Definition: ComputeExternalGrainForceAndTorque.h:73
ComputeExternalGrainForceAndTorque::_torque_values
std::vector< RealGradient > _torque_values
Definition: ComputeExternalGrainForceAndTorque.h:67
ComputeExternalGrainForceAndTorque::_op_num
const unsigned int _op_num
no. of order parameters
Definition: ComputeExternalGrainForceAndTorque.h:55
ComputeExternalGrainForceAndTorque::_force_torque_c_jacobian_store
std::vector< Real > _force_torque_c_jacobian_store
vector storing jacobian of grain force and torque values
Definition: ComputeExternalGrainForceAndTorque.h:72
ComputeExternalGrainForceAndTorque::finalize
virtual void finalize()
Definition: ComputeExternalGrainForceAndTorque.C:164
ComputeExternalGrainForceAndTorque::_dFdc
const MaterialProperty< std::vector< RealGradient > > & _dFdc
material property that provides jacobian of force density with respect to c
Definition: ComputeExternalGrainForceAndTorque.h:53
ComputeExternalGrainForceAndTorque::_vals_var
std::vector< unsigned int > _vals_var
Definition: ComputeExternalGrainForceAndTorque.h:61
ComputeExternalGrainForceAndTorque::_dFdeta
std::vector< const MaterialProperty< std::vector< RealGradient > > * > _dFdeta
Definition: ComputeExternalGrainForceAndTorque.h:63
ComputeExternalGrainForceAndTorque::threadJoin
virtual void threadJoin(const UserObject &y)
Definition: ComputeExternalGrainForceAndTorque.C:186
ComputeExternalGrainForceAndTorque::_force_values
std::vector< RealGradient > _force_values
providing grain forces, torques and their jacobians w. r. t c
Definition: ComputeExternalGrainForceAndTorque.h:66
ComputeExternalGrainForceAndTorque::_ncomp
unsigned int _ncomp
Definition: ComputeExternalGrainForceAndTorque.h:59
ComputeExternalGrainForceAndTorque::_dF
const MaterialProperty< std::vector< RealGradient > > & _dF
Definition: ComputeExternalGrainForceAndTorque.h:51
GrainForceAndTorqueInterface
This class provides interface for extracting the forces and torques computed in other UserObjects.
Definition: GrainForceAndTorqueInterface.h:24
ComputeExternalGrainForceAndTorque::_c_name
VariableName _c_name
Definition: ComputeExternalGrainForceAndTorque.h:47