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
18 class Function;
19 
21 
27 {
28 public:
30 
32 
33 protected:
35  virtual Real computeQpValue();
36  virtual void initialSetup();
37 
41 
45 
49 
50  const int _component;
51  const Function & _func;
53  const Point _axis_origin;
55 
57  const unsigned int _ndisp;
58 
60  std::vector<const VariableValue *> _disp_old;
61 
63  const bool _angular_velocity;
64 
67 };
const unsigned int _ndisp
number of displacement components
virtual Real computeQpValue()
Evaluate the boundary condition at the current quadrature point and timestep.
const bool _angular_velocity
flag for incremental formulation
DisplacementAboutAxis(const InputParameters &parameters)
ColumnMajorMatrix _transformation_matrix
std::vector< const VariableValue * > _disp_old
the old displacement value
void calculateTransformationMatrices()
Calculate the rotation about the x and y axes based on the provided axis direction vector at the star...
static InputParameters validParams()
void calculateUnitDirectionVector()
Check if the provided axis direction vector is a unit vector and normalizes the vector if necessary d...
ColumnMajorMatrix _transformation_matrix_inv
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Implements a boundary condition that enforces rotational displacement around an axis on a boundary...
void addDisplacementAboutAxisParams(InputParameters &params)
const InputParameters & parameters() const
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...