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 "Component.h" 13 : #include "libmesh/enum_elem_type.h" 14 : 15 : /** 16 : * Intermediate class for components that have mesh 17 : */ 18 0 : class GeometricalComponent : public Component 19 : { 20 : public: 21 : GeometricalComponent(const InputParameters & parameters); 22 : 23 : protected: 24 : Elem * addElement(libMesh::ElemType elem_type, const std::vector<dof_id_type> & node_ids); 25 : Elem * addElementEdge2(dof_id_type node0, dof_id_type node1); 26 : Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2); 27 : Elem * 28 : addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3); 29 : Elem * addElementQuad9(dof_id_type node0, 30 : dof_id_type node1, 31 : dof_id_type node2, 32 : dof_id_type node3, 33 : dof_id_type node4, 34 : dof_id_type node5, 35 : dof_id_type node6, 36 : dof_id_type node7, 37 : dof_id_type node8); 38 : 39 : /** 40 : * Makes a constant function parameter controllable and returns its name 41 : * 42 : * @param[in] fn_param_name FunctionName parameter 43 : */ 44 : const FunctionName & getVariableFn(const FunctionName & fn_param_name); 45 : 46 : public: 47 : static InputParameters validParams(); 48 : };