{"action":"created","issue":{"url":"https://api.github.com/repos/libMesh/libmesh/issues/545","repository_url":"https://api.github.com/repos/libMesh/libmesh","labels_url":"https://api.github.com/repos/libMesh/libmesh/issues/545/labels{/name}","comments_url":"https://api.github.com/repos/libMesh/libmesh/issues/545/comments","events_url":"https://api.github.com/repos/libMesh/libmesh/issues/545/events","html_url":"https://github.com/libMesh/libmesh/issues/545","id":70778452,"number":545,"title":"Constraint to enforce matching of gradients across boundaries","user":{"login":"dschwen","id":202302,"avatar_url":"https://avatars.githubusercontent.com/u/202302?v=3","gravatar_id":"","url":"https://api.github.com/users/dschwen","html_url":"https://github.com/dschwen","followers_url":"https://api.github.com/users/dschwen/followers","following_url":"https://api.github.com/users/dschwen/following{/other_user}","gists_url":"https://api.github.com/users/dschwen/gists{/gist_id}","starred_url":"https://api.github.com/users/dschwen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dschwen/subscriptions","organizations_url":"https://api.github.com/users/dschwen/orgs","repos_url":"https://api.github.com/users/dschwen/repos","events_url":"https://api.github.com/users/dschwen/events{/privacy}","received_events_url":"https://api.github.com/users/dschwen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-04-24T19:50:52Z","updated_at":"2016-04-22T01:46:19Z","closed_at":null,"body":"I need a construct to enforce the \"periodicity\" of the gradients of a non-linear variable without enforcing the periodicity of the values. Applications are for physics where the value does not appear in the model, but only the gradient does. Like for example the electric field (as gradient of a potential) or the strain (as gradient of the displacements). \r\n\r\nI was told, the periodic boundary system should be helpful (to provide the matching nodes/sides) but that such a constraint was not really a boundary condition, but rather would have to be implemented using a lagrange multiplier (using a boundary constrained face variable).\r\n\r\nIs the periodic BC module in libMesh flexible enough to be (ab)used to extract the matching nodes? Is libMesh/MOOSE even ready to implement this sort of constraint?\r\n\r\n@roystgnr , @jwpeterson , @benkirk, @dknez , @permcody , @andrsd \r\n\r\nP.S.: we had a somewhat related request (periodicity with offsets) here: https://github.com/idaholab/moose/issues/1345"},"comment":{"url":"https://api.github.com/repos/libMesh/libmesh/issues/comments/213207128","html_url":"https://github.com/libMesh/libmesh/issues/545#issuecomment-213207128","issue_url":"https://api.github.com/repos/libMesh/libmesh/issues/545","id":213207128,"user":{"login":"roystgnr","id":2367346,"avatar_url":"https://avatars.githubusercontent.com/u/2367346?v=3","gravatar_id":"","url":"https://api.github.com/users/roystgnr","html_url":"https://github.com/roystgnr","followers_url":"https://api.github.com/users/roystgnr/followers","following_url":"https://api.github.com/users/roystgnr/following{/other_user}","gists_url":"https://api.github.com/users/roystgnr/gists{/gist_id}","starred_url":"https://api.github.com/users/roystgnr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roystgnr/subscriptions","organizations_url":"https://api.github.com/users/roystgnr/orgs","repos_url":"https://api.github.com/users/roystgnr/repos","events_url":"https://api.github.com/users/roystgnr/events{/privacy}","received_events_url":"https://api.github.com/users/roystgnr/received_events","type":"User","site_admin":false},"created_at":"2016-04-22T01:46:19Z","updated_at":"2016-04-22T01:46:19Z","body":"Oh, I was totally misunderstanding what you wanted, then.  I thought you wanted *all* components of the gradient to be periodic, not just the tangential component.  I'm still not sure under what conditions you'll have a properly constrained BVP, but at least now the question is \"won't the operator have a 1-D kernel?\" rather than \"are you even in the right Hilbert space?\"\r\n\r\nFor the moment I think the fastest way to get up and running is going to be weak enforcement.  In the long term, I've wanted to add the ability to do a user-defined \"transformation\" in variable space, not just in physical space.  My goal was to enable periodicity in polar coordinates of cartesian velocity vectors, but the same capability would allow you to add a single SCALAR variable and use it to represent the jump from one side to the other."}}