https://mooseframework.inl.gov
PenaltyInclinedNoDisplacementBC.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 "ADIntegratedBC.h"
13 #include "IntegratedBC.h"
14 
15 class Function;
16 
21 template <bool is_ad>
22 using PenaltyInclinedNoDisplacementBCParent =
23  typename std::conditional<is_ad, ADIntegratedBC, IntegratedBC>::type;
24 
25 template <bool is_ad>
26 class PenaltyInclinedNoDisplacementBCTempl : public PenaltyInclinedNoDisplacementBCParent<is_ad>
27 {
28 public:
30 
31  PenaltyInclinedNoDisplacementBCTempl(const InputParameters & parameters);
32 
33 protected:
34  virtual GenericReal<is_ad> computeQpResidual() override;
35 
36  // An integer corresponding to the direction
37  const unsigned int _component;
38 
40  const unsigned int _ndisp;
41  const std::vector<const GenericVariableValue<is_ad> *> _disp;
42 
44  const std::vector<unsigned int> _disp_var;
45 
46  Real _penalty;
47 
48  using PenaltyInclinedNoDisplacementBCParent<is_ad>::_i;
49  using PenaltyInclinedNoDisplacementBCParent<is_ad>::_normals;
50  using PenaltyInclinedNoDisplacementBCParent<is_ad>::_qp;
51  using PenaltyInclinedNoDisplacementBCParent<is_ad>::_test;
52 };
53 
54 class PenaltyInclinedNoDisplacementBC : public PenaltyInclinedNoDisplacementBCTempl<false>
55 {
56 public:
57  using PenaltyInclinedNoDisplacementBCTempl<false>::PenaltyInclinedNoDisplacementBCTempl;
58 
59 protected:
60  virtual Real computeQpJacobian() override;
61  virtual Real computeQpOffDiagJacobian(const unsigned int jvar_num) override;
62 };
63 
64 typedef PenaltyInclinedNoDisplacementBCTempl<true> ADPenaltyInclinedNoDisplacementBC;
Moose::GenericType< Real, is_ad > GenericReal
InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real