https://mooseframework.inl.gov
ADDistributedLoadShell.h
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 
10 #pragma once
11 
12 #include "GenericKernel.h"
13 #include "MooseTypes.h"
14 #include "MooseTypes.h"
15 #include "libmesh/quadrature_gauss.h"
16 
17 class Function;
18 
24 template <bool is_ad>
26 {
27 public:
29 
31 
32 protected:
33  virtual GenericReal<is_ad> computeQpResidual() override;
34 
36 
38  const unsigned int _ndisp;
40  unsigned int _component;
42  const Function * const _function;
43 
46 
48  std::vector<unsigned int> _disp_var;
49 
51  std::vector<const Node *> _nodes;
52 
59 
68 };
69 
71 {
72 public:
74 
75 protected:
76 };
77 
ADDistributedLoadShellTempl(const InputParameters &parameters)
RealVectorValue _normal
Normal vector to the shell plane calcualted from cross product of _v1 and _v2.
Moose::GenericType< Real, is_ad > GenericReal
const Function *const _function
distributed load value defined through function
RealVectorValue _v1
An auxiliary in-plane vector used to calculate the normal vector to the shell.
GenericReal< is_ad > computeFactor() const
unsigned int _component
displacement component to apply the pressure to the shell
RealVectorValue _v2
An auxiliary in-plane vector used to calculate the normal vector to the shell.
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
ADDistributedLoadShell applies a distributed load on the shell element in a given direction defined b...
const unsigned int _ndisp
Number of displacement variables.
ADDistributedLoadShellTempl< true > ADADDistributedLoadShell
std::vector< unsigned int > _disp_var
Variable numbers of coupled displacement variables.
virtual GenericReal< is_ad > computeQpResidual() override
const InputParameters & parameters() const
static InputParameters validParams()
const bool _project_load_to_normal
if this parameter is set true, the load will be applied normal to the shell plane ...