{"action":"created","issue":{"url":"https://api.github.com/repos/dealii/dealii/issues/3271","repository_url":"https://api.github.com/repos/dealii/dealii","labels_url":"https://api.github.com/repos/dealii/dealii/issues/3271/labels{/name}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/3271/comments","events_url":"https://api.github.com/repos/dealii/dealii/issues/3271/events","html_url":"https://github.com/dealii/dealii/issues/3271","id":184244225,"number":3271,"title":"Improve Generic Linear Algebra","user":{"login":"tjhei","id":1531285,"avatar_url":"https://avatars.githubusercontent.com/u/1531285?v=3","gravatar_id":"","url":"https://api.github.com/users/tjhei","html_url":"https://github.com/tjhei","followers_url":"https://api.github.com/users/tjhei/followers","following_url":"https://api.github.com/users/tjhei/following{/other_user}","gists_url":"https://api.github.com/users/tjhei/gists{/gist_id}","starred_url":"https://api.github.com/users/tjhei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tjhei/subscriptions","organizations_url":"https://api.github.com/users/tjhei/orgs","repos_url":"https://api.github.com/users/tjhei/repos","events_url":"https://api.github.com/users/tjhei/events{/privacy}","received_events_url":"https://api.github.com/users/tjhei/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-10-20T14:24:35Z","updated_at":"2016-10-20T16:48:27Z","closed_at":null,"body":"This header is an accident from incomplete and not well-thought out work I did a long time ago. I created it for the following reasons:\r\n1. To be able to run with PETSc or Trilinos (useful!)\r\n2. To make the interface compatible (I never finished this).\r\n3. To improve testing (see tests/gla).\r\n4. Ideally to also be able to switch between serial (``Vector``, etc.) and parallel linear algebra.\r\n\r\n There are many things we should look at and decide what to do:\r\n- Do we want to promote it (it is used in step-40 but not anywhere else)? If yes, it should be used in every parallel example.\r\n- The ifdef logic at the top of step-40 is neat but confusing. Should this move into this header? I don't really like macro magic, but it is very convenient and the remainder of step-40 looks very clean because of this.\r\n- Other ideas for improvement?\r\n"},"comment":{"url":"https://api.github.com/repos/dealii/dealii/issues/comments/255162394","html_url":"https://github.com/dealii/dealii/issues/3271#issuecomment-255162394","issue_url":"https://api.github.com/repos/dealii/dealii/issues/3271","id":255162394,"user":{"login":"davydden","id":8023934,"avatar_url":"https://avatars.githubusercontent.com/u/8023934?v=3","gravatar_id":"","url":"https://api.github.com/users/davydden","html_url":"https://github.com/davydden","followers_url":"https://api.github.com/users/davydden/followers","following_url":"https://api.github.com/users/davydden/following{/other_user}","gists_url":"https://api.github.com/users/davydden/gists{/gist_id}","starred_url":"https://api.github.com/users/davydden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davydden/subscriptions","organizations_url":"https://api.github.com/users/davydden/orgs","repos_url":"https://api.github.com/users/davydden/repos","events_url":"https://api.github.com/users/davydden/events{/privacy}","received_events_url":"https://api.github.com/users/davydden/received_events","type":"User","site_admin":false},"created_at":"2016-10-20T16:48:27Z","updated_at":"2016-10-20T16:48:27Z","body":"> Why? You can still use LinearAlgebraPETSc if you prefer. Alternatively, one could put it into a separate header of course.\r\n\r\nyou are right, i mixed it up, the step-40 is \r\n```\r\nnamespace LA\r\n{\r\n#if defined(DEAL_II_WITH_PETSC) && !(defined(DEAL_II_WITH_TRILINOS) && defined(FORCE_USE_OF_TRILINOS))\r\n  using namespace ::LinearAlgebraPETSc;\r\n#  define USE_PETSC_LA\r\n#elif defined(DEAL_II_WITH_TRILINOS)\r\n  using namespace ::LinearAlgebraTrilinos;\r\n#else\r\n#  error DEAL_II_WITH_PETSC or DEAL_II_WITH_TRILINOS required\r\n#endif\r\n}\r\n```\r\nso one can indeed use `LinearAlgebraPETSc` and `LinearAlgebraTrilinos `.\r\n\r\nWell, i would still not put it into the main header. For example in user's code the decision could be based on some other logic of `#if...`. Maybe one auxiliary header with `LA` namespace is a better place for this."}}
{"actor":{"display_login":"davydden"}}