www.mooseframework.org
DisplacementAboutAxis.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #ifndef DISPLACEMENTABOUTAXIS_H
9 #define DISPLACEMENTABOUTAXIS_H
10 
11 #include "PresetNodalBC.h"
12 
13 // MOOSE includes
14 #include "ColumnMajorMatrix.h"
15 
16 // Forward Declarations
18 class Function;
19 
20 template <>
21 InputParameters validParams<DisplacementAboutAxis>();
22 void addDisplacementAboutAxisParams(InputParameters & params);
23 
28 class DisplacementAboutAxis : public PresetNodalBC
29 {
30 public:
31  DisplacementAboutAxis(const InputParameters & parameters);
32 
33 protected:
35  virtual Real computeQpValue();
36  virtual void initialSetup();
37 
40  ColumnMajorMatrix rotateAroundAxis(const ColumnMajorMatrix & p0, const Real angle);
41 
45 
49 
50  const int _component;
51  Function & _func;
52  MooseEnum _angle_units;
53  const Point _axis_origin;
55 
56  ColumnMajorMatrix _transformation_matrix;
57  ColumnMajorMatrix _transformation_matrix_inv;
58 };
59 
60 #endif // DISPLACEMENTABOUTAXIS_H
virtual Real computeQpValue()
Evaluate the boundary condition at the current quadrature point and timestep.
DisplacementAboutAxis(const InputParameters &parameters)
ColumnMajorMatrix _transformation_matrix
void calculateTransformationMatrices()
Calculate the rotation about the x and y axes based on the provided axis direction vector at the star...
void calculateUnitDirectionVector()
Check if the provided axis direction vector is a unit vector and normalizes the vector if necessary d...
ColumnMajorMatrix _transformation_matrix_inv
Implements a boundary condition that enforces rotational displacement around an axis on a boundary...
void addDisplacementAboutAxisParams(InputParameters &params)
ColumnMajorMatrix rotateAroundAxis(const ColumnMajorMatrix &p0, const Real angle)
Calculate the tranformation matrix to rotate in x, y, and z depends on the prescribed BC angle and th...
InputParameters validParams< DisplacementAboutAxis >()