idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.72k stars 1.04k forks source link

Applying Coupled Condition on Nodeset #7748

Open tim-hsu opened 8 years ago

tim-hsu commented 8 years ago

Description of the enhancement or error report

Enhancement - A "NodalInterfaceKernel" to couple block-restricted variables that meet at a nodeset (rather than sideset).

Rationale for the enhancement or information for reproducing the error

It can be used to simulate physics that are geometrically limited to 1D or 0D (thus nodeset). E.g., a chemical reaction involving 3 or more reactants that each can only exist in separate subdomains. A good example is the oxygen reduction reaction in solid oxide fuel cells, where oxygen gas, oxygen vacancies (or ions), and electrons are involved and supplied from 3 separate phases. This forces the reaction site to be a line in the mesh.

Identified impact

(i.e. Internal object changes, limited interface changes, public API change, or a list of specific applications impacted)

YaqiWang commented 8 years ago

I do not think you can actually do this, i.e. just saying the values match on the node. Think about zero value one the node and then solve the subdomains independently with this zero value. You have 2N (where N is the number of nodes in the node set) but only have N equations. What you should do instead is to use Lagrange multiplier approach, defining a variable for this multiplier on the node set and the residual corresponding to the multiplier is the difference of the variables on the node. This has been done with constraints in a more general way, i.e. mortar FEM, without assuming the node positions on two subdomains match. I might be wrong on understanding what you intend to do, but want to caution you.

lindsayad commented 8 years ago

I've used a version of MatchedValueBC (see here) successfully in my own simulations and verified that the Dirichlet condition I'm trying to enforce is satisfied.

lindsayad commented 8 years ago

Note that I generally use a logarithmic representation of my species concentrations, thus the "strange" form of the residual

lindsayad commented 8 years ago

It should also be added that in my simulations this condition has always been implemented in tandem with a continuity of flux condition implemented through an InterfaceKernel. Perhaps this addresses your concern @YaqiWang that there are not enough conditions at the interface. An interface, serving as a boundary for two different domains, should generally have two conditions to specify a unique BVP.