MDStressLab++
Loading...
Searching...
No Matches
Constant.cpp
Go to the documentation of this file.
1
/*
2
* Constant.cpp
3
*
4
* Created on: Jan 9, 2020
5
* Author: Nikhil
6
*/
7
8
#include "
Constant.h
"
9
#include "
typedef.h
"
10
11
Constant::Constant
(){}
12
13
Constant::~Constant
(){}
14
15
double
Constant::operator()
(
const
double
& t)
const
16
{
17
// Constant weighting function
18
if
(t < -1.0 - epsilon || t > 1.0 +
epsilon
)
19
{
20
return
0.0;
21
}
22
else
if
((t >= -1.0 -
epsilon
&& t <= -1.0 +
epsilon
) || (t <= 1.0 + epsilon && t >= 1.0 -
epsilon
))
23
{
24
return
0.5;
25
}
26
else
27
{
28
return
1.0;
29
}
30
31
}
32
double
Constant::integrate
(
const
Vector3d
& vec1_pull_seg,
const
Vector3d
& vec2_pull_seg)
const
33
{
34
double
result = 1.0;
35
Vector3d
vec_mid;
36
vec_mid = (vec1_pull_seg + vec2_pull_seg) / 2.0;
37
38
for
(
int
i = 0; i <= 2; i++)
39
{
40
if
(vec_mid(i) < -1.0 -
epsilon
|| vec_mid(i) > 1.0 +
epsilon
)
41
{
42
return
0.0;
43
}
44
else
if
((vec_mid(i) >= -1.0 -
epsilon
&& vec_mid(i) <= -1.0 +
epsilon
) || (vec_mid(i) <= 1.0 +
epsilon
&& vec_mid(i) >= 1.0 -
epsilon
))
45
{
46
result = result * 0.5;
47
}
48
else
49
{
50
result = result * 1.0;
51
}
52
}
53
54
return
result;
55
}
56
57
58
59
Constant.h
Constant::~Constant
virtual ~Constant()
Definition
Constant.cpp:13
Constant::Constant
Constant()
Definition
Constant.cpp:11
Constant::integrate
double integrate(const Vector3d &vec1_pull_seg, const Vector3d &vec2_pull_seg) const
Definition
Constant.cpp:32
Constant::operator()
double operator()(const double &t) const
Definition
Constant.cpp:15
typedef.h
Vector3d
Eigen::Matrix< double, 1, DIM, Eigen::RowMajor > Vector3d
Definition
typedef.h:60
epsilon
const double epsilon
Definition
typedef.h:73
src
Constant.cpp
Generated by
1.9.8