https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CosseratStressDivergenceTensors.C
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
11#include "Material.h"
12#include "RankFourTensor.h"
14#include "RankTwoTensor.h"
15#include "MooseMesh.h"
16
18
21{
23 params.addRequiredCoupledVar("Cosserat_rotations", "The 3 Cosserat rotation variables");
24 params.addClassDescription("Stress divergence tensor with the additional Jacobian terms for the "
25 "Cosserat rotation variables.");
26 return params;
27}
28
30 : StressDivergenceTensors(parameters),
31 _nrots(coupledComponents("Cosserat_rotations")),
32 _wc_var(_nrots)
33{
34 for (unsigned i = 0; i < _nrots; ++i)
35 _wc_var[i] = coupled("Cosserat_rotations", i);
36}
37
38Real
40{
41 for (unsigned int v = 0; v < _nrots; ++v)
42 if (jvar == _wc_var[v])
44 _Jacobian_mult[_qp], _component, v, _grad_test[_i][_qp], _phi[_j][_qp]);
45
47}
registerMooseObject("SolidMechanicsApp", CosseratStressDivergenceTensors)
const double v
Computes grad_i(stress_{i component}) This is exactly the same as StressDivergenceTensors,...
std::vector< unsigned int > _wc_var
The MOOSE variable numbers of the Cosserat rotation variables.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
const unsigned int _nrots
Number of Cosserat rotation variables supplied by user.
CosseratStressDivergenceTensors(const InputParameters &parameters)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
StressDivergenceTensors mostly copies from StressDivergence.
const unsigned int _component
An integer corresponding to the direction this kernel acts in.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const MaterialProperty< RankFourTensor > & _Jacobian_mult
static InputParameters validParams()
Real elasticJacobianWC(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, Real phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt w_k (the cosserat rotati...