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
12
14
15double 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}
32double 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
virtual ~Constant()
Definition Constant.cpp:13
double integrate(const Vector3d &vec1_pull_seg, const Vector3d &vec2_pull_seg) const
Definition Constant.cpp:32
double operator()(const double &t) const
Definition Constant.cpp:15
Eigen::Matrix< double, 1, DIM, Eigen::RowMajor > Vector3d
Definition typedef.h:60
const double epsilon
Definition typedef.h:73