{"action":"created","issue":{"url":"https://api.github.com/repos/schmie/hemeMove/issues/4","labels_url":"https://api.github.com/repos/schmie/hemeMove/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/schmie/hemeMove/issues/4/comments","events_url":"https://api.github.com/repos/schmie/hemeMove/issues/4/events","html_url":"https://github.com/schmie/hemeMove/issues/4","id":94099346,"number":4,"title":"Fix the streaklines","user":{"login":"schmie","id":6473158,"avatar_url":"https://avatars.githubusercontent.com/u/6473158?v=3","gravatar_id":"","url":"https://api.github.com/users/schmie","html_url":"https://github.com/schmie","followers_url":"https://api.github.com/users/schmie/followers","following_url":"https://api.github.com/users/schmie/following{/other_user}","gists_url":"https://api.github.com/users/schmie/gists{/gist_id}","starred_url":"https://api.github.com/users/schmie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schmie/subscriptions","organizations_url":"https://api.github.com/users/schmie/orgs","repos_url":"https://api.github.com/users/schmie/repos","events_url":"https://api.github.com/users/schmie/events{/privacy}","received_events_url":"https://api.github.com/users/schmie/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/schmie/hemeMove/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/schmie/hemeMove/labels/P:%20blocker","name":"P: blocker","color":"ffc7f8"}],"state":"open","locked":false,"assignee":{"login":"hcarver","id":1674771,"avatar_url":"https://avatars.githubusercontent.com/u/1674771?v=3","gravatar_id":"","url":"https://api.github.com/users/hcarver","html_url":"https://github.com/hcarver","followers_url":"https://api.github.com/users/hcarver/followers","following_url":"https://api.github.com/users/hcarver/following{/other_user}","gists_url":"https://api.github.com/users/hcarver/gists{/gist_id}","starred_url":"https://api.github.com/users/hcarver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hcarver/subscriptions","organizations_url":"https://api.github.com/users/hcarver/orgs","repos_url":"https://api.github.com/users/hcarver/repos","events_url":"https://api.github.com/users/hcarver/events{/privacy}","received_events_url":"https://api.github.com/users/hcarver/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/schmie/hemeMove/milestones/18","html_url":"https://github.com/schmie/hemeMove/milestones/0.2","labels_url":"https://api.github.com/repos/schmie/hemeMove/milestones/18/labels","id":1193199,"number":18,"title":"0.2","description":"None","creator":{"login":"schmie","id":6473158,"avatar_url":"https://avatars.githubusercontent.com/u/6473158?v=3","gravatar_id":"","url":"https://api.github.com/users/schmie","html_url":"https://github.com/schmie","followers_url":"https://api.github.com/users/schmie/followers","following_url":"https://api.github.com/users/schmie/following{/other_user}","gists_url":"https://api.github.com/users/schmie/gists{/gist_id}","starred_url":"https://api.github.com/users/schmie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schmie/subscriptions","organizations_url":"https://api.github.com/users/schmie/orgs","repos_url":"https://api.github.com/users/schmie/repos","events_url":"https://api.github.com/users/schmie/events{/privacy}","received_events_url":"https://api.github.com/users/schmie/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"closed","created_at":"2015-07-04T15:37:44Z","updated_at":"2015-07-09T16:49:45Z","due_on":"2011-12-16T16:59:59Z","closed_at":"2015-07-04T15:37:44Z"},"comments":10,"created_at":"2015-07-09T16:49:36Z","updated_at":"2015-07-09T16:49:59Z","closed_at":null,"body":"**Reported by hywel on 19 Sep 2011 15:20 UTC**\nThere are 2 major problems with the way streaklines are currently implemented. We'll attempt to fix them here, in one go.\r\n\r\n1. The streaklines produced are different depending on the number of cores used, suggesting a bug in the way we're doing Streakline Comms. While I'm doing number 2 (below), I'll have a crack at this.\r\n\r\n2. The streaklines are the only thing in the visualisation system that DON'T use the single-point-of-communication-per-iteration. Because it does its own (synchronous) communication, it's a barrier to scaling.\r\n\r\n- The first step will be to change the way f_old and f_new are updated during the collision and streaming steps. Currently, f_old is universally updated to have the post-collision value for each site, before being streamed to a different site. It's not known where this is used, but I will first remove this update (so that f_old is constant over the LBM cycle), then work out why leaving it un-updated causes the simulation to fail the diff test (as previous experience shows it will). I consider this a bug, so I'll fix it.\r\n\r\n- Next, I'll change from the all-to-all synchronous communication we currently use to asynchronous all-to-all comms. On one iteration, we'll point-to-point communicate the number of particles that need to be passed from each core to each other core (using the single-comms-point mechanism). On the next iteration we'll pass the particle data only between those cores that need to pass them. This will be the particle data from the previous iteration, but because we now maintain f_old, we can update the particles for both the last iteration and the current iteration at once.\r\n\r\n- I'll need to do something clever on the last iteration, to make sure we draw the streaklines correctly (e.g. using synchronous passing).\r\n\r\n- I'll also need to do something clever to make sure streaklines are correctly added to images that were produced for the iteration before particles are communicated.\r\n\r\nAssigning to Miguel for design review."},"comment":{"url":"https://api.github.com/repos/schmie/hemeMove/issues/comments/120066503","html_url":"https://github.com/schmie/hemeMove/issues/4#issuecomment-120066503","issue_url":"https://api.github.com/repos/schmie/hemeMove/issues/4","id":120066503,"user":{"login":"schmie","id":6473158,"avatar_url":"https://avatars.githubusercontent.com/u/6473158?v=3","gravatar_id":"","url":"https://api.github.com/users/schmie","html_url":"https://github.com/schmie","followers_url":"https://api.github.com/users/schmie/followers","following_url":"https://api.github.com/users/schmie/following{/other_user}","gists_url":"https://api.github.com/users/schmie/gists{/gist_id}","starred_url":"https://api.github.com/users/schmie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schmie/subscriptions","organizations_url":"https://api.github.com/users/schmie/orgs","repos_url":"https://api.github.com/users/schmie/repos","events_url":"https://api.github.com/users/schmie/events{/privacy}","received_events_url":"https://api.github.com/users/schmie/received_events","type":"User","site_admin":false},"created_at":"2015-07-09T16:49:59Z","updated_at":"2015-07-09T16:49:59Z","body":"**Comment by hywel on 23 Nov 2011 17:17 UTC**\nOK. diff:@c72c3fd00aeb:09ac7227f903 are what we're talking about here.\r\n\r\nBefore, the streaklines were visibly different when run on different numbers of cores, now they aren't. I've done a fair bit of tidying to the code but it's not perfect (there's more could be done on the use of !VelocitySiteData objects especially, but now isn't the right time, I think).\r\n\r\nThis doesn't totally fix images and make sure they pass the diffTest, however.\r\n 1. On four cores, the image of the cylinder has a little dink of missing pixels on one side. See #71.\r\n 1. The initialisation of seed positions will be different on multiple cores. See #70.\r\n 1. The streaklines aren't built to scale at the moment. See #72.\r\n\r\nThis patch:\r\n - Updates the regression tests to use a freshly generated comparison image\r\n - Does stuff to eclipse files that means eclipse can build hemelb from within the IDE (think you can configure it to build in the background while you're still working)\r\n - Don't use the !EntropyTester in debug mode - it's very slow\r\n - Converts a few classes / functions to using Vector3Ds rather than arrays, pointers or 3 variables\r\n - Extend Vector3D to have [] access\r\n - Get rid of some slightly debugging info that didn't seem that helpful from the !ClusterBuilder\r\n - Streakline drawer files have lots of changes, explanation available on request. The main change was to clarify the calls made by StreaklineDrawer::Streaklines and modify the functions called so that they do what they claim. I think this is the actual fix\r\n \r\nSorry it's so long but, Miguel, could you review this? "}}