how to apply surface traction/flux boundary condition in navier-stokes module

256 views
Skip to first unread message

Yao Fu

unread,
Nov 12, 2017, 9:13:44 AM11/12/17
to moose-users
Hi all,

I want to simulate the marangoni convection due to the temperature gradient at the top surface of incompressible fluid. One necessary step is to assign the shear stress at the top surface, which changes with temperature. I wonder if there is any way to enable the traction (or flux) boundary condition when using navier-stokes module. I saw it is briefly described in the INS mannual, but couldn't find any examples.

Thanks!
Yao

Peterson, JW

unread,
Nov 13, 2017, 10:31:05 AM11/13/17
to moose-users
On Sun, Nov 12, 2017 at 7:13 AM, Yao Fu <fuy...@gmail.com> wrote:
Hi all,

I want to simulate the marangoni convection due to the temperature gradient at the top surface of incompressible fluid. One necessary step is to assign the shear stress at the top surface, which changes with temperature. I wonder if there is any way to enable the traction (or flux) boundary condition when using navier-stokes module. I saw it is briefly described in the INS mannual, but couldn't find any examples.

You're right, there are no examples of this exact type of BC, but if you use the "Traction" form of the governing equations then the BC you describe is a straightforward IntegratedBC, where e.g.

\sigma \cdot n = \frac{d\gamma}{dT} \nabla T

and where \gamma is the surface tension. 

See also: the description surrounding Eq. (2.39) in https://repositories.lib.utexas.edu/handle/2152/18091

--
John

Yao Fu

unread,
Nov 13, 2017, 8:28:31 PM11/13/17
to moose-users
Thanks John!  A further question is on which variable I should apply this traction boundary condition. I've only seen velocity and pressure as variables in the examples. But it seems that this boundary condition should apply to stress tensor... 

Alexander Lindsay

unread,
Nov 14, 2017, 9:47:19 AM11/14/17
to moose...@googlegroups.com
The stress tensor (as you likely know) is computed from the velocities, so it's not an independent variable that we solve for. If you derive the weak form for the momentum equation and integrate the pressure term by parts, you end up with the following boundary contribution, where sigma = sigma(\vec{u}). The natural boundary condition (if you don't specify any boundary conditions in your input file) corresponds to setting this term equal to zero. However, if you know something about what sigma should be on the boundary then you should substitute that information into the equation below

Inline image 3

e.g. using John's substitution (I myself don't know anything about Marangoni convection :-):

Inline image 5

and then you would want to translate this into your own boundary condition. MOOSE residual syntax for a boundary condition like the above could look like:
```
_test[_i][_qp] * (_normals[_qp](_component) * _p[_qp] - d_gamma_d_T * _grad_T[_qp](_component))
```
so you are indeed specifying what the stress tensor needs to be, but this is still a boundary condition being applied to our velocity variables.

Note that if you don't integrate the pressure by parts then it disappears from the two equations above.

Alex

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/e437c1a7-576e-4c76-8af6-28bab099aca4%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Peterson, JW

unread,
Nov 14, 2017, 10:04:28 AM11/14/17
to moose-users
On Tue, Nov 14, 2017 at 7:47 AM, Alexander Lindsay <alexlin...@gmail.com> wrote:
The stress tensor (as you likely know) is computed from the velocities, so it's not an independent variable that we solve for. If you derive the weak form for the momentum equation and integrate the pressure term by parts, you end up with the following boundary contribution, where sigma = sigma(\vec{u}). The natural boundary condition (if you don't specify any boundary conditions in your input file) corresponds to setting this term equal to zero. However, if you know something about what sigma should be on the boundary then you should substitute that information into the equation below

Inline image 3

e.g. using John's substitution (I myself don't know anything about Marangoni convection :-):

Inline image 5

and then you would want to translate this into your own boundary condition.

This is close, but the BC I mentioned was on the "total" stress \sigma, which already includes the pressure. So you'd get the term above but without the pressure term. This is also consistent with the notation in the report you mentioned previously.

--
John

Peterson, JW

unread,
Nov 14, 2017, 10:34:11 AM11/14/17
to moose-users
Oh, and the other issue here is that the "vector" and "component" notation is conflated...

In a 3D problem, this boundary term would contribute to all three velocity component equations with the following terms:

vel_x: \int_{\partial\Omega} \psi_i  \gamma' dT/dx
vel_y: \int_{\partial\Omega} \psi_i  \gamma' dT/dy
vel_z: \int_{\partial\Omega} \psi_i  \gamma' dT/dz

where \gamma' := \frac{d\gamma}{dT}

--
John

Yao Fu

unread,
Nov 15, 2017, 8:15:20 AM11/15/17
to moose-users
Thanks John, I would need a little time to digest this and see if it would work :-)
Reply all
Reply to author
Forward
0 new messages