Line data Source code
1 : /*************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* */ 4 : /* MASTODON */ 5 : /* */ 6 : /* (c) 2015 Battelle Energy Alliance, LLC */ 7 : /* ALL RIGHTS RESERVED */ 8 : /* */ 9 : /* Prepared by Battelle Energy Alliance, LLC */ 10 : /* With the U. S. Department of Energy */ 11 : /* */ 12 : /* See COPYRIGHT for full restrictions */ 13 : /*************************************************/ 14 : 15 : #ifndef STRESSDIVERGENCESPRING_H 16 : #define STRESSDIVERGENCESPRING_H 17 : 18 : #include "Kernel.h" 19 : 20 : // Forward Declarations 21 : template <typename> 22 : class RankTwoTensorTempl; 23 : typedef RankTwoTensorTempl<Real> RankTwoTensor; 24 : 25 : class StressDivergenceSpring : public Kernel 26 : { 27 : public: 28 : static InputParameters validParams(); 29 : StressDivergenceSpring(const InputParameters & parameters); 30 : virtual void computeResidual() override; 31 : virtual void computeJacobian() override; 32 : virtual void computeOffDiagJacobian(unsigned int jvar) override; 33 : 34 : protected: 35 0 : virtual Real computeQpResidual() override { return 0.0; } 36 : 37 : /// Direction along which force/moment is calculated 38 : const unsigned int _component; 39 : 40 : /// Number of coupled displacement variables 41 : unsigned int _ndisp; 42 : 43 : /// Variable numbers corresponding to displacement variables 44 : std::vector<unsigned int> _disp_var; 45 : 46 : /// Number of coupled rotational variables 47 : unsigned int _nrot; 48 : 49 : /// Variable numbers corresponding to rotational variables 50 : std::vector<unsigned int> _rot_var; 51 : 52 : /// Spring forces 53 : const MaterialProperty<ColumnMajorMatrix> & _spring_forces_global; 54 : 55 : /// Spring moments 56 : const MaterialProperty<ColumnMajorMatrix> & _spring_moments_global; 57 : 58 : /// Displacement stiffness matrix 59 : const MaterialProperty<ColumnMajorMatrix> & _kdd; 60 : 61 : /// Rotation stiffness matrix 62 : const MaterialProperty<ColumnMajorMatrix> & _krr; 63 : 64 : /// Rotation stiffness matrix 65 : const MaterialProperty<ColumnMajorMatrix> & _total_global_to_local_rotation; 66 : }; 67 : 68 : #endif // STRESSDIVERGENCESPRING_H