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(unsigned, // tag
42  unsigned, // start step tag
43  double, // magnitude
44  uvec&&, // node tags
45  unsigned, // dof tag
46  unsigned, // amplitude tag
47  uword // dimension
48  );
49 
50  int initialize(const shared_ptr<DomainBase>&) override;
51 };
52 
53 class LineUDL2D final : public LineUDL {
54 public:
55  LineUDL2D(unsigned, // tag
56  unsigned, // start step tag
57  double, // magnitude
58  uvec&&, // node tags
59  unsigned, // dof tag
60  unsigned // amplitude tag
61  );
62 
63  int process(const shared_ptr<DomainBase>&) override;
64 };
65 
66 class LineUDL3D final : public LineUDL {
67 public:
68  LineUDL3D(unsigned, // tag
69  unsigned, // start step tag
70  double, // magnitude
71  uvec&&, // node tags
72  unsigned, // dof tag
73  unsigned // amplitude tag
74  );
75 
76  int process(const shared_ptr<DomainBase>&) override;
77 };
78 
79 #endif
80 
Definition: LineUDL.h:53
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:66
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