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
SWIFT
SWIFTsim
Commits
838eb3d6
Commit
838eb3d6
authored
Dec 07, 2015
by
Matthieu Schaller
Browse files
Better name for the cell links
parent
04a66c12
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/cell.h
View file @
838eb3d6
...
...
@@ -107,8 +107,8 @@ struct cell {
int
sortsize
,
gsortsize
;
/* The tasks computing this cell's density. */
struct
link
*
density
,
*
force
,
*
grav
;
int
nr_density
,
nr_force
,
nr_grav
;
struct
link
*
link_
density
,
*
link_
force
,
*
link_
grav
;
int
nr_
link_
density
,
nr_
link_
force
,
nr_
link_
grav
;
/* The ghost task to link density to interactions. */
struct
task
*
ghost
,
*
init
,
*
drift
,
*
kick
;
...
...
src/engine.c
View file @
838eb3d6
...
...
@@ -1109,27 +1109,27 @@ void engine_maketasks(struct engine *e) {
if
(
t
->
type
==
task_type_self
)
{
atomic_inc
(
&
t
->
ci
->
nr_tasks
);
if
(
t
->
subtype
==
task_subtype_density
)
{
t
->
ci
->
density
=
engine_addlink
(
e
,
t
->
ci
->
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_density
);
t
->
ci
->
link_
density
=
engine_addlink
(
e
,
t
->
ci
->
link_
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
density
);
}
}
else
if
(
t
->
type
==
task_type_pair
)
{
atomic_inc
(
&
t
->
ci
->
nr_tasks
);
atomic_inc
(
&
t
->
cj
->
nr_tasks
);
if
(
t
->
subtype
==
task_subtype_density
)
{
t
->
ci
->
density
=
engine_addlink
(
e
,
t
->
ci
->
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_density
);
t
->
cj
->
density
=
engine_addlink
(
e
,
t
->
cj
->
density
,
t
);
atomic_inc
(
&
t
->
cj
->
nr_density
);
t
->
ci
->
link_
density
=
engine_addlink
(
e
,
t
->
ci
->
link_
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
density
);
t
->
cj
->
link_
density
=
engine_addlink
(
e
,
t
->
cj
->
link_
density
,
t
);
atomic_inc
(
&
t
->
cj
->
nr_
link_
density
);
}
}
else
if
(
t
->
type
==
task_type_sub
)
{
atomic_inc
(
&
t
->
ci
->
nr_tasks
);
if
(
t
->
cj
!=
NULL
)
atomic_inc
(
&
t
->
cj
->
nr_tasks
);
if
(
t
->
subtype
==
task_subtype_density
)
{
t
->
ci
->
density
=
engine_addlink
(
e
,
t
->
ci
->
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_density
);
t
->
ci
->
link_
density
=
engine_addlink
(
e
,
t
->
ci
->
link_
density
,
t
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
density
);
if
(
t
->
cj
!=
NULL
)
{
t
->
cj
->
density
=
engine_addlink
(
e
,
t
->
cj
->
density
,
t
);
atomic_inc
(
&
t
->
cj
->
nr_density
);
t
->
cj
->
link_
density
=
engine_addlink
(
e
,
t
->
cj
->
link_
density
,
t
);
atomic_inc
(
&
t
->
cj
->
nr_
link_
density
);
}
}
}
...
...
@@ -1171,8 +1171,8 @@ void engine_maketasks(struct engine *e) {
t
->
ci
,
NULL
,
0
);
scheduler_addunlock
(
sched
,
t
->
ci
->
super
->
ghost
,
t2
);
scheduler_addunlock
(
sched
,
t2
,
t
->
ci
->
super
->
kick
);
t
->
ci
->
force
=
engine_addlink
(
e
,
t
->
ci
->
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_force
);
t
->
ci
->
link_
force
=
engine_addlink
(
e
,
t
->
ci
->
link_
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
force
);
}
/* Otherwise, pair interaction? */
...
...
@@ -1191,10 +1191,10 @@ void engine_maketasks(struct engine *e) {
scheduler_addunlock
(
sched
,
t
->
cj
->
super
->
ghost
,
t2
);
scheduler_addunlock
(
sched
,
t2
,
t
->
cj
->
super
->
kick
);
}
t
->
ci
->
force
=
engine_addlink
(
e
,
t
->
ci
->
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_force
);
t
->
cj
->
force
=
engine_addlink
(
e
,
t
->
cj
->
force
,
t2
);
atomic_inc
(
&
t
->
cj
->
nr_force
);
t
->
ci
->
link_
force
=
engine_addlink
(
e
,
t
->
ci
->
link_
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
force
);
t
->
cj
->
link_
force
=
engine_addlink
(
e
,
t
->
cj
->
link_
force
,
t2
);
atomic_inc
(
&
t
->
cj
->
nr_
link_
force
);
}
/* Otherwise, sub interaction? */
...
...
@@ -1214,11 +1214,11 @@ void engine_maketasks(struct engine *e) {
scheduler_addunlock
(
sched
,
t
->
cj
->
super
->
ghost
,
t2
);
scheduler_addunlock
(
sched
,
t2
,
t
->
cj
->
super
->
kick
);
}
t
->
ci
->
force
=
engine_addlink
(
e
,
t
->
ci
->
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_force
);
t
->
ci
->
link_
force
=
engine_addlink
(
e
,
t
->
ci
->
link_
force
,
t2
);
atomic_inc
(
&
t
->
ci
->
nr_
link_
force
);
if
(
t
->
cj
!=
NULL
)
{
t
->
cj
->
force
=
engine_addlink
(
e
,
t
->
cj
->
force
,
t2
);
atomic_inc
(
&
t
->
cj
->
nr_force
);
t
->
cj
->
link_
force
=
engine_addlink
(
e
,
t
->
cj
->
link_
force
,
t2
);
atomic_inc
(
&
t
->
cj
->
nr_
link_
force
);
}
}
...
...
src/runner.c
View file @
838eb3d6
...
...
@@ -714,7 +714,7 @@ void runner_doghost(struct runner *r, struct cell *c) {
for
(
finger
=
c
;
finger
!=
NULL
;
finger
=
finger
->
parent
)
{
/* Run through this cell's density interactions. */
for
(
struct
link
*
l
=
finger
->
density
;
l
!=
NULL
;
l
=
l
->
next
)
{
for
(
struct
link
*
l
=
finger
->
link_
density
;
l
!=
NULL
;
l
=
l
->
next
)
{
//message("link: %p next: %p", l, l->next); fflush(stdout);
...
...
src/space.c
View file @
838eb3d6
...
...
@@ -271,10 +271,10 @@ void space_regrid(struct space *s, double cell_max, int verbose) {
space_rebuild_recycle
(
s
,
&
s
->
cells
[
k
]);
s
->
cells
[
k
].
sorts
=
NULL
;
s
->
cells
[
k
].
nr_tasks
=
0
;
s
->
cells
[
k
].
nr_density
=
0
;
s
->
cells
[
k
].
nr_force
=
0
;
s
->
cells
[
k
].
density
=
NULL
;
s
->
cells
[
k
].
force
=
NULL
;
s
->
cells
[
k
].
nr_
link_
density
=
0
;
s
->
cells
[
k
].
nr_
link_
force
=
0
;
s
->
cells
[
k
].
link_
density
=
NULL
;
s
->
cells
[
k
].
link_
force
=
NULL
;
s
->
cells
[
k
].
dx_max
=
0
.
0
f
;
s
->
cells
[
k
].
sorted
=
0
;
s
->
cells
[
k
].
count
=
0
;
...
...
@@ -1219,8 +1219,11 @@ void space_init(struct space *s, double dim[3], struct part *parts, int N,
void
space_link_cleanup
(
struct
space
*
s
)
{
void
cell_clean_links
(
struct
cell
*
c
,
void
*
data
)
{
c
->
density
=
NULL
;
c
->
force
=
NULL
;
c
->
link_density
=
NULL
;
c
->
nr_link_density
=
0
;
c
->
link_force
=
NULL
;
c
->
nr_link_force
=
0
;
}
space_map_cells_pre
(
s
,
1
,
cell_clean_links
,
NULL
);
...
...
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