suanPan
LineUDL.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (C) 2017-2023 Theodore Chang
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  ******************************************************************************/
31 #ifndef LINEUDL_H
32 #define LINEUDL_H
33 
34 #include <Load/Load.h>
35 
36 class LineUDL : public Load {
37 protected:
38  const uword dimension;
39 
40 public:
41  LineUDL(
42  unsigned, // tag
43  unsigned, // start step tag
44  double, // magnitude
45  uvec&&, // node tags
46  unsigned, // dof tag
47  unsigned, // amplitude tag
48  uword // dimension
49  );
50 
51  int initialize(const shared_ptr<DomainBase>&) override;
52 };
53 
54 class LineUDL2D final : public LineUDL {
55 public:
56  LineUDL2D(
57  unsigned, // tag
58  unsigned, // start step tag
59  double, // magnitude
60  uvec&&, // node tags
61  unsigned, // dof tag
62  unsigned // amplitude tag
63  );
64 
65  int process(const shared_ptr<DomainBase>&) override;
66 };
67 
68 class LineUDL3D final : public LineUDL {
69 public:
70  LineUDL3D(
71  unsigned, // tag
72  unsigned, // start step tag
73  double, // magnitude
74  uvec&&, // node tags
75  unsigned, // dof tag
76  unsigned // amplitude tag
77  );
78 
79  int process(const shared_ptr<DomainBase>&) override;
80 };
81 
82 #endif
83 
Definition: LineUDL.h:54
LineUDL2D(unsigned, unsigned, double, uvec &&, unsigned, unsigned)
Definition: LineUDL.cpp:36
int process(const shared_ptr< DomainBase > &) override
This method provides all necessary pieces of typical constraints/loads required, including additional...
Definition: LineUDL.cpp:39
Definition: LineUDL.h:68
int process(const shared_ptr< DomainBase > &) override
This method provides all necessary pieces of typical constraints/loads required, including additional...
Definition: LineUDL.cpp:72
LineUDL3D(unsigned, unsigned, double, uvec &&, unsigned, unsigned)
Definition: LineUDL.cpp:69
A LineUDL class.
Definition: LineUDL.h:36
const uword dimension
Definition: LineUDL.h:38
LineUDL(unsigned, unsigned, double, uvec &&, unsigned, unsigned, uword)
Definition: LineUDL.cpp:24
int initialize(const shared_ptr< DomainBase > &) override
Definition: LineUDL.cpp:28
A Load class.
Definition: Load.h:37