Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FV: Implement method for computing solution values on boundary faces #16169

Closed
lindsayad opened this issue Nov 12, 2020 · 0 comments · Fixed by #15644
Closed

FV: Implement method for computing solution values on boundary faces #16169

lindsayad opened this issue Nov 12, 2020 · 0 comments · Fixed by #15644
Labels
C: Framework P: normal A defect affecting operation with a low possibility of significantly affects. T: task An enhancement to the software.

Comments

@lindsayad
Copy link
Member

lindsayad commented Nov 12, 2020

Reason

Right now a user has two choices: apply a Dirichlet condition or get implicit application of a zero normal-gradient condition. The latter is fundamentally wrong for physics like no-slip flows in which the pressure continually drops in the direction of flow. The former works ok for fully-developed flow with a single outflow boundary. However, in the future @GiudGiud will have multiple channel outflows and its nonsensical to try and apply multiple dirichlet pressure outflow conditions. Additionally, inlet physics will be slightly off, even for single channel cases, because the implicit assumption of zero normal pressure gradient at the inlet affects the solution. This can be seen in the no-slip diverging diverging channel test contained within #15644. The inlet mass flow rate should be equal to pi, and this is what is computed for free slip because the assumption of zero pressure normal gradient at the inlet is valid in that case. However, for no-slip the computed inlet mass flow rate is equal to 3.161216, which is slightly off due to affect of the invalid zero normal pressure gradient assumption.

So in summary: How do we compute the solution at boundary faces?

Design

We should research what projects like OpenFOAM do for this. Perhaps we will need some higher order construction of the solution.

Impact

Implement what intuitively to me feels like a very fundamental FV capability. For flow physics, this should allow us to implement correct inlet and outlet boundary conditions.

As a slight digression, we have two ways of applying outflow boundary conditions in our CGFEM Navier-Stokes implementation, both of which make more sense to me than what we can currently do for FV:

  • NoBCBC: essentially just say flux = flux. This would lead to a non-unique solution for the strong form of the equations, but is meaningful for weak forms
  • Natural boundary condition: normal traction force is zero

Neither of these outflow conditions constrain the pressure in anyway. Instead the only thing constraining the pressure is the mass conservation equation, which is exactly how it should be for the incompressible Navier-Stokes equations in which the pressure is just a Lagrange Multiplier ensuring that mass conservation is satisfied. (Similarly setting a Dirichlet condition for inlet velocity in CGFEM also does not constrain the pressure.)

@lindsayad lindsayad added T: task An enhancement to the software. P: normal A defect affecting operation with a low possibility of significantly affects. labels Nov 12, 2020
@lindsayad lindsayad added this to To do in FY 21 NEAMS TH Pronghorn via automation Nov 12, 2020
@lindsayad lindsayad changed the title Proper outflow conditions for NSFV FV: Implement method for computating solution values on boundary faces Nov 14, 2020
@lindsayad lindsayad changed the title FV: Implement method for computating solution values on boundary faces FV: Implement method for computing solution values on boundary faces Nov 19, 2020
@lindsayad lindsayad linked a pull request Dec 4, 2020 that will close this issue
4 tasks
@lindsayad lindsayad moved this from To do to In progress in FY 21 NEAMS TH Pronghorn Dec 4, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 4, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 8, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 9, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 9, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 15, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 15, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 16, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Dec 16, 2020
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 5, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 5, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 5, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 5, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 11, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 11, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 12, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 12, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 14, 2021
lindsayad added a commit to lindsayad/moose that referenced this issue Jan 14, 2021
FY 21 NEAMS TH Pronghorn automation moved this from In progress to Done Jan 15, 2021
jain651 pushed a commit to jain651/moose that referenced this issue Apr 19, 2021
jain651 pushed a commit to jain651/moose that referenced this issue Apr 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Framework P: normal A defect affecting operation with a low possibility of significantly affects. T: task An enhancement to the software.
Development

Successfully merging a pull request may close this issue.

1 participant