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
16 
22 {
23 public:
25 
27 
28  virtual void initialize();
29  virtual void execute(){};
30  virtual void finalize(){};
31 
32  virtual const std::vector<RealGradient> & getForceValues() const;
33  virtual const std::vector<RealGradient> & getTorqueValues() const;
34  virtual const std::vector<Real> & getForceCJacobians() const;
35  virtual const std::vector<std::vector<Real>> & getForceEtaJacobians() const;
36 
37 protected:
39  std::vector<UserObjectName> _sum_objects;
41  unsigned int _num_forces;
42  unsigned int _grain_num;
43 
44  std::vector<const GrainForceAndTorqueInterface *> _sum_forces;
45 
47  std::vector<RealGradient> _force_values;
48  std::vector<RealGradient> _torque_values;
49  std::vector<Real> _c_jacobians;
50  std::vector<std::vector<Real>> _eta_jacobians;
52 };
virtual const std::vector< RealGradient > & getTorqueValues() const
std::vector< RealGradient > _force_values
providing grain forces, torques and their jacobians w. r. t c
std::vector< Real > _c_jacobians
virtual const std::vector< RealGradient > & getForceValues() const
std::vector< const GrainForceAndTorqueInterface * > _sum_forces
This class provides interface for extracting the forces and torques computed in other UserObjects...
GrainForceAndTorqueSum(const InputParameters &parameters)
This class is here to get the force and torque acting on a grain from different userobjects and sum t...
virtual const std::vector< Real > & getForceCJacobians() const
virtual const std::vector< std::vector< Real > > & getForceEtaJacobians() const
std::vector< UserObjectName > _sum_objects
Vector of userobjects providing forces and torques acting on grains.
std::vector< std::vector< Real > > _eta_jacobians
unsigned int _num_forces
Total no. of userobjects that provides forces and torques acting on grains.
const InputParameters & parameters() const
std::vector< RealGradient > _torque_values
static InputParameters validParams()