www.mooseframework.org
GrainForcesPostprocessor.C
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 
12 
14 
15 template <>
16 InputParameters
18 {
19  InputParameters params = validParams<GeneralVectorPostprocessor>();
20  params.addClassDescription("Outputs the values from GrainForcesPostprocessor");
21  params.addParam<UserObjectName>(
22  "grain_force", "Specify userobject that gives center of mass and volume of grains");
23  return params;
24 }
25 
26 GrainForcesPostprocessor::GrainForcesPostprocessor(const InputParameters & parameters)
27  : GeneralVectorPostprocessor(parameters),
28  _grain_force_torque_vector(declareVector("grain_force_torque_vector")),
29  _grain_force_torque(getUserObject<GrainForceAndTorqueInterface>("grain_force")),
30  _grain_forces(_grain_force_torque.getForceValues()),
31  _grain_torques(_grain_force_torque.getTorqueValues()),
32  _grain_num(0)
33 {
34 }
35 
36 void
38 {
39  _grain_num = _grain_forces.size();
40 
41  // for each grain a force and a torque vector with 3 components each are serialized into the
42  // output vector
43  _grain_force_torque_vector.resize(_grain_num * 2 * 3);
44 }
45 
46 void
48 {
49  for (unsigned int i = 0; i < _grain_num; ++i)
50  {
51  _grain_force_torque_vector[6 * i + 0] = _grain_forces[i](0);
52  _grain_force_torque_vector[6 * i + 1] = _grain_forces[i](1);
53  _grain_force_torque_vector[6 * i + 2] = _grain_forces[i](2);
54  _grain_force_torque_vector[6 * i + 3] = _grain_torques[i](0);
55  _grain_force_torque_vector[6 * i + 4] = _grain_torques[i](1);
56  _grain_force_torque_vector[6 * i + 5] = _grain_torques[i](2);
57  }
58 }
GrainForcesPostprocessor::execute
virtual void execute()
Definition: GrainForcesPostprocessor.C:47
GrainForceAndTorqueInterface.h
GrainForcesPostprocessor::_grain_force_torque_vector
VectorPostprocessorValue & _grain_force_torque_vector
The VectorPostprocessorValue object where the results are stored.
Definition: GrainForcesPostprocessor.h:36
GrainForcesPostprocessor::initialize
virtual void initialize()
Definition: GrainForcesPostprocessor.C:37
GrainForcesPostprocessor.h
validParams< GrainForcesPostprocessor >
InputParameters validParams< GrainForcesPostprocessor >()
Definition: GrainForcesPostprocessor.C:17
GrainForcesPostprocessor::_grain_num
unsigned int _grain_num
total no. of grains
Definition: GrainForcesPostprocessor.h:45
registerMooseObject
registerMooseObject("PhaseFieldApp", GrainForcesPostprocessor)
GrainForcesPostprocessor::GrainForcesPostprocessor
GrainForcesPostprocessor(const InputParameters &parameters)
Definition: GrainForcesPostprocessor.C:26
GrainForcesPostprocessor
GrainForcesPostprocessor is a type of VectorPostprocessor that outputs the force and torque values ca...
Definition: GrainForcesPostprocessor.h:25
GrainForcesPostprocessor::_grain_forces
const std::vector< RealGradient > & _grain_forces
Extracting forces from Userobject.
Definition: GrainForcesPostprocessor.h:41
GrainForcesPostprocessor::_grain_torques
const std::vector< RealGradient > & _grain_torques
Extracting torques from Userobject.
Definition: GrainForcesPostprocessor.h:43
GrainForceAndTorqueInterface
This class provides interface for extracting the forces and torques computed in other UserObjects.
Definition: GrainForceAndTorqueInterface.h:24