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
37template<typename T>
38class MethodLdad : public Method<MethodLdad<T>>
39{
40 friend class Method<MethodLdad<T>>;
41public:
42 MethodLdad(const Matrix3d& ldadVectors);
44 virtual ~MethodLdad();
45
46protected:
47 double operator()(const Vector3d& vec) const;
48 double bondFunction(const Vector3d& vec1, const Vector3d& vec2) const;
49
50private:
51 double normalizer, weightNormalizer;
52 T oneDFunction;
53 Matrix3d ldadVectors, inverseLdadVectors;
54};
55
97#include "MethodLdad.cpp"
98// instantiate MethodLdad templates
99//
100template class MethodLdad<Constant>;
101template class MethodLdad<Trigonometric>;
104
105#endif /* METHODLDADBASE_H_ */
MethodLdad< Constant > MethodLdadConstant
Definition MethodLdad.h:102
MethodLdad< Trigonometric > MethodLdadTrigonometric
Definition MethodLdad.h:103
Lattice-dependent averaging-domain method.
Definition MethodLdad.h:39
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