From cfba6d50596d57fdd43ba990d2e92183ceeadf03 Mon Sep 17 00:00:00 2001 From: Van Dung Nguyen <vandung.nguyen@ulg.ac.be> Date: Wed, 27 Jun 2012 15:27:44 +0000 Subject: [PATCH] add tensor63 and tensor53 --- Solver/CMakeLists.txt | 2 ++ Solver/STensor53.cpp | 26 ++++++++++++++++++++ Solver/STensor53.h | 52 ++++++++++++++++++++++++++++++++++++++++ Solver/STensor63.cpp | 26 ++++++++++++++++++++ Solver/STensor63.h | 55 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 Solver/STensor53.cpp create mode 100644 Solver/STensor53.h create mode 100644 Solver/STensor63.cpp create mode 100644 Solver/STensor63.h diff --git a/Solver/CMakeLists.txt b/Solver/CMakeLists.txt index 68984e899e..99d5a8f867 100644 --- a/Solver/CMakeLists.txt +++ b/Solver/CMakeLists.txt @@ -19,6 +19,8 @@ functionSpace.cpp sparsityPattern.cpp STensor43.cpp STensor33.cpp + STensor53.cpp + STensor63.cpp terms.cpp ) diff --git a/Solver/STensor53.cpp b/Solver/STensor53.cpp new file mode 100644 index 0000000000..57b5a8a6cc --- /dev/null +++ b/Solver/STensor53.cpp @@ -0,0 +1,26 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. + +#include "STensor53.h" + +STensor53::STensor53(const double val){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + _val[i][j][k][l][m] = val; +}; + + +STensor53::STensor53(const STensor53& src){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + _val[i][j][k][l][m] = src._val[i][j][k][l][m]; +}; + diff --git a/Solver/STensor53.h b/Solver/STensor53.h new file mode 100644 index 0000000000..9e6d50c09b --- /dev/null +++ b/Solver/STensor53.h @@ -0,0 +1,52 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. +#ifndef STENSOR53_H_ +#define STENSOR53_H_ + +class STensor53 { + protected: + double _val[3][3][3][3][3]; + + public: + STensor53(const double val = 0); + STensor53(const STensor53& src); + inline double &operator()(int i, int j,int k, int l, int m){ + return _val[i][j][k][l][m]; + }; + inline double operator()(int i, int j, int k, int l, int m) const{ + return _val[i][j][k][l][m]; + }; + STensor53& operator += (const STensor53 &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + _val[i][j][k][l][m] += other._val[i][j][k][l][m]; + return *this; + }; + STensor53& operator -= (const STensor53 &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + _val[i][j][k][l][m] -= other._val[i][j][k][l][m]; + return *this; + }; + STensor53& operator *= (const double &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + _val[i][j][k][l][m] *= other; + return *this; + }; +}; + + + +#endif // STENSOR53_H_ diff --git a/Solver/STensor63.cpp b/Solver/STensor63.cpp new file mode 100644 index 0000000000..c9b1a14da6 --- /dev/null +++ b/Solver/STensor63.cpp @@ -0,0 +1,26 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. + +#include "STensor63.h" + +STensor63::STensor63(const double val){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + for (int n=0; n<3; n++) + _val[i][j][k][l][m][n] = val; +}; + +STensor63::STensor63(const STensor63& src){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + for (int n=0; n<3; n++) + _val[i][j][k][l][m][n] = src._val[i][j][k][l][m][n]; +}; diff --git a/Solver/STensor63.h b/Solver/STensor63.h new file mode 100644 index 0000000000..e64c838bce --- /dev/null +++ b/Solver/STensor63.h @@ -0,0 +1,55 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. +#ifndef STENSOR63_H_ +#define STENSOR63_H_ + +class STensor63{ + protected: + double _val[3][3][3][3][3][3]; + + public: + STensor63(const double val = 0); + STensor63(const STensor63& src); + inline double &operator()(int i, int j,int k, int l, int m, int n){ + return _val[i][j][k][l][m][n]; + }; + inline double operator()(int i, int j, int k, int l, int m, int n) const{ + return _val[i][j][k][l][m][n]; + }; + STensor63& operator += (const STensor63 &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + for (int n=0; n<3; n++) + _val[i][j][k][l][m][n] += other._val[i][j][k][l][m][n]; + return *this; + }; + STensor63& operator -= (const STensor63 &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + for (int n=0; n<3; n++) + _val[i][j][k][l][m][n] -= other._val[i][j][k][l][m][n]; + return *this; + }; + STensor63& operator *= (const double &other){ + for (int i=0; i<3; i++) + for (int j=0; j<3; j++) + for (int k=0; k<3; k++) + for (int l=0; l<3; l++) + for (int m=0; m<3; m++) + for (int n=0; n<3; n++) + _val[i][j][k][l][m][n] *= other; + return *this; + }; +}; + + + +#endif // STENSOR63_H_ -- GitLab