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
solverstack
ScalFMM
Commits
3a7e5cc7
Commit
3a7e5cc7
authored
Sep 22, 2016
by
Quentin Khan
Browse files
FCountKernel: update StarPU interface
Add the symbolic data to P2M, P2L, M2P, L2P operators.
parent
0d7bfc7d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Tests/noDist/Adaptive/FCountKernel.hpp
View file @
3a7e5cc7
...
...
@@ -121,7 +121,7 @@ struct FCountKernel {
void
P2M
(
CellClass
*
const
leaf_data
,
const
ContainerClass
*
const
source_particle_container
)
{
this
->
P2M
(
&
(
leaf_data
->
multipole
),
source_particle_container
);
this
->
P2M
(
&
(
leaf_data
->
multipole
),
(
void
*
)
nullptr
,
source_particle_container
);
}
/** \brief Particle to multipole operator
...
...
@@ -131,7 +131,9 @@ struct FCountKernel {
* \param leaf_multipole Leaf multipole
* \param source_particle_container Leaf particle container
*/
template
<
class
Symb
>
void
P2M
(
typename
CellClass
::
multipole_t
*
const
leaf_multipole
,
const
Symb
*
const
/* leaf_symbolic_data */
,
const
ContainerClass
*
const
source_particle_container
)
{
mtx
.
lock
();
...
...
@@ -232,7 +234,7 @@ struct FCountKernel {
{
std
::
array
<
typename
CellClass
::
local_expansion_t
*
,
child_count
>
child_local_exps
;
std
::
transform
(
child_data
,
child_data
+
child_count
,
child_local_exps
.
data
(),
[](
CellClass
*
data
)
{
return
&
(
data
->
local_expansion
);});
[](
CellClass
*
data
)
{
return
data
?
&
(
data
->
local_expansion
)
:
nullptr
;});
this
->
L2L
(
&
(
node_data
->
local_expansion
),
child_local_exps
.
data
(),
level
);
}
...
...
@@ -261,10 +263,12 @@ struct FCountKernel {
void
P2L
(
CellClass
*
const
node_data
,
const
ContainerClass
*
const
source_particle_container
)
{
this
->
P2L
(
&
node_data
->
local_expansion
,
source_particle_container
);
this
->
P2L
(
&
node_data
->
local_expansion
,
(
void
*
)
nullptr
,
source_particle_container
);
}
template
<
class
Symb
>
void
P2L
(
typename
CellClass
::
local_expansion_t
*
const
node_local_expansion
,
const
Symb
*
const
/* node_symbolic_data */
,
const
ContainerClass
*
const
source_particle_container
)
{
mtx
.
lock
();
...
...
@@ -283,10 +287,12 @@ struct FCountKernel {
void
L2P
(
const
CellClass
*
const
leaf_data
,
ContainerClass
*
const
target_particle_container
)
{
this
->
L2P
(
&
leaf_data
->
local_expansion
,
target_particle_container
);
this
->
L2P
(
&
leaf_data
->
local_expansion
,
(
void
*
)
nullptr
,
target_particle_container
);
}
template
<
class
Symb
>
void
L2P
(
const
typename
CellClass
::
local_expansion_t
*
const
leaf_local_exp
,
const
Symb
*
const
/* target_symbolic_data */
,
ContainerClass
*
const
target_particle_container
)
{
mtx
.
lock
();
...
...
@@ -307,10 +313,12 @@ struct FCountKernel {
void
M2P
(
const
CellClass
*
const
node_data
,
ContainerClass
*
const
target_particle_container
)
{
this
->
M2P
(
&
node_data
->
multipole
,
target_particle_container
);
this
->
M2P
(
&
node_data
->
multipole
,
(
void
*
)
nullptr
,
target_particle_container
);
}
template
<
class
Symb
>
void
M2P
(
const
typename
CellClass
::
multipole_t
*
const
node_multipole
,
const
Symb
*
const
/* node_symbolic_data */
,
ContainerClass
*
const
target_particle_container
)
{
mtx
.
lock
();
...
...
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