https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
15class Function;
16
21template <bool is_ad>
22using PenaltyInclinedNoDisplacementBCParent =
23 typename std::conditional<is_ad, ADIntegratedBC, IntegratedBC>::type;
24
25template <bool is_ad>
26class PenaltyInclinedNoDisplacementBCTempl : public PenaltyInclinedNoDisplacementBCParent<is_ad>
27{
28public:
30
31 PenaltyInclinedNoDisplacementBCTempl(const InputParameters & parameters);
32
33protected:
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
54class PenaltyInclinedNoDisplacementBC : public PenaltyInclinedNoDisplacementBCTempl<false>
55{
56public:
57 using PenaltyInclinedNoDisplacementBCTempl<false>::PenaltyInclinedNoDisplacementBCTempl;
58
59protected:
60 virtual Real computeQpJacobian() override;
61 virtual Real computeQpOffDiagJacobian(const unsigned int jvar_num) override;
62};
63
64typedef PenaltyInclinedNoDisplacementBCTempl<true> ADPenaltyInclinedNoDisplacementBC;
InputParameters validParams()
Moose::GenericType< Real, is_ad > GenericReal
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real