{"action":"closed","issue":{"url":"https://api.github.com/repos/underworldcode/underworld2/issues/124","repository_url":"https://api.github.com/repos/underworldcode/underworld2","labels_url":"https://api.github.com/repos/underworldcode/underworld2/issues/124/labels{/name}","comments_url":"https://api.github.com/repos/underworldcode/underworld2/issues/124/comments","events_url":"https://api.github.com/repos/underworldcode/underworld2/issues/124/events","html_url":"https://github.com/underworldcode/underworld2/issues/124","id":151711096,"number":124,"title":"How to have robust population control?","user":{"login":"QwZhang","id":12026068,"avatar_url":"https://avatars.githubusercontent.com/u/12026068?v=3","gravatar_id":"","url":"https://api.github.com/users/QwZhang","html_url":"https://github.com/QwZhang","followers_url":"https://api.github.com/users/QwZhang/followers","following_url":"https://api.github.com/users/QwZhang/following{/other_user}","gists_url":"https://api.github.com/users/QwZhang/gists{/gist_id}","starred_url":"https://api.github.com/users/QwZhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QwZhang/subscriptions","organizations_url":"https://api.github.com/users/QwZhang/orgs","repos_url":"https://api.github.com/users/QwZhang/repos","events_url":"https://api.github.com/users/QwZhang/events{/privacy}","received_events_url":"https://api.github.com/users/QwZhang/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-04-28T18:26:12Z","updated_at":"2016-09-02T02:26:01Z","closed_at":"2016-09-02T02:26:01Z","body":"Hi all,\r\nSorry for troubling again. I have been bothered by the particle regeneration issue as discussed months ago [here](https://github.com/underworldcode/underworld2/issues/22).\r\nThis time I ran a similar model but I extended into a 3D one (with 256x64x64 cells, 20 particles per cell), removed the sticky-air layer and simply imposed a free-slip BC on top instead. \r\nI have activated the `Inflow` flag and other related configurations as suggested by @mirkovelic and @OlympusMonds:\r\n```\r\n\t<struct name=\"weights\" mergeType=\"replace\">\r\n\t\t<param name=\"maxDeletions\">0</param>\r\n\t\t<param name=\"maxSplits\">500</param>\r\n\t\t<param name=\"Inflow\">True</param>\r\n\t\t<param name=\"Type\">PCDVC</param>\r\n\t\t<param name=\"resolutionX\">10</param>\r\n\t\t<param name=\"resolutionY\">10</param>\r\n\t\t<param name=\"resolutionZ\">10</param>\r\n\t\t<param name=\"lowerT\">0.6</param>\r\n\t\t<param name=\"upperT\">5</param>\r\n\t\t<param name=\"Threshold\">0.95</param>\r\n\t\t<param name=\"CentPosRatio\">0.01</param>\r\n\t\t<param name=\"MaterialPointsSwarm\">materialSwarm</param>\r\n\t\t<param name=\"splitInInterfaceCells\">True</param>\r\n\t</struct>\r\n\t\r\n\t<struct name=\"localLayout\">\r\n\t\t<param name=\"Type\">MappedParticleLayout</param>\r\n\t</struct> \r\n\r\n\t<struct name=\"picIntegrationPoints\">\r\n\t\t<param name=\"Type\">IntegrationPointsSwarm</param>\r\n\t\t<param name=\"CellLayout\">elementCellLayout</param>\r\n\t\t<param name=\"ParticleLayout\">localLayout</param>\r\n\t\t<param name=\"FeMesh\">mesh-linear</param>\r\n\t\t<param name=\"WeightsCalculator\">weights</param>\r\n\t\t<param name=\"TimeIntegrator\">timeIntegrator</param>\r\n\t\t<param name=\"IntegrationPointMapper\">mapper</param>\r\n\t</struct> \r\n\t<struct name=\"mapper\">\r\n\t\t<param name=\"Type\">CoincidentMapper</param>\r\n\t\t<param name=\"IntegrationPointsSwarm\">picIntegrationPoints</param>\r\n\t\t<param name=\"MaterialPointsSwarm\">materialSwarm</param>\r\n\t</struct> \r\n``` \r\nbut underworld crashes now and then，reporting similar error when crash like:\r\n```\r\n...\r\nIn func SystemLinearEquations_NonLinearExecute: Converged after 6 iterations.\r\nTime Integration\r\n\t       EP:        SwarmAdvector_AdvectionSetup -    0.0006 [min] /    0.0498 [max] (secs)\r\n\t       EP:        SwarmAdvector_AdvectionSetup -    0.0010 [min] /    0.0432 [max] (secs)\r\n\t2nd order:               materialSwarmAdvector -    0.4510 [min] /    0.5447 [max] (secs)\r\n\t2nd order:                 passiveTracerAdvect -    0.0000 [min] /    0.0002 [max] (secs)\r\n\t       EP:       SwarmAdvector_AdvectionFinish -    0.0033 (secs)\r\n\t       EP:       SwarmAdvector_AdvectionFinish -    0.0576 (secs)\r\n\t       EP:          MaterialPointsSwarm_Update -    0.0000 (secs)\r\n\t       EP:          MaterialPointsSwarm_Update -    0.0553 (secs)\r\nIn func WeightsCalculator_CalculateAll(): for swarm \"picIntegrationPoints\"\r\n\tCalculating weights for the particles in the 524288 global cells\r\n\t\tdone 10% (461 cells)...\r\n\t\tdone 20% (922 cells)...\r\n\t\tdone 30% (1383 cells)...\r\n\t\tdone 40% (1844 cells)...\r\n51: Something went horribly wrong in _PCDVC_Calculate3D: Problem has an under resolved cell (Cell Id = 2154), check or tune your population control parameters\r\n...\r\n```\r\nTheoretically, if functioning well, when particles is too few or their distribution in cell is not even,\r\nmore particles will be repopulated. It seems that repopulation doesn't work properly due to exsitence of the **under resolved cell (Cell Id = 2154)**.\r\n\r\nSo, how can I tune your population control parameters below to make underworld work more robustly? \r\n```\r\n\t<struct name=\"weights\" mergeType=\"replace\">\r\n\t\t<param name=\"maxDeletions\">0</param>\r\n\t\t<param name=\"maxSplits\">500</param>\r\n\t\t<param name=\"Inflow\">True</param>\r\n\t\t<param name=\"Type\">PCDVC</param>\r\n\t\t<param name=\"resolutionX\">10</param>\r\n\t\t<param name=\"resolutionY\">10</param>\r\n\t\t<param name=\"resolutionZ\">10</param>\r\n\t\t<param name=\"lowerT\">0.6</param>\r\n\t\t<param name=\"upperT\">5</param>\r\n\t\t<param name=\"Threshold\">0.95</param>\r\n\t\t<param name=\"CentPosRatio\">0.01</param>\r\n\t\t<param name=\"MaterialPointsSwarm\">materialSwarm</param>\r\n\t\t<param name=\"splitInInterfaceCells\">True</param>\r\n\t</struct>\r\n``` \r\nI have no idea about how `lowerT`, `lowerT`, `Threshold`, `maxDeletions`, `maxSplits`, `resolutionX`, etc., controls the repopulation of the particles.\r\n\r\nBest,\r\nQw"}}
{"actor":{"display_login":"jmansour"}}