Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
NonUniformOpen.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#ifndef model_NONUNIFORMOPEN_H_
9#define model_NONUNIFORMOPEN_H_
10
11#include <cmath>
12#include <assert.h>
13#include <Eigen/Dense>
14
15namespace model
16{
17
18 /**************************************************/
19 /* NonUniformOpen: general case */
20 /**************************************************/
24 template<short unsigned int dim, size_t qOrder>
26 {
28 {
29 assert(0 && "NonUniformOpen: dimensionality not implemented.");
30 }
31
32 };
33
34
35 /**************************************************/
36 /* UniformOpen: template specialization dim=1 */
37 /**************************************************/
42 template<size_t qOrder>
43 struct NonUniformOpen<1,qOrder>
44 {
45 static Eigen::Matrix<double,2,qOrder> abcsissasAndWeights()
46 {
47 Eigen::Matrix<double,2,qOrder> U;
48 for(size_t k=0;k<qOrder;++k)
49 {
50 // U(0,k)= 0.5/qOrder+k*1.0/qOrder; //1.0 forces double conversion
51 U(0,k)= 0.5*(cos((2.0*double (k)+1.0)*M_PI/2/qOrder)+1.0);
52 // std::cout<<"Absicca"<<U(0,k)<<std::endl;
53 U(1,k)= 1.0/qOrder;
54 }
55 return U;
56 }
57
58 };
59} // namespace model
60#endif
61
static Eigen::Matrix< double, 2, qOrder > abcsissasAndWeights()
int k