www.mooseframework.org
GrainForceAndTorqueSum.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 #include "GeneralUserObject.h"
14 
15 // Forward Declarations
17 
18 template <>
19 InputParameters validParams<GrainForceAndTorqueSum>();
20 
25 class GrainForceAndTorqueSum : public GrainForceAndTorqueInterface, public GeneralUserObject
26 {
27 public:
28  GrainForceAndTorqueSum(const InputParameters & parameters);
29 
30  virtual void initialize();
31  virtual void execute(){};
32  virtual void finalize(){};
33 
34  virtual const std::vector<RealGradient> & getForceValues() const;
35  virtual const std::vector<RealGradient> & getTorqueValues() const;
36  virtual const std::vector<Real> & getForceCJacobians() const;
37  virtual const std::vector<std::vector<Real>> & getForceEtaJacobians() const;
38 
39 protected:
41  std::vector<UserObjectName> _sum_objects;
43  unsigned int _num_forces;
44  unsigned int _grain_num;
45 
46  std::vector<const GrainForceAndTorqueInterface *> _sum_forces;
47 
49  std::vector<RealGradient> _force_values;
50  std::vector<RealGradient> _torque_values;
51  std::vector<Real> _c_jacobians;
52  std::vector<std::vector<Real>> _eta_jacobians;
54 };
55 
GrainForceAndTorqueSum::_sum_objects
std::vector< UserObjectName > _sum_objects
Vector of userobjects providing forces and torques acting on grains.
Definition: GrainForceAndTorqueSum.h:41
GrainForceAndTorqueSum::GrainForceAndTorqueSum
GrainForceAndTorqueSum(const InputParameters &parameters)
Definition: GrainForceAndTorqueSum.C:27
GrainForceAndTorqueInterface.h
GrainForceAndTorqueSum::initialize
virtual void initialize()
Definition: GrainForceAndTorqueSum.C:42
GrainForceAndTorqueSum::getForceCJacobians
virtual const std::vector< Real > & getForceCJacobians() const
Definition: GrainForceAndTorqueSum.C:88
GrainForceAndTorqueSum::finalize
virtual void finalize()
Definition: GrainForceAndTorqueSum.h:32
GrainForceAndTorqueSum::_grain_num
unsigned int _grain_num
Definition: GrainForceAndTorqueSum.h:44
GrainForceAndTorqueSum::_sum_forces
std::vector< const GrainForceAndTorqueInterface * > _sum_forces
Definition: GrainForceAndTorqueSum.h:46
GrainForceAndTorqueSum::getTorqueValues
virtual const std::vector< RealGradient > & getTorqueValues() const
Definition: GrainForceAndTorqueSum.C:82
GrainForceAndTorqueSum::_eta_jacobians
std::vector< std::vector< Real > > _eta_jacobians
Definition: GrainForceAndTorqueSum.h:52
GrainForceAndTorqueSum::_c_jacobians
std::vector< Real > _c_jacobians
Definition: GrainForceAndTorqueSum.h:51
validParams< GrainForceAndTorqueSum >
InputParameters validParams< GrainForceAndTorqueSum >()
Definition: GrainForceAndTorqueSum.C:16
GrainForceAndTorqueSum::getForceEtaJacobians
virtual const std::vector< std::vector< Real > > & getForceEtaJacobians() const
Definition: GrainForceAndTorqueSum.C:94
GrainForceAndTorqueSum::_num_forces
unsigned int _num_forces
Total no. of userobjects that provides forces and torques acting on grains.
Definition: GrainForceAndTorqueSum.h:43
GrainForceAndTorqueSum::execute
virtual void execute()
Definition: GrainForceAndTorqueSum.h:31
GrainForceAndTorqueSum::_force_values
std::vector< RealGradient > _force_values
providing grain forces, torques and their jacobians w. r. t c
Definition: GrainForceAndTorqueSum.h:49
GrainForceAndTorqueSum::_torque_values
std::vector< RealGradient > _torque_values
Definition: GrainForceAndTorqueSum.h:50
GrainForceAndTorqueInterface
This class provides interface for extracting the forces and torques computed in other UserObjects.
Definition: GrainForceAndTorqueInterface.h:24
GrainForceAndTorqueSum::getForceValues
virtual const std::vector< RealGradient > & getForceValues() const
Definition: GrainForceAndTorqueSum.C:76
GrainForceAndTorqueSum
This class is here to get the force and torque acting on a grain from different userobjects and sum t...
Definition: GrainForceAndTorqueSum.h:25