Line data Source code
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 : // MOOSE includes 13 : #include "NodeElemConstraint.h" 14 : #include "ADNodeElemConstraint.h" 15 : 16 : template <bool is_ad> 17 : class GenericNodeElemConstraint : public NodeElemConstraint 18 : { 19 : public: 20 28768 : static InputParameters validParams() { return NodeElemConstraint::validParams(); }; 21 120 : GenericNodeElemConstraint(const InputParameters & parameters) : NodeElemConstraint(parameters) {} 22 : }; 23 : 24 : template <> 25 : class GenericNodeElemConstraint<true> : public ADNodeElemConstraint 26 : { 27 : public: 28 14429 : static InputParameters validParams() { return ADNodeElemConstraint::validParams(); }; 29 84 : GenericNodeElemConstraint(const InputParameters & parameters) : ADNodeElemConstraint(parameters) 30 : { 31 84 : } 32 : }; 33 : 34 : #define usingGenericNodeElemConstraint \ 35 : using GenericNodeElemConstraint<is_ad>::_mesh; \ 36 : using GenericNodeElemConstraint<is_ad>::_secondary; \ 37 : using GenericNodeElemConstraint<is_ad>::_primary; \ 38 : using GenericNodeElemConstraint<is_ad>::_secondary_to_primary_map; \ 39 : using GenericNodeElemConstraint<is_ad>::_current_node; \ 40 : using GenericNodeElemConstraint<is_ad>::_u_secondary; \ 41 : using GenericNodeElemConstraint<is_ad>::_u_primary; \ 42 : using GenericNodeElemConstraint<is_ad>::_j; \ 43 : using GenericNodeElemConstraint<is_ad>::_i; \ 44 : using GenericNodeElemConstraint<is_ad>::_jacobian; \ 45 : using GenericNodeElemConstraint<is_ad>::_phi_secondary; \ 46 : using GenericNodeElemConstraint<is_ad>::_phi_primary; \ 47 : using GenericNodeElemConstraint<is_ad>::_var; \ 48 : using GenericNodeElemConstraint<is_ad>::_qp; \ 49 : using GenericNodeElemConstraint<is_ad>::_subproblem; \ 50 : using GenericNodeElemConstraint<is_ad>::_test_primary; \ 51 : using GenericNodeElemConstraint<is_ad>::_test_secondary; \ 52 : using GenericNodeElemConstraint<is_ad>::_connected_dof_indices; \ 53 : using GenericNodeElemConstraint<is_ad>::_sys; \ 54 : using GenericNodeElemConstraint<is_ad>::_overwrite_secondary_residual