www.mooseframework.org
DisplacementAboutAxis.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "DirichletBCBase.h"
13 
14 // MOOSE includes
15 #include "ColumnMajorMatrix.h"
16 
17 // Forward Declarations
19 class Function;
20 
21 template <>
22 InputParameters validParams<DisplacementAboutAxis>();
23 void addDisplacementAboutAxisParams(InputParameters & params);
24 
29 class DisplacementAboutAxis : public DirichletBCBase
30 {
31 public:
32  static InputParameters validParams();
33 
34  DisplacementAboutAxis(const InputParameters & parameters);
35 
36 protected:
38  virtual Real computeQpValue();
39  virtual void initialSetup();
40 
43  ColumnMajorMatrix rotateAroundAxis(const ColumnMajorMatrix & p0, const Real angle);
44 
48 
52 
53  const int _component;
54  const Function & _func;
55  MooseEnum _angle_units;
56  const Point _axis_origin;
58 
59  ColumnMajorMatrix _transformation_matrix;
60  ColumnMajorMatrix _transformation_matrix_inv;
61 };
addDisplacementAboutAxisParams
void addDisplacementAboutAxisParams(InputParameters &params)
Definition: DisplacementAboutAxis.C:31
DisplacementAboutAxis::computeQpValue
virtual Real computeQpValue()
Evaluate the boundary condition at the current quadrature point and timestep.
Definition: DisplacementAboutAxis.C:67
DisplacementAboutAxis::initialSetup
virtual void initialSetup()
Definition: DisplacementAboutAxis.C:60
DisplacementAboutAxis::validParams
static InputParameters validParams()
Definition: DisplacementAboutAxis.C:18
DisplacementAboutAxis::_component
const int _component
Definition: DisplacementAboutAxis.h:53
validParams< DisplacementAboutAxis >
InputParameters validParams< DisplacementAboutAxis >()
DisplacementAboutAxis::_angle_units
MooseEnum _angle_units
Definition: DisplacementAboutAxis.h:55
DisplacementAboutAxis::_axis_origin
const Point _axis_origin
Definition: DisplacementAboutAxis.h:56
DisplacementAboutAxis::_axis_direction
Point _axis_direction
Definition: DisplacementAboutAxis.h:57
DisplacementAboutAxis::DisplacementAboutAxis
DisplacementAboutAxis(const InputParameters &parameters)
Definition: DisplacementAboutAxis.C:44
DisplacementAboutAxis
Implements a boundary condition that enforces rotational displacement around an axis on a boundary.
Definition: DisplacementAboutAxis.h:29
DisplacementAboutAxis::_transformation_matrix
ColumnMajorMatrix _transformation_matrix
Definition: DisplacementAboutAxis.h:59
DisplacementAboutAxis::_transformation_matrix_inv
ColumnMajorMatrix _transformation_matrix_inv
Definition: DisplacementAboutAxis.h:60
DisplacementAboutAxis::_func
const Function & _func
Definition: DisplacementAboutAxis.h:54
DisplacementAboutAxis::calculateTransformationMatrices
void calculateTransformationMatrices()
Calculate the rotation about the x and y axes based on the provided axis direction vector at the star...
Definition: DisplacementAboutAxis.C:120
DisplacementAboutAxis::rotateAroundAxis
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...
Definition: DisplacementAboutAxis.C:87
DisplacementAboutAxis::calculateUnitDirectionVector
void calculateUnitDirectionVector()
Check if the provided axis direction vector is a unit vector and normalizes the vector if necessary d...
Definition: DisplacementAboutAxis.C:113