https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
21public:
23
25
26 virtual void timestepSetup();
27
28protected:
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
36
38 const std::vector<dof_id_type> & _var_dofs;
39
41 unsigned int _c_var;
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
81 RealGradient _velocity_advection;
84 std::vector<unsigned int> _grain_ids;
85};
std::vector< Real > VectorPostprocessorValue
This class provides interface for extracting the forces and torques computed in other UserObjects.
std::vector< unsigned int > _grain_ids
obtain the active grain ids
const std::vector< RealGradient > & _grain_forces
unsigned int _c_var
int label for the Concentration
const VariableGradient & _grad_c
Variable gradient for the concentration.
const std::vector< Real > & _grain_force_c_jacobians
const GrainTrackerInterface & _grain_tracker
grain tracker object
const std::string _base_name
base name specifying type of force density material
const Real _mt
constant value corresponding to grain translation
const std::vector< unsigned int > _vals_var
RealGradient _velocity_advection
storing the advection velocity and corresponding jacobian entries calculated in userobjects
const std::vector< const VariableValue * > _vals
Variable value for the order parameters.
virtual void precalculateOffDiagJacobian(unsigned int jvar)
const VectorPostprocessorValue & _grain_volumes
The grain volumes.
const std::vector< std::vector< Real > > & _grain_force_eta_jacobians
const unsigned int _op_num
no. of order parameters
const VariableValue & _c
Variable value for the concentration.
static InputParameters validParams()
const std::vector< const VariableGradient * > _grad_vals
const std::vector< dof_id_type > & _var_dofs
Variable's local dof indices.
virtual bool globalDoFEnabled(MooseVariableFEBase &, dof_id_type)
const std::vector< dof_id_type > & _c_dofs
local dof indices of variable c
const std::vector< RealGradient > & _grain_torques
const Real _mr
constant value corresponding to grain rotation
unsigned int _total_dofs
get the total no. of dofs in the system
const GrainForceAndTorqueInterface & _grain_force_torque
getting userobject for calculating grain forces and torques
This class defines the interface for the GrainTracking objects.
const InputParameters & parameters() const
VariableValueTempl< false > VariableValue
VariableGradientTempl< false > VariableGradient