https://mooseframework.inl.gov
GrainRigidBodyMotionBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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
17 
19 
20 {
21 public:
23 
25 
26  virtual void timestepSetup();
27 
28 protected:
29  virtual bool globalDoFEnabled(MooseVariableFEBase & /*var*/, dof_id_type /*dof_index*/);
30 
31  virtual void precalculateResidual();
32  virtual void precalculateJacobian();
33  virtual void precalculateOffDiagJacobian(unsigned int jvar);
34 
35  virtual void calculateAdvectionVelocity() {}
36 
38  const std::vector<dof_id_type> & _var_dofs;
39 
41  unsigned int _c_var;
43  const VariableValue & _c;
47  const std::vector<dof_id_type> & _c_dofs;
48 
50  const unsigned int _op_num;
52  const std::vector<const VariableValue *> _vals;
53  const std::vector<unsigned int> _vals_var;
54  const std::vector<const VariableGradient *> _grad_vals;
55 
57  const std::string _base_name;
58 
61  const std::vector<RealGradient> & _grain_forces;
62  const std::vector<RealGradient> & _grain_torques;
63  const std::vector<Real> & _grain_force_c_jacobians;
64  const std::vector<std::vector<Real>> & _grain_force_eta_jacobians;
65 
67  const Real _mt;
69  const Real _mr;
70 
73 
76 
78  unsigned int _total_dofs;
79 
84  std::vector<unsigned int> _grain_ids;
85 };
OutputTools< Real >::VariableGradient VariableGradient
virtual void precalculateOffDiagJacobian(unsigned int jvar)
const unsigned int _op_num
no. of order parameters
GrainRigidBodyMotionBase(const InputParameters &parameters)
This class defines the interface for the GrainTracking objects.
static InputParameters validParams()
This class provides interface for extracting the forces and torques computed in other UserObjects...
RealGradient _velocity_advection
storing the advection velocity and corresponding jacobian entries calculated in userobjects ...
const std::vector< dof_id_type > & _var_dofs
Variable&#39;s local dof indices.
const Real _mr
constant value corresponding to grain rotation
const VariableGradient & _grad_c
Variable gradient for the concentration.
const std::vector< const VariableValue * > _vals
Variable value for the order parameters.
const std::string _base_name
base name specifying type of force density material
std::vector< unsigned int > _grain_ids
obtain the active grain ids
const std::vector< unsigned int > _vals_var
const GrainForceAndTorqueInterface & _grain_force_torque
getting userobject for calculating grain forces and torques
const std::vector< std::vector< Real > > & _grain_force_eta_jacobians
const VectorPostprocessorValue & _grain_volumes
The grain volumes.
const std::vector< RealGradient > & _grain_torques
const std::vector< RealGradient > & _grain_forces
virtual bool globalDoFEnabled(MooseVariableFEBase &, dof_id_type)
unsigned int _total_dofs
get the total no. of dofs in the system
const VariableValue & _c
Variable value for the concentration.
const GrainTrackerInterface & _grain_tracker
grain tracker object
OutputTools< Real >::VariableValue VariableValue
std::vector< Real > VectorPostprocessorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< dof_id_type > & _c_dofs
local dof indices of variable c
const std::vector< const VariableGradient * > _grad_vals
unsigned int _c_var
int label for the Concentration
const InputParameters & parameters() const
const Real _mt
constant value corresponding to grain translation
uint8_t dof_id_type
const std::vector< Real > & _grain_force_c_jacobians