Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
QuadPowDynamic.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8
9#ifndef model_QUADPOWDYNAMIC_H_
10#define model_QUADPOWDYNAMIC_H_
11
12#include <assert.h>
13#include <math.h>
14#include <float.h>
15#include <Eigen/Dense>
16#include <QuadPow.h>
17#include <QuadratureDynamic.h>
18
19
20
21namespace model
22{
23 /**************************************************************************/
24 template<
25 short unsigned int pOrder,
26 template <short unsigned int, size_t> class QuadratureRule,
27 size_t...Orders>
29
30 /**************************************************************************/
31 template<short unsigned int pOrder,
32 template <short unsigned int, size_t> class QuadratureRule,
33 size_t qOrder,
34 size_t... otherOrders>
35 struct QuadPowDynamic<pOrder,QuadratureRule,qOrder,otherOrders...> : public QuadPowDynamic<pOrder,QuadratureRule,otherOrders...>
36 {
37 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder+1>& uPow(const int& N)
38 {
40 }
41
42 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder>& duPow(const int& N)
43 {
45 }
46
47 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder-1>& dduPow(const int& N)
48 {
50 }
51
56
57 static int lowerOrder(const double& d)
58 {
60 }
61 };
62
63 /**************************************************************************/
64 template<short unsigned int pOrder,
65 template <short unsigned int, size_t> class QuadratureRule,
66 size_t qOrder>
67 struct QuadPowDynamic<pOrder,QuadratureRule,qOrder>
68 {
69 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder+1>& uPow(const int& N)
70 {
71 if(N!=qOrder)
72 {
73 throw std::runtime_error("quadrature order N not found in QuadPowDynamic");
74 }
76 }
77
78 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder>& duPow(const int& N)
79 {
80 if(N!=qOrder)
81 {
82 throw std::runtime_error("quadrature order N not found in QuadPowDynamic");
83 }
85 }
86
87 static const Eigen::Matrix<double,Eigen::Dynamic,pOrder-1>& dduPow(const int& N)
88 {
89 if(N!=qOrder)
90 {
91 throw std::runtime_error("quadrature order N not found in QuadPowDynamic");
92 }
94 }
95 };
96
97
98} // namespace model
99#endif
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder > duPow
Definition QuadPow.h:105
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder-1 > dduPow
Definition QuadPow.h:106
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder+1 > uPow
Definition QuadPow.h:104
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder+1 > & uPow(const int &N)
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder-1 > & dduPow(const int &N)
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder > & duPow(const int &N)
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder > & duPow(const int &N)
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder-1 > & dduPow(const int &N)
static const Eigen::Matrix< double, Eigen::Dynamic, pOrder+1 > & uPow(const int &N)
int k