Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
amdis
amdis-core
Commits
0786af59
Commit
0786af59
authored
Jan 19, 2018
by
Praetorius, Simon
Browse files
Intel compiler problems with variadic arguments
parent
ce0fece2
Changes
2
Hide whitespace changes
Inline
Side-by-side
dune/amdis/Assembler.hpp
View file @
0786af59
...
...
@@ -60,14 +60,22 @@ namespace AMDiS
bool
asmMatrix
,
bool
asmVector
)
const
;
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
...
Bas
e
s
>
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
Bas
i
s
>
void
assembleElementOperators
(
ElementContainer
&
elementContainer
,
Container
&
container
,
Operators
&
operators
,
Geometry
const
&
geometry
,
Bas
e
s
const
&
...
subBas
e
s
)
const
;
Bas
i
s
const
&
subBas
i
s
)
const
;
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
RowBasis
,
class
ColBasis
>
void
assembleElementOperators
(
ElementContainer
&
elementContainer
,
Container
&
container
,
Operators
&
operators
,
Geometry
const
&
geometry
,
RowBasis
const
&
rowBasis
,
ColBasis
const
&
colBasis
)
const
;
/// Finish insertion into the matrix and assembles boundary conditions
/// Return the number of nonzeros assembled into the matrix
...
...
dune/amdis/Assembler.inc.hpp
View file @
0786af59
...
...
@@ -93,24 +93,65 @@ void Assembler<Traits>::assemble(
}
template
<
class
Traits
>
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
LocalView
>
void
Assembler
<
Traits
>::
assembleElementOperators
(
ElementContainer
&
elementContainer
,
Container
&
container
,
Operators
&
operators
,
Geometry
const
&
geometry
,
LocalView
const
&
localView
)
const
{
auto
const
&
element
=
getElement
(
localView
);
auto
const
&
gridView
=
getGridView
(
localView
);
bool
add
=
false
;
auto
assemble_operators
=
[
&
](
auto
const
&
context
,
auto
&
operator_list
)
{
for
(
auto
scaled
:
operator_list
)
{
scaled
.
op
->
bind
(
element
,
geometry
);
bool
add_op
=
scaled
.
op
->
assemble
(
context
,
elementContainer
,
localView
.
tree
());
scaled
.
op
->
unbind
();
add
=
add
||
add_op
;
}
};
// assemble element operators
assemble_operators
(
element
,
operators
.
element
);
// assemble intersection operators
if
(
!
operators
.
intersection
.
empty
()
||
(
!
operators
.
boundary
.
empty
()
&&
element
.
hasBoundaryIntersections
()))
{
for
(
auto
const
&
intersection
:
intersections
(
gridView
,
element
))
{
if
(
intersection
.
boundary
())
assemble_operators
(
intersection
,
operators
.
boundary
);
else
assemble_operators
(
intersection
,
operators
.
intersection
);
}
}
}
template
<
class
Traits
>
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
...
LocalViews
>
template
<
class
ElementContainer
,
class
Container
,
class
Operators
,
class
Geometry
,
class
Row
LocalViews
,
class
ColLocalView
>
void
Assembler
<
Traits
>::
assembleElementOperators
(
ElementContainer
&
elementContainer
,
Container
&
container
,
Operators
&
operators
,
Geometry
const
&
geometry
,
LocalViews
const
&
...
localViews
)
const
Row
LocalViews
const
&
rowLocalView
,
ColLocalView
const
&
colLocalView
)
const
{
auto
const
&
element
=
getElement
(
l
ocalView
s
...
);
auto
const
&
gridView
=
getGridView
(
l
ocalView
s
...
);
auto
const
&
element
=
getElement
(
rowLocalView
,
colL
ocalView
);
auto
const
&
gridView
=
getGridView
(
rowLocalView
,
colL
ocalView
);
bool
add
=
false
;
auto
assemble_operators
=
[
&
](
auto
const
&
context
,
auto
&
operator_list
)
{
for
(
auto
scaled
:
operator_list
)
{
scaled
.
op
->
bind
(
element
,
geometry
);
bool
add_op
=
scaled
.
op
->
assemble
(
context
,
elementContainer
,
l
ocalView
s
.
tree
()
...
);
bool
add_op
=
scaled
.
op
->
assemble
(
context
,
elementContainer
,
rowL
ocalView
.
tree
()
,
colLocalView
.
tree
()
);
scaled
.
op
->
unbind
();
add
=
add
||
add_op
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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