Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Backofen, Rainer
amdis
Commits
61feafb2
Commit
61feafb2
authored
May 02, 2012
by
Praetorius, Simon
Browse files
Some corrections to the last commit
parent
62841d3c
Changes
3
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/Assembler.cc
View file @
61feafb2
...
...
@@ -324,9 +324,7 @@ namespace AMDiS {
calculateElementMatrix
(
elInfo
,
elementMatrix
);
}
// eventuell einfach
// vec = elementMatrix*uhOldLoc;
// schreiben
for
(
int
i
=
0
;
i
<
nRow
;
i
++
)
{
double
val
=
0.0
;
for
(
int
j
=
0
;
j
<
nCol
;
j
++
)
...
...
AMDiS/src/Mesh.cc
View file @
61feafb2
...
...
@@ -1015,7 +1015,7 @@ namespace AMDiS {
out
<<
name
<<
"
\n
"
;
//
SerUtil::serialize(out, dim);
SerUtil
::
serialize
(
out
,
dim
);
SerUtil
::
serialize
(
out
,
nVertices
);
SerUtil
::
serialize
(
out
,
nEdges
);
SerUtil
::
serialize
(
out
,
nLeaves
);
...
...
@@ -1095,8 +1095,8 @@ namespace AMDiS {
in
.
get
();
int
oldVal
=
dim
;
//
SerUtil::deserialize(in, dim);
//
TEST_EXIT_DBG(oldVal == 0 || dim == oldVal)("Invalid dimension!\n");
SerUtil
::
deserialize
(
in
,
dim
);
TEST_EXIT_DBG
(
oldVal
==
0
||
dim
==
oldVal
)(
"Invalid dimension!
\n
"
);
SerUtil
::
deserialize
(
in
,
nVertices
);
SerUtil
::
deserialize
(
in
,
nEdges
);
...
...
AMDiS/src/TransformDOF.h
View file @
61feafb2
...
...
@@ -7,18 +7,25 @@ namespace AMDiS {
/**
* analogon to std::for_each/std::transform for DOFVectors.
* The operators are applied to each degree of freedom
.
* The operators are applied to each degree of freedom
:
*
* forEachDOF(vec, op)
* transformDOF(vec1, result, op)
* transformDOF(vec1, vec2, result, binary_op)
* transformDOF(vec1, vec2, vec3, result, tertiary_op)
*
* transformDOFInterpolation(vec, f(x), result, binary_op)
*
* vec1,vec2,vec3 .. {DOFVector<Ti>*, DOFVector<Ti>&, Ti}
* vec, result .. {DOFVector<TOut>*, DOFVector<TOut>&}
* op .. AbstractFunction<TOut, T1>*
* binary_op ..BinaryAbstractFunction<TOut, T1, T2>*
* tertiary_op .. TertiaryAbstractFunction<TOut, T1, T2, T3>*
*
* analogon to std::accumulate for DOFVectors:
*
* result = accumulateDOF_simple(vec, value0, binary_op)
* result = accumulateDOF_simple(vec1, vec2, value0, tertiary_op)
**/
// result = op(vec)
...
...
@@ -83,7 +90,7 @@ inline void transformDOF_extended(DOFVector<T1> *vec, DOFVector<T2> *result, Abs
}
}
// result = op(vec)
//
/
result = op(vec)
template
<
typename
T1
,
typename
T2
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec
,
DOFVector
<
T2
>
*
result
,
...
...
@@ -112,7 +119,6 @@ inline void forEachDOF(DOFVector<T1> *vec, AbstractFunction<T1, T1> *op)
template
<
typename
T1
>
inline
void
forEachDOF
(
DOFVector
<
T1
>
&
vec
,
AbstractFunction
<
T1
,
T1
>
&
op
)
{
transformDOF
(
&
vec
,
&
op
);
}
// =======================================================================================================
// result = binary_op(vec1, vec2)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
...
...
@@ -190,7 +196,7 @@ inline void transformDOF_extended(DOFVector<T1> *vec1, DOFVector<T2> *vec2, DOFV
}
}
// result = binary_op(vec1, vec2)
//
/
result = binary_op(vec1, vec2)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec1
,
DOFVector
<
T2
>
*
vec2
,
...
...
@@ -208,7 +214,7 @@ template<typename T1, typename T2, typename T3> inline void transformDOF(DOFVect
{
transformDOF
(
&
vec1
,
&
vec2
,
&
result
,
&
binary_op
);
}
// result = binary_op(vec1, v
ec2
)
// result = binary_op(vec1, v
alue
)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF_simple
(
DOFVector
<
T1
>
*
vec1
,
const
T2
val
,
...
...
@@ -224,7 +230,7 @@ inline void transformDOF_simple(DOFVector<T1> *vec1,
}
}
// result = binary_op(vec1, v
ec2
)
// result = binary_op(vec1, v
alue
)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF_extended
(
DOFVector
<
T1
>
*
vec1
,
const
T2
val
,
DOFVector
<
T3
>
*
result
,
BinaryAbstractFunction
<
T3
,
T1
,
T2
>
*
binary_op
)
{
...
...
@@ -275,7 +281,7 @@ inline void transformDOF_extended(DOFVector<T1> *vec1, const T2 val, DOFVector<T
}
}
// result = binary_op(vec1, v
ec2
)
//
/
result = binary_op(vec1, v
alue
)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec1
,
const
T2
val
,
...
...
@@ -292,7 +298,7 @@ template<typename T1, typename T2, typename T3> inline void transformDOF(DOFVect
{
transformDOF
(
&
vec1
,
val
,
&
result
,
&
binary_op
);
}
// result = binary_op(v
ec1
, vec2)
// result = binary_op(v
alue
, vec2)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF_simple
(
const
T1
val
,
DOFVector
<
T2
>
*
vec1
,
...
...
@@ -308,7 +314,7 @@ inline void transformDOF_simple(const T1 val,
}
}
// result = binary_op(v
ec1
, vec2)
// result = binary_op(v
alue
, vec2)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF_extended
(
const
T1
val
,
DOFVector
<
T2
>
*
vec1
,
DOFVector
<
T3
>
*
result
,
BinaryAbstractFunction
<
T3
,
T1
,
T2
>
*
binary_op
)
{
...
...
@@ -359,7 +365,7 @@ inline void transformDOF_extended(const T1 val, DOFVector<T2> *vec1, DOFVector<T
}
}
// result = binary_op(v
ec1
, vec2)
//
/
result = binary_op(v
alue
, vec2)
template
<
typename
T1
,
typename
T2
,
typename
T3
>
inline
void
transformDOF
(
const
T1
val
,
DOFVector
<
T2
>
*
vec1
,
...
...
@@ -376,9 +382,7 @@ template<typename T1, typename T2, typename T3> inline void transformDOF(const T
{
transformDOF
(
val
,
&
vec1
,
&
result
,
&
binary_op
);
}
// ========================================================================================
// result = binary_op(vec1, vec2)
// result = tertiary_op(vec1, vec2, vec3)
template
<
typename
T1
,
typename
T2
,
typename
T3
,
typename
T4
>
inline
void
transformDOF_simple
(
DOFVector
<
T1
>
*
vec1
,
DOFVector
<
T2
>
*
vec2
,
...
...
@@ -466,7 +470,7 @@ inline void transformDOF_extended(DOFVector<T1> *vec1, DOFVector<T2> *vec2, DOFV
}
}
// result =
bin
ary_op(vec1, vec2)
//
/
result =
terti
ary_op(vec1, vec2
, vec3
)
template
<
typename
T1
,
typename
T2
,
typename
T3
,
typename
T4
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec1
,
DOFVector
<
T2
>
*
vec2
,
...
...
@@ -486,7 +490,7 @@ template<typename T1, typename T2, typename T3, typename T4>
inline
void
transformDOF
(
DOFVector
<
T1
>
&
vec1
,
DOFVector
<
T2
>
&
vec2
,
DOFVector
<
T3
>
&
vec3
,
DOFVector
<
T4
>
&
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
&
tertiary_op
)
{
transformDOF
(
&
vec1
,
&
vec2
,
&
vec3
,
&
result
,
&
tertiary_op
);
}
// result = tertiary_op(vec1, vec2, v
ec3
)
//
/
result = tertiary_op(vec1, vec2, v
alue
)
template
<
typename
T1
,
typename
T2
,
typename
T3
,
typename
T4
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec1
,
DOFVector
<
T2
>
*
vec2
,
T3
val
,
DOFVector
<
T4
>
*
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
*
tertiary_op
)
{
...
...
@@ -551,7 +555,7 @@ template<typename T1, typename T2, typename T3, typename T4>
inline
void
transformDOF
(
DOFVector
<
T1
>
&
vec1
,
DOFVector
<
T2
>
&
vec2
,
T3
val
,
DOFVector
<
T4
>
&
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
&
tertiary_op
)
{
transformDOF
(
&
vec1
,
&
vec2
,
val
,
&
result
,
&
tertiary_op
);
}
// result = tertiary_op(vec1, v
ec2
, vec3)
//
/
result = tertiary_op(vec1, v
alue
, vec3)
template
<
typename
T1
,
typename
T2
,
typename
T3
,
typename
T4
>
inline
void
transformDOF
(
DOFVector
<
T1
>
*
vec1
,
T2
val
,
DOFVector
<
T2
>
*
vec3
,
DOFVector
<
T4
>
*
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
*
tertiary_op
)
{
...
...
@@ -616,7 +620,7 @@ template<typename T1, typename T2, typename T3, typename T4>
inline
void
transformDOF
(
DOFVector
<
T1
>
&
vec1
,
T2
val
,
DOFVector
<
T3
>
&
vec3
,
DOFVector
<
T4
>
&
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
&
tertiary_op
)
{
transformDOF
(
&
vec1
,
val
,
&
vec3
,
&
result
,
&
tertiary_op
);
}
// result = tertiary_op(v
ec1
, vec2, vec3)
//
/
result = tertiary_op(v
alue
, vec2, vec3)
template
<
typename
T1
,
typename
T2
,
typename
T3
,
typename
T4
>
inline
void
transformDOF
(
T1
val
,
DOFVector
<
T2
>
*
vec2
,
DOFVector
<
T2
>
*
vec3
,
DOFVector
<
T4
>
*
result
,
TertiaryAbstractFunction
<
T4
,
T1
,
T2
,
T3
>
*
tertiary_op
)
{
...
...
@@ -684,7 +688,7 @@ inline void transformDOF(T1 val, DOFVector<T2> &vec2, DOFVector<T3> &vec3, DOFVe
// ===========================================================================================
// return binary_op(vec, interpol(fct))
//
/
return binary_op(vec, interpol(fct))
template
<
typename
T
>
inline
void
transformDOFInterpolation
(
DOFVector
<
T
>
*
vec
,
...
...
@@ -700,7 +704,7 @@ template<typename T> inline void transformDOFInterpolation(
DOFVector
<
T
>
&
vec
,
AbstractFunction
<
T
,
WorldVector
<
double
>
>
&
fct
,
BinaryAbstractFunction
<
T
,
T
,
T
>
&
binary_op
)
{
transformDOFInterpolation
(
&
vec
,
&
fct
,
&
binary_op
);
}
// return binary_op(vec, interpol(fct))
//
/
return binary_op(vec, interpol(fct))
template
<
typename
T
>
inline
void
transformDOFInterpolation
(
DOFVector
<
T
>
*
vec
,
...
...
@@ -717,11 +721,12 @@ template<typename T> inline void transformDOFInterpolation(
DOFVector
<
T
>
&
vec
,
AbstractFunction
<
T
,
WorldVector
<
double
>
>
&
fct
,
DOFVector
<
T
>
&
result
,
BinaryAbstractFunction
<
T
,
T
,
T
>
&
binary_op
)
{
transformDOFInterpolation
(
&
vec
,
&
fct
,
&
result
,
&
binary_op
);
}
}
// ====================================================================================
template
<
typename
T
>
T
accumulateDOF_simple
(
DOFVector
<
T
>
*
vec
,
inline
T
accumulateDOF_simple
(
DOFVector
<
T
>
*
vec
,
T
value0
,
BinaryAbstractFunction
<
T
,
T
,
T
>
*
binary_op
)
{
...
...
@@ -735,10 +740,10 @@ T accumulateDOF_simple(DOFVector<T> *vec,
}
template
<
typename
TOut
,
typename
T1
,
typename
T2
>
TOut
accumulateDOF_simple
(
DOFVector
<
T1
>
*
vec1
,
inline
TOut
accumulateDOF_simple
(
DOFVector
<
T1
>
*
vec1
,
DOFVector
<
T2
>
*
vec2
,
TOut
value0
,
TertiaryAbstractFunction
<
TOut
,
TOut
,
T1
,
T2
>
*
tertiary_op
)
TertiaryAbstractFunction
<
TOut
,
T1
,
T2
>
*
tertiary_op
)
{
TEST_EXIT
(
vec1
->
getFeSpace
()
==
vec2
->
getFeSpace
())(
"FeSpaces must be equal!
\n
"
);
DOFIterator
<
T1
>
vec1Iter
(
vec1
,
USED_DOFS
);
...
...
@@ -751,6 +756,4 @@ TOut accumulateDOF_simple(DOFVector<T1> *vec1,
return
value
;
}
}
#endif // AMDIS_TRANSFORM_DOF_H
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment