Skip to content
Snippets Groups Projects
Commit cfba6d50 authored by Van Dung Nguyen's avatar Van Dung Nguyen
Browse files

add tensor63 and tensor53

parent d0dc8ac1
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,8 @@ functionSpace.cpp ...@@ -19,6 +19,8 @@ functionSpace.cpp
sparsityPattern.cpp sparsityPattern.cpp
STensor43.cpp STensor43.cpp
STensor33.cpp STensor33.cpp
STensor53.cpp
STensor63.cpp
terms.cpp terms.cpp
) )
......
// 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];
};
// 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_
// 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];
};
// 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_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment