www.mooseframework.org
GrainRigidBodyMotionBase.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 "NonlocalKernel.h"
14 
15 // Forward Declarations
18 
19 template <>
21 
22 class GrainRigidBodyMotionBase : public NonlocalKernel
23 
24 {
25 public:
26  GrainRigidBodyMotionBase(const InputParameters & parameters);
27 
28  virtual void timestepSetup();
29 
30 protected:
31  virtual bool globalDoFEnabled(MooseVariableFEBase & /*var*/, dof_id_type /*dof_index*/);
32 
33  virtual void precalculateResidual();
34  virtual void precalculateJacobian();
35  virtual void precalculateOffDiagJacobian(unsigned int jvar);
36 
37  virtual void calculateAdvectionVelocity() {}
38 
40  const std::vector<dof_id_type> & _var_dofs;
41 
43  unsigned int _c_var;
45  const VariableValue & _c;
47  const VariableGradient & _grad_c;
49  const std::vector<dof_id_type> & _c_dofs;
50 
52  const unsigned int _op_num;
54  std::vector<const VariableValue *> _vals;
55  std::vector<unsigned int> _vals_var;
56  std::vector<const VariableGradient *> _grad_vals;
57 
59  const std::string _base_name;
60 
63  const std::vector<RealGradient> & _grain_forces;
64  const std::vector<RealGradient> & _grain_torques;
65  const std::vector<Real> & _grain_force_c_jacobians;
66  const std::vector<std::vector<Real>> & _grain_force_eta_jacobians;
67 
69  const Real _mt;
71  const Real _mr;
72 
75 
77  const VectorPostprocessorValue & _grain_volumes;
78 
80  unsigned int _total_dofs;
81 
86  std::vector<unsigned int> _grain_ids;
87 };
88 
GrainTrackerInterface
This class defines the interface for the GrainTracking objects.
Definition: GrainTrackerInterface.h:24
GrainRigidBodyMotionBase::timestepSetup
virtual void timestepSetup()
Definition: GrainRigidBodyMotionBase.C:72
GrainRigidBodyMotionBase::precalculateResidual
virtual void precalculateResidual()
Definition: GrainRigidBodyMotionBase.C:88
GrainRigidBodyMotionBase::_var_dofs
const std::vector< dof_id_type > & _var_dofs
Variable's local dof indices.
Definition: GrainRigidBodyMotionBase.h:40
GrainRigidBodyMotionBase::_grad_c
const VariableGradient & _grad_c
Variable gradient for the concentration.
Definition: GrainRigidBodyMotionBase.h:47
GrainRigidBodyMotionBase::precalculateJacobian
virtual void precalculateJacobian()
Definition: GrainRigidBodyMotionBase.C:94
GrainRigidBodyMotionBase::_grad_vals
std::vector< const VariableGradient * > _grad_vals
Definition: GrainRigidBodyMotionBase.h:56
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
GrainRigidBodyMotionBase::_op_num
const unsigned int _op_num
no. of order parameters
Definition: GrainRigidBodyMotionBase.h:52
GrainForceAndTorqueInterface.h
GrainRigidBodyMotionBase::_base_name
const std::string _base_name
base name specifying type of force density material
Definition: GrainRigidBodyMotionBase.h:59
GrainRigidBodyMotionBase::GrainRigidBodyMotionBase
GrainRigidBodyMotionBase(const InputParameters &parameters)
Definition: GrainRigidBodyMotionBase.C:40
GrainRigidBodyMotionBase::_grain_force_torque
const GrainForceAndTorqueInterface & _grain_force_torque
getting userobject for calculating grain forces and torques
Definition: GrainRigidBodyMotionBase.h:62
GrainRigidBodyMotionBase::_grain_force_eta_jacobians
const std::vector< std::vector< Real > > & _grain_force_eta_jacobians
Definition: GrainRigidBodyMotionBase.h:66
GrainRigidBodyMotionBase::_velocity_advection
RealGradient _velocity_advection
storing the advection velocity and corresponding jacobian entries calculated in userobjects
Definition: GrainRigidBodyMotionBase.h:83
GrainRigidBodyMotionBase::calculateAdvectionVelocity
virtual void calculateAdvectionVelocity()
Definition: GrainRigidBodyMotionBase.h:37
GrainRigidBodyMotionBase::_grain_volumes
const VectorPostprocessorValue & _grain_volumes
The grain volumes.
Definition: GrainRigidBodyMotionBase.h:77
GrainRigidBodyMotionBase::_grain_ids
std::vector< unsigned int > _grain_ids
obtain the active grain ids
Definition: GrainRigidBodyMotionBase.h:86
GrainRigidBodyMotionBase::_mr
const Real _mr
constant value corresponding to grain rotation
Definition: GrainRigidBodyMotionBase.h:71
GrainRigidBodyMotionBase::_vals_var
std::vector< unsigned int > _vals_var
Definition: GrainRigidBodyMotionBase.h:55
GrainRigidBodyMotionBase::_total_dofs
unsigned int _total_dofs
get the total no. of dofs in the system
Definition: GrainRigidBodyMotionBase.h:80
GrainRigidBodyMotionBase::_c
const VariableValue & _c
Variable value for the concentration.
Definition: GrainRigidBodyMotionBase.h:45
validParams< GrainRigidBodyMotionBase >
InputParameters validParams< GrainRigidBodyMotionBase >()
Definition: GrainRigidBodyMotionBase.C:18
GrainRigidBodyMotionBase::_vals
std::vector< const VariableValue * > _vals
Variable value for the order parameters.
Definition: GrainRigidBodyMotionBase.h:54
GrainRigidBodyMotionBase::_mt
const Real _mt
constant value corresponding to grain translation
Definition: GrainRigidBodyMotionBase.h:69
GrainRigidBodyMotionBase::_grain_torques
const std::vector< RealGradient > & _grain_torques
Definition: GrainRigidBodyMotionBase.h:64
GrainRigidBodyMotionBase::_grain_forces
const std::vector< RealGradient > & _grain_forces
Definition: GrainRigidBodyMotionBase.h:63
GrainRigidBodyMotionBase::_grain_tracker
const GrainTrackerInterface & _grain_tracker
grain tracker object
Definition: GrainRigidBodyMotionBase.h:74
GrainRigidBodyMotionBase::_grain_force_c_jacobians
const std::vector< Real > & _grain_force_c_jacobians
Definition: GrainRigidBodyMotionBase.h:65
GrainRigidBodyMotionBase::precalculateOffDiagJacobian
virtual void precalculateOffDiagJacobian(unsigned int jvar)
Definition: GrainRigidBodyMotionBase.C:100
GrainRigidBodyMotionBase::_velocity_advection_jacobian
RealGradient _velocity_advection_jacobian
Definition: GrainRigidBodyMotionBase.h:84
GrainRigidBodyMotionBase::_c_dofs
const std::vector< dof_id_type > & _c_dofs
local dof indices of variable c
Definition: GrainRigidBodyMotionBase.h:49
GrainRigidBodyMotionBase::globalDoFEnabled
virtual bool globalDoFEnabled(MooseVariableFEBase &, dof_id_type)
Definition: GrainRigidBodyMotionBase.C:78
GrainRigidBodyMotionBase
Definition: GrainRigidBodyMotionBase.h:22
GrainForceAndTorqueInterface
This class provides interface for extracting the forces and torques computed in other UserObjects.
Definition: GrainForceAndTorqueInterface.h:24
GrainRigidBodyMotionBase::_c_var
unsigned int _c_var
int label for the Concentration
Definition: GrainRigidBodyMotionBase.h:43