{"action":"created","issue":{"url":"https://api.github.com/repos/OPM/IFEM/issues/14","repository_url":"https://api.github.com/repos/OPM/IFEM","labels_url":"https://api.github.com/repos/OPM/IFEM/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/OPM/IFEM/issues/14/comments","events_url":"https://api.github.com/repos/OPM/IFEM/issues/14/events","html_url":"https://github.com/OPM/IFEM/issues/14","id":150026025,"number":14,"title":"Remove 'direction' keyword from neumann boundary conditions","user":{"login":"VikingScientist","id":3500376,"avatar_url":"https://avatars.githubusercontent.com/u/3500376?v=3","gravatar_id":"","url":"https://api.github.com/users/VikingScientist","html_url":"https://github.com/VikingScientist","followers_url":"https://api.github.com/users/VikingScientist/followers","following_url":"https://api.github.com/users/VikingScientist/following{/other_user}","gists_url":"https://api.github.com/users/VikingScientist/gists{/gist_id}","starred_url":"https://api.github.com/users/VikingScientist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VikingScientist/subscriptions","organizations_url":"https://api.github.com/users/VikingScientist/orgs","repos_url":"https://api.github.com/users/VikingScientist/repos","events_url":"https://api.github.com/users/VikingScientist/events{/privacy}","received_events_url":"https://api.github.com/users/VikingScientist/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-04-21T09:58:32Z","updated_at":"2016-04-21T11:11:36Z","closed_at":null,"body":"Neumann boundary conditions comes in two types. Either you have the exact solution, or you specify some fluxes/tractions.\r\n\r\n**Poisson**\r\nExact solution available: You want to specify [du/dx, du/dy, du/dz] and have IFEM treat this appropriately. Input vector functions\r\nHeat flux: You want to specify du/dn as some flux into/out of your domain. Input scalar functions\r\n\r\n**Elasticity**\r\nExact solution available: You want to specify the stresses: sigma and have IFEM dot this with the normal vector. Input tensor functions.\r\nTractions: You want to specify sigma*n=[fx,fy,fz] as some directional forces on your boundary. Input vector functions.\r\n\r\nProposed solution:\r\nCount the number of components (for instance pipe | symbols) specified by the user in the input file neumann tag and treat it as either pre-multiplied with the normal vector, or post-multiplied with it. For scalar equations one can have vector or scalar neumann conditions. For vector equations one can have tensor or vector neumann conditions.\r\n\r\nRemove the 'direction' keyword altogether."},"comment":{"url":"https://api.github.com/repos/OPM/IFEM/issues/comments/212862225","html_url":"https://github.com/OPM/IFEM/issues/14#issuecomment-212862225","issue_url":"https://api.github.com/repos/OPM/IFEM/issues/14","id":212862225,"user":{"login":"VikingScientist","id":3500376,"avatar_url":"https://avatars.githubusercontent.com/u/3500376?v=3","gravatar_id":"","url":"https://api.github.com/users/VikingScientist","html_url":"https://github.com/VikingScientist","followers_url":"https://api.github.com/users/VikingScientist/followers","following_url":"https://api.github.com/users/VikingScientist/following{/other_user}","gists_url":"https://api.github.com/users/VikingScientist/gists{/gist_id}","starred_url":"https://api.github.com/users/VikingScientist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VikingScientist/subscriptions","organizations_url":"https://api.github.com/users/VikingScientist/orgs","repos_url":"https://api.github.com/users/VikingScientist/repos","events_url":"https://api.github.com/users/VikingScientist/events{/privacy}","received_events_url":"https://api.github.com/users/VikingScientist/received_events","type":"User","site_admin":false},"created_at":"2016-04-21T11:11:36Z","updated_at":"2016-04-21T11:11:36Z","body":"What I want is to be able to specify neumann conditions with or without dotted by the normal vector.\r\n\r\nTo answer the other things you address:\r\n1. Grepping for | might not be optimal, and I am open for other suggestions such as providing a keyword. The current way is specifying a 'direction' keyword which is at best confusing, and at worst misleading and a source of bugs. It is a magic parameter which could be zero, positive or negative with different behaviour in each case. There are two acceptable neumann conditions and two only. These are pre-dotted with n and post-dotted with n.\r\n\r\n2. The neumann conditions come from integration by parts, changing volume derivatives to surface fluxes. I don't see how this results in tangential terms. Could you provide a detailed example of any tangential neumann terms?"}}