MDStressLab++
Loading...
Searching...
No Matches
MethodLdad.h
Go to the documentation of this file.
1/*
2 * MethodLdad.h
3 *
4 * Created on: Nov 5, 2019
5 * Modified on: Aug 27, 2022
6 * Author: Nikhil
7 */
8
9#ifndef METHODLDADBASE_H_
10#define METHODLDADBASE_H_
11
12#include "Method.h"
13#include "typedef.h"
14#include "Trigonometric.h"
15#include "Constant.h"
16#include <map>
17
18template<typename T>
19class MethodLdad : public Method<MethodLdad<T>>
20{
21 friend class Method<MethodLdad<T>>;
22public:
23 MethodLdad(const Matrix3d& ldadVectors);
25 virtual ~MethodLdad();
26
27protected:
28 double operator()(const Vector3d& vec) const;
29 double bondFunction(const Vector3d& vec1, const Vector3d& vec2) const;
30
31private:
32 double normalizer;
33 T oneDFunction;
34 Matrix3d ldadVectors, inverseLdadVectors;
35};
36
78#include "MethodLdad.cpp"
79// instantiate MethodLdad templates
80//
81template class MethodLdad<Constant>;
82template class MethodLdad<Trigonometric>;
85
86#endif /* METHODLDADBASE_H_ */
MethodLdad< Constant > MethodLdadConstant
Definition MethodLdad.h:83
MethodLdad< Trigonometric > MethodLdadTrigonometric
Definition MethodLdad.h:84
virtual ~MethodLdad()
MethodLdad(const MethodLdad &)
double operator()(const Vector3d &vec) const
double bondFunction(const Vector3d &vec1, const Vector3d &vec2) const
Eigen::Matrix< double, DIM, DIM, Eigen::RowMajor > Matrix3d
Definition typedef.h:56
Eigen::Matrix< double, 1, DIM, Eigen::RowMajor > Vector3d
Definition typedef.h:60