suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Loading...
Searching...
No Matches
LineUDL.h
Go to the documentation of this file.
1
/*******************************************************************************
2
* Copyright (C) 2017-2026 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.h
"
35
36
class
LineUDL
:
public
Load
{
37
protected
:
38
const
unsigned
dimension
;
39
40
virtual
vec
project
(vec&&)
const
= 0;
41
42
public
:
43
LineUDL
(
44
unsigned
,
// tag
45
double
,
// magnitude
46
uvec
&&,
// node tags
47
std::vector<Node::DOF>&&,
// dof tag
48
unsigned
,
// amplitude tag
49
unsigned
// dimension
50
);
51
52
int
initialize
(
const
shared_ptr<DomainBase>&)
override
;
53
54
int
process
(
const
shared_ptr<DomainBase>&)
override
;
55
};
56
57
class
LineUDL2D
final :
public
LineUDL
{
58
vec project(vec&&)
const override
;
59
60
public
:
61
LineUDL2D
(
62
unsigned
,
// tag
63
double
,
// magnitude
64
uvec
&&,
// node tags
65
std::vector<Node::DOF>&&,
// dof tag
66
unsigned
// amplitude tag
67
);
68
};
69
70
class
LineUDL3D
final :
public
LineUDL
{
71
vec project(vec&&)
const override
;
72
73
public
:
74
LineUDL3D
(
75
unsigned
,
// tag
76
double
,
// magnitude
77
uvec
&&,
// node tags
78
std::vector<Node::DOF>&&,
// dof tag
79
unsigned
// amplitude tag
80
);
81
};
82
83
#endif
84
Load.h
LineUDL2D
Definition
LineUDL.h:57
LineUDL3D
Definition
LineUDL.h:70
LineUDL
A LineUDL class.
Definition
LineUDL.h:36
LineUDL::project
virtual vec project(vec &&) const =0
LineUDL::dimension
const unsigned dimension
Definition
LineUDL.h:38
LineUDL::process
int process(const shared_ptr< DomainBase > &) override
Process and update both stiffness and resistance.
Definition
LineUDL.cpp:36
LineUDL::initialize
int initialize(const shared_ptr< DomainBase > &) override
Definition
LineUDL.cpp:26
Load
A Load class.
Definition
Load.h:37
uvec
Load
LineUDL.h
Generated by
1.9.8