21 double commonFacesPowerTwo = 1.0;
22 for (
int d=0; d<Dimensions; d++) {
23 stencilEntry(d) = i(d)-j(d)+1;
24 if (i(d)==j(d)) commonFacesPowerTwo *= 2.0;
46 double commonFacesPowerTwo = 1.0;
47 for (
int d=0; d<Dimensions; d++) {
48 stencilEntry(d) = i(d)-j(d)+1;
49 if (i(d)==j(d)) commonFacesPowerTwo *= 2.0;
76 result(stencilEntry) += matrix(jScalar,kScalar);
91 result(jScalar*
ThreePowerD + stencilEntry) = matrix(jScalar,kScalar);
107 double commonFacesPowerTwo = 1.0;
108 for (
int d=0; d<Dimensions; d++) {
111 commonFacesPowerTwo *= 2.0;
113 else if (i(d)<j(d)) {
121 result(jScalar,iScalar) = vectorOfStencils( vectorOfStencilIndex ) / commonFacesPowerTwo;
160 int adjacentInnerCells = 0;
170 for (
int d=0; d<Dimensions; d++) {
174 else if (i(d)<j(d)) {
182 result(jScalar,iScalar) = vectorOfStencils( vectorOfStencilIndex ) /
static_cast<double>(adjacentInnerCells);
204 for (
int d=0; d<Dimensions; d++) {
208 else if (col(d)<row(d)) {
226 static const int result[] = {4,5,7,8,3,4,6,7,1,2,4,5,0,1,3,4};
227 int thisResult = result[row*4+col];
246 ComplexElementWiseAssemblyMatrix result;
252 double commonFacesPowerTwo = 1.0;
253 for (
int d=0; d<Dimensions; d++) {
256 commonFacesPowerTwo *= 2.0;
258 else if (i(d)<j(d)) {
266 result(jScalar,iScalar) = vectorOfComplexStencils( vectorOfComplexStencilIndex ) / commonFacesPowerTwo;
315 result(row,col) = matrix(row,col) - weight * referenceStiffnessMatrix(row,col);
#define assertion2(expr, param0, param1)
#define assertion4(expr, param0, param1, param2, param3)
#define assertionEquals1(lhs, rhs, a)
#define assertionNumericalEquals2(lhs, rhs, a, b)
#define assertionMsg(expr, message)
#define assertionEquals2(lhs, rhs, a, b)
#define dfor2(counter)
Shortcut For dfor(counter,2)
#define enddforx
I prefer to use this macro for dforx instead of a closing bracket as many syntax parser fail otherwis...
CPUGPUMethod int dLinearised(const tarch::la::Vector< Dimensions, int > &counter, int max)
Map d-dimensional vector onto integer index.
tarch::la::Vector< Dimensions, int > dDelinearised(int value, int max)
Counterpart of dLinearised().
bool equals(const Matrix< Rows, Cols, Scalar > &lhs, const Matrix< Rows, Cols, Scalar > &rhs, const Scalar &tolerance=NUMERICAL_ZERO_DIFFERENCE)
Compares to matrices on equality by means of a numerical accuracy.