Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
SWIFTsim
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SWIFT
SWIFTsim
Commits
e5b7288a
Commit
e5b7288a
authored
6 years ago
by
Matthieu Schaller
Browse files
Options
Downloads
Patches
Plain Diff
Re-ordered the content of the cell structure to save memory.
parent
3e8a929d
Branches
Branches containing commit
Tags
Tags containing commit
2 merge requests
!688
Star formation (non-MPI)
,
!684
Add star particles on-the-fly
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/cell.h
+105
-105
105 additions, 105 deletions
src/cell.h
with
105 additions
and
105 deletions
src/cell.h
+
105
−
105
View file @
e5b7288a
...
...
@@ -211,12 +211,12 @@ struct cell {
/*! The cell dimensions. */
double
width
[
3
];
/*! Linking pointer for "memory management". */
struct
cell
*
next
;
/*! Pointers to the next level of cells. */
struct
cell
*
progeny
[
8
];
/*! Linking pointer for "memory management". */
struct
cell
*
next
;
/*! Parent cell. */
struct
cell
*
parent
;
...
...
@@ -239,18 +239,45 @@ struct cell {
* pair/self tasks */
struct
cell
*
super
;
/*!
Last (integer) time the cell's part were drifted forward in time
. */
integertime_t
ti_old_pa
rt
;
/*!
The task computing this cell's sorts
. */
struct
task
*
so
rt
s
;
/*!
Maximum part movement in this cell since last construction.
*/
float
dx_max_par
t
;
/*!
The drift task for parts
*/
struct
task
*
drif
t
;
/*! Maximum particle movement in this cell since the last sort. */
float
dx_max_sort
;
/*! Linked list of the tasks computing this cell's hydro density. */
struct
link
*
density
;
/* Linked list of the tasks computing this cell's hydro gradients. */
struct
link
*
gradient
;
/*! Linked list of the tasks computing this cell's hydro forces. */
struct
link
*
force
;
/*! Dependency implicit task for the ghost (in->ghost->out)*/
struct
task
*
ghost_in
;
/*! Dependency implicit task for the ghost (in->ghost->out)*/
struct
task
*
ghost_out
;
/*! The ghost task itself */
struct
task
*
ghost
;
/*! The extra ghost task for complex hydro schemes */
struct
task
*
extra_ghost
;
/*! Task for cooling */
struct
task
*
cooling
;
/*! Task for star formation */
struct
task
*
star_formation
;
/*! Max smoothing length in this cell. */
double
h_max
;
/*! Last (integer) time the cell's part were drifted forward in time. */
integertime_t
ti_old_part
;
/*! Minimum end of (integer) time step in this cell for hydro tasks. */
integertime_t
ti_end_min
;
...
...
@@ -261,20 +288,14 @@ struct cell {
*/
integertime_t
ti_beg_max
;
/*! Nr of #part in this cell. */
int
count
;
/*! Spin lock for various uses (#part case). */
swift_lock_type
lock
;
/*! Number of #part updated in this cell. */
int
updated
;
/*! Number of #part inhibited in this cell. */
int
inhibited
;
/*! Maximum part movement in this cell since last construction. */
float
dx_max_part
;
/*!
Is the #part data of this cell being used in a sub-cell?
*/
int
hold
;
/*!
Maximum particle movement in this cell since the last sort.
*/
float
dx_max_sort
;
/*! Values of h_max before the drifts, used for sub-cell tasks. */
float
h_max_old
;
...
...
@@ -285,12 +306,27 @@ struct cell {
/*! Values of dx_max_sort before the drifts, used for sub-cell tasks. */
float
dx_max_sort_old
;
/*! Nr of #part in this cell. */
int
count
;
/*! Number of #part updated in this cell. */
int
updated
;
/*! Number of #part inhibited in this cell. */
int
inhibited
;
/*! Is the #part data of this cell being used in a sub-cell? */
int
hold
;
/*! Bit mask of sort directions that will be needed in the next timestep. */
unsigned
int
requires_sorts
;
/*! Bit mask of sorts that need to be computed for this cell. */
unsigned
int
do_sort
;
/*! Bit-mask indicating the sorted directions */
unsigned
int
sorted
;
/*! Does this cell need to be drifted (hydro)? */
char
do_drift
;
...
...
@@ -300,42 +336,6 @@ struct cell {
/*! Do any of this cell's sub-cells need to be sorted? */
char
do_sub_sort
;
/*! Bit-mask indicating the sorted directions */
unsigned
int
sorted
;
/*! The task computing this cell's sorts. */
struct
task
*
sorts
;
/*! The drift task for parts */
struct
task
*
drift
;
/*! Linked list of the tasks computing this cell's hydro density. */
struct
link
*
density
;
/* Linked list of the tasks computing this cell's hydro gradients. */
struct
link
*
gradient
;
/*! Linked list of the tasks computing this cell's hydro forces. */
struct
link
*
force
;
/*! Dependency implicit task for the ghost (in->ghost->out)*/
struct
task
*
ghost_in
;
/*! Dependency implicit task for the ghost (in->ghost->out)*/
struct
task
*
ghost_out
;
/*! The ghost task itself */
struct
task
*
ghost
;
/*! The extra ghost task for complex hydro schemes */
struct
task
*
extra_ghost
;
/*! Task for cooling */
struct
task
*
cooling
;
/*! Task for star formation */
struct
task
*
star_formation
;
#ifdef SWIFT_DEBUG_CHECKS
/*! Last (integer) time the cell's sort arrays were updated. */
...
...
@@ -358,6 +358,33 @@ struct cell {
* tasks */
struct
cell
*
super
;
/*! The drift task for gparts */
struct
task
*
drift
;
/*! Linked list of the tasks computing this cell's gravity forces. */
struct
link
*
grav
;
/*! Linked list of the tasks computing this cell's gravity M-M forces. */
struct
link
*
mm
;
/*! The multipole initialistation task */
struct
task
*
init
;
/*! Implicit task for the gravity initialisation */
struct
task
*
init_out
;
/*! Task computing long range non-periodic gravity interactions */
struct
task
*
long_range
;
/*! Implicit task for the down propagation */
struct
task
*
down_in
;
/*! Task propagating the mesh forces to the particles */
struct
task
*
mesh
;
/*! Task propagating the multipole to the particles */
struct
task
*
down
;
/*! Minimum end of (integer) time step in this cell for gravity tasks. */
integertime_t
ti_end_min
;
...
...
@@ -374,15 +401,15 @@ struct cell {
/*! Last (integer) time the cell's multipole was drifted forward in time. */
integertime_t
ti_old_multipole
;
/*! Nr of #gpart in this cell. */
int
count
;
/*! Spin lock for various uses (#gpart case). */
swift_lock_type
plock
;
/*! Spin lock for various uses (#multipole case). */
swift_lock_type
mlock
;
/*! Nr of #gpart in this cell. */
int
count
;
/*! Number of #gpart updated in this cell. */
int
updated
;
...
...
@@ -395,42 +422,15 @@ struct cell {
/*! Is the #multipole data of this cell being used in a sub-cell? */
int
mhold
;
/*! Number of M-M tasks that are associated with this cell. */
short
int
nr_mm_tasks
;
/*! Does this cell need to be drifted (gravity)? */
char
do_drift
;
/*! Do any of this cell's sub-cells need to be drifted (gravity)? */
char
do_sub_drift
;
/*! The drift task for gparts */
struct
task
*
drift
;
/*! Linked list of the tasks computing this cell's gravity forces. */
struct
link
*
grav
;
/*! Linked list of the tasks computing this cell's gravity M-M forces. */
struct
link
*
mm
;
/*! The multipole initialistation task */
struct
task
*
init
;
/*! Implicit task for the gravity initialisation */
struct
task
*
init_out
;
/*! Task computing long range non-periodic gravity interactions */
struct
task
*
long_range
;
/*! Implicit task for the down propagation */
struct
task
*
down_in
;
/*! Task propagating the mesh forces to the particles */
struct
task
*
mesh
;
/*! Task propagating the multipole to the particles */
struct
task
*
down
;
/*! Number of M-M tasks that are associated with this cell. */
short
int
nr_mm_tasks
;
}
grav
;
/*! Stars variables */
...
...
@@ -439,12 +439,27 @@ struct cell {
/*! Pointer to the #spart data. */
struct
spart
*
parts
;
/*! Nr of #spart in this cell. */
int
count
;
/*! Dependency implicit task for the star ghost (in->ghost->out)*/
struct
task
*
ghost_in
;
/*! Dependency implicit task for the star ghost (in->ghost->out)*/
struct
task
*
ghost_out
;
/*! The star ghost task itself */
struct
task
*
ghost
;
/*! Linked list of the tasks computing this cell's star density. */
struct
link
*
density
;
/*! Max smoothing length in this cell. */
double
h_max
;
/*! Spin lock for various uses (#spart case). */
swift_lock_type
lock
;
/*! Nr of #spart in this cell. */
int
count
;
/*! Values of h_max before the drifts, used for sub-cell tasks. */
float
h_max_old
;
...
...
@@ -454,18 +469,6 @@ struct cell {
/*! Values of dx_max before the drifts, used for sub-cell tasks. */
float
dx_max_part_old
;
/*! Dependency implicit task for the star ghost (in->ghost->out)*/
struct
task
*
ghost_in
;
/*! Dependency implicit task for the star ghost (in->ghost->out)*/
struct
task
*
ghost_out
;
/*! The star ghost task itself */
struct
task
*
ghost
;
/*! Linked list of the tasks computing this cell's star density. */
struct
link
*
density
;
/*! Number of #spart updated in this cell. */
int
updated
;
...
...
@@ -475,9 +478,6 @@ struct cell {
/*! Is the #spart data of this cell being used in a sub-cell? */
int
hold
;
/*! Spin lock for various uses (#spart case). */
swift_lock_type
lock
;
}
stars
;
#ifdef WITH_MPI
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment