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 : #include "ElementUserObjectBasePD.h" 13 : 14 : /** 15 : * UserObject base class to compute nodal quantities stored as AuxVariable at a material point based 16 : * on elemental information of bonds connected at the material point 17 : */ 18 : class NodalAuxVariableUserObjectBasePD : public ElementUserObjectBasePD 19 : { 20 : public: 21 : static InputParameters validParams(); 22 : 23 : NodalAuxVariableUserObjectBasePD(const InputParameters & parameters); 24 : 25 : virtual void initialize() override; 26 : virtual void execute() override; 27 12 : virtual void threadJoin(const UserObject & /*uo*/) override{}; 28 : virtual void finalize() override; 29 : 30 : protected: 31 : /** 32 : * Function to assemble elemental quantities to nodal AuxVariable at a material point 33 : * @param id The local index of element node (either 1 or 2 for Edge2 element) 34 : * @param dof The global DOF of element node 35 : * @return The computed value for the node 36 : */ 37 : virtual void computeValue(unsigned int id, dof_id_type dof) = 0; 38 : 39 : /// Pointer to the aux variable this userobject operates on 40 : MooseVariable * _var; 41 : };