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 "GeometricalComponent.h"
11 : #include "ConstantFunction.h"
12 : #include "THMMesh.h"
13 :
14 : InputParameters
15 12230 : GeometricalComponent::validParams()
16 : {
17 12230 : InputParameters params = Component::validParams();
18 12230 : return params;
19 : }
20 :
21 6114 : GeometricalComponent::GeometricalComponent(const InputParameters & parameters)
22 6114 : : Component(parameters)
23 : {
24 6114 : }
25 :
26 : Elem *
27 50340 : GeometricalComponent::addElement(libMesh::ElemType elem_type,
28 : const std::vector<dof_id_type> & node_ids)
29 : {
30 50340 : auto elem = mesh().addElement(elem_type, node_ids);
31 50340 : _elem_ids.push_back(elem->id());
32 50340 : return elem;
33 : }
34 :
35 : Elem *
36 113073 : GeometricalComponent::addElementEdge2(dof_id_type node0, dof_id_type node1)
37 : {
38 113073 : auto elem = mesh().addElementEdge2(node0, node1);
39 113073 : _elem_ids.push_back(elem->id());
40 113073 : return elem;
41 : }
42 :
43 : Elem *
44 0 : GeometricalComponent::addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
45 : {
46 0 : auto elem = mesh().addElementEdge3(node0, node1, node2);
47 0 : _elem_ids.push_back(elem->id());
48 0 : return elem;
49 : }
50 :
51 : Elem *
52 215582 : GeometricalComponent::addElementQuad4(dof_id_type node0,
53 : dof_id_type node1,
54 : dof_id_type node2,
55 : dof_id_type node3)
56 : {
57 215582 : auto elem = mesh().addElementQuad4(node0, node1, node2, node3);
58 215582 : _elem_ids.push_back(elem->id());
59 215582 : return elem;
60 : }
61 :
62 : Elem *
63 38 : GeometricalComponent::addElementQuad9(dof_id_type node0,
64 : dof_id_type node1,
65 : dof_id_type node2,
66 : dof_id_type node3,
67 : dof_id_type node4,
68 : dof_id_type node5,
69 : dof_id_type node6,
70 : dof_id_type node7,
71 : dof_id_type node8)
72 : {
73 38 : auto elem = mesh().addElementQuad9(node0, node1, node2, node3, node4, node5, node6, node7, node8);
74 38 : _elem_ids.push_back(elem->id());
75 38 : return elem;
76 : }
77 :
78 : const FunctionName &
79 0 : GeometricalComponent::getVariableFn(const FunctionName & fn_param_name)
80 : {
81 0 : const FunctionName & fn_name = getParam<FunctionName>(fn_param_name);
82 0 : const Function & fn = getTHMProblem().getFunction(fn_name);
83 :
84 0 : if (dynamic_cast<const ConstantFunction *>(&fn) != nullptr)
85 : {
86 0 : connectObject(fn.parameters(), fn_name, fn_param_name, "value");
87 : }
88 :
89 0 : return fn_name;
90 : }
|