{"action":"created","issue":{"url":"https://api.github.com/repos/idaholab/moose/issues/5985","labels_url":"https://api.github.com/repos/idaholab/moose/issues/5985/labels{/name}","comments_url":"https://api.github.com/repos/idaholab/moose/issues/5985/comments","events_url":"https://api.github.com/repos/idaholab/moose/issues/5985/events","html_url":"https://github.com/idaholab/moose/pull/5985","id":117928469,"number":5985,"title":"Warehouse re-factor and enable/disable object Control","user":{"login":"aeslaughter","id":341333,"avatar_url":"https://avatars.githubusercontent.com/u/341333?v=3","gravatar_id":"","url":"https://api.github.com/users/aeslaughter","html_url":"https://github.com/aeslaughter","followers_url":"https://api.github.com/users/aeslaughter/followers","following_url":"https://api.github.com/users/aeslaughter/following{/other_user}","gists_url":"https://api.github.com/users/aeslaughter/gists{/gist_id}","starred_url":"https://api.github.com/users/aeslaughter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeslaughter/subscriptions","organizations_url":"https://api.github.com/users/aeslaughter/orgs","repos_url":"https://api.github.com/users/aeslaughter/repos","events_url":"https://api.github.com/users/aeslaughter/events{/privacy}","received_events_url":"https://api.github.com/users/aeslaughter/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-11-19T22:59:59Z","updated_at":"2015-11-20T20:36:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/idaholab/moose/pulls/5985","html_url":"https://github.com/idaholab/moose/pull/5985","diff_url":"https://github.com/idaholab/moose/pull/5985.diff","patch_url":"https://github.com/idaholab/moose/pull/5985.patch"},"body":"This is a re-organized and much improved version of the Warehouse re-factor to enable generic object enable/disable controls.\r\n\r\nLet me explain a bit, there is too much, let me sum up:\r\n\r\n1. The most critical portion of this change is the creation of `MooseObjectStorage`, which is a container for storing `MooseObject`s that automatically manages the \"all\", \"boundary\", \"block\" vectors of objects.\r\n(Note, there is also an `ObjectStorage` which I plan to use for non-MooseObject stuff, e.g. Actions).\r\n\r\n2. On top of `MooseObjectStorage` there is an `ExecuteMooseObjectStorage` that simply contains a set of `MooseObjectStroage` containers, for each of the objects execution flag.\r\n3. The `WarehouseBase` is completely abstract, in general the individual warehouses will still be highly custom. The warehouse then contain as many `MooseObjectStorage` containers as needed to accomplish the management of the various types (see AuxKernelWarehouse). These storage objects are then what is passed to the various computing threaded compute objects.\r\n\r\nI am sure there will be some complaints, but be aware I went through about 5 iterations on this design. It was not easy to come up with something generic, but I really think that this is close."},"comment":{"url":"https://api.github.com/repos/idaholab/moose/issues/comments/158517609","html_url":"https://github.com/idaholab/moose/pull/5985#issuecomment-158517609","issue_url":"https://api.github.com/repos/idaholab/moose/issues/5985","id":158517609,"user":{"login":"aeslaughter","id":341333,"avatar_url":"https://avatars.githubusercontent.com/u/341333?v=3","gravatar_id":"","url":"https://api.github.com/users/aeslaughter","html_url":"https://github.com/aeslaughter","followers_url":"https://api.github.com/users/aeslaughter/followers","following_url":"https://api.github.com/users/aeslaughter/following{/other_user}","gists_url":"https://api.github.com/users/aeslaughter/gists{/gist_id}","starred_url":"https://api.github.com/users/aeslaughter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeslaughter/subscriptions","organizations_url":"https://api.github.com/users/aeslaughter/orgs","repos_url":"https://api.github.com/users/aeslaughter/repos","events_url":"https://api.github.com/users/aeslaughter/events{/privacy}","received_events_url":"https://api.github.com/users/aeslaughter/received_events","type":"User","site_admin":false},"created_at":"2015-11-20T20:36:48Z","updated_at":"2015-11-20T20:36:48Z","body":"The following decisions were made:\r\n1. `MooseObjectWarehouse` should be the base class and Elemental and Nodal AuxKerenls (an other similar system) should be separated into multiple warhouses.\r\n2. ActionWarehouse and other non-MooseObject stuff should just remain a unique warehouse design.\r\n3. A method for not allowing enable/disable of objects should exist for Executioner, FEProblem, etc.\r\n4. There should be a means to display what is enabled/disabled as the solve progress (another issue)\r\n![img_0054](https://cloud.githubusercontent.com/assets/341333/11311232/bc5e2464-8f8b-11e5-92b8-4105cab593d4.jpg)\r\n"}}