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 : #include "ElementAndTraceScalarHDGAssemblyHelper.h" 11 : #include "ElementAndTraceScalarHDGKernel.h" 12 : #include "TaggingInterface.h" 13 : 14 : InputParameters 15 6830 : ElementAndTraceScalarHDGKernel::validParams() 16 : { 17 6830 : return HDGKernel::validParams(); 18 : } 19 : 20 324 : ElementAndTraceScalarHDGKernel::ElementAndTraceScalarHDGKernel(const InputParameters & parameters) 21 324 : : HDGKernel(parameters), _cached_elem(nullptr) 22 : { 23 324 : } 24 : 25 : void 26 157130 : ElementAndTraceScalarHDGKernel::compute(ElementAndTraceScalarHDGAssemblyHelper & helper) 27 : { 28 157130 : helper.resizeResiduals(); 29 157130 : helper.scalarVolume(); 30 157130 : } 31 : 32 : void 33 549740 : ElementAndTraceScalarHDGKernel::computeOnSide(ElementAndTraceScalarHDGAssemblyHelper & helper) 34 : { 35 549740 : helper.resizeResiduals(); 36 549740 : helper.scalarFace(); 37 549740 : helper.lmFace(); 38 549740 : } 39 : 40 : void 41 107833 : ElementAndTraceScalarHDGKernel::computeResidual() 42 : { 43 107833 : auto & helper = hdgHelper(); 44 107833 : compute(helper); 45 323499 : for (const auto & residual_packet : helper.taggingData()) 46 215666 : addResiduals(_assembly, residual_packet); 47 107833 : } 48 : 49 : void 50 49297 : ElementAndTraceScalarHDGKernel::computeJacobian() 51 : { 52 49297 : auto & helper = hdgHelper(); 53 49297 : compute(helper); 54 147891 : for (const auto & residual_packet : helper.taggingData()) 55 98594 : addJacobian(_assembly, residual_packet); 56 49297 : } 57 : 58 : void 59 0 : ElementAndTraceScalarHDGKernel::computeResidualAndJacobian() 60 : { 61 0 : auto & helper = hdgHelper(); 62 0 : compute(helper); 63 0 : for (const auto & residual_packet : helper.taggingData()) 64 0 : addResidualsAndJacobian(_assembly, residual_packet); 65 0 : } 66 : 67 : void 68 377386 : ElementAndTraceScalarHDGKernel::computeResidualOnSide() 69 : { 70 377386 : auto & helper = hdgHelper(); 71 377386 : computeOnSide(helper); 72 1132158 : for (const auto & residual_packet : helper.taggingData()) 73 754772 : addResiduals(_assembly, residual_packet); 74 377386 : } 75 : 76 : void 77 172354 : ElementAndTraceScalarHDGKernel::computeJacobianOnSide() 78 : { 79 172354 : auto & helper = hdgHelper(); 80 172354 : computeOnSide(helper); 81 517062 : for (const auto & residual_packet : helper.taggingData()) 82 344708 : addJacobian(_assembly, residual_packet); 83 172354 : } 84 : 85 : void 86 0 : ElementAndTraceScalarHDGKernel::computeResidualAndJacobianOnSide() 87 : { 88 0 : auto & helper = hdgHelper(); 89 0 : computeOnSide(helper); 90 0 : for (const auto & residual_packet : helper.taggingData()) 91 0 : addResidualsAndJacobian(_assembly, residual_packet); 92 0 : } 93 : 94 : void 95 446 : ElementAndTraceScalarHDGKernel::jacobianSetup() 96 : { 97 446 : _cached_elem = nullptr; 98 446 : } 99 : 100 : void 101 99594 : ElementAndTraceScalarHDGKernel::computeOffDiagJacobian(const unsigned int) 102 : { 103 99594 : if (_cached_elem != _current_elem) 104 : { 105 49297 : computeJacobian(); 106 49297 : _cached_elem = _current_elem; 107 : } 108 99594 : } 109 : 110 : std::set<std::string> 111 308 : ElementAndTraceScalarHDGKernel::additionalROVariables() 112 : { 113 308 : return hdgHelper().additionalROVariables(); 114 : } 115 : 116 : const std::unordered_set<unsigned int> & 117 1437 : ElementAndTraceScalarHDGKernel::getMatPropDependencies() const 118 : { 119 1437 : return hdgHelper().getMatPropDependencies(); 120 : } 121 : 122 : bool 123 0 : ElementAndTraceScalarHDGKernel::getMaterialPropertyCalled() const 124 : { 125 0 : return hdgHelper().getMaterialPropertyCalled(); 126 : }