Correct the value of Velocity gradient at wall iteratively
Hi,
I have a problem where I simulate a flat plate boundary layer with no slip condition at the wall. I calculate the value of wall shear iteratively and I need it to update to the solution. I cannot put an UDF at the wall since it will change the boundary condition from no-slip. The velocity at the wall still stays at 0. I want a way to update the dU/Dy a the wall without changing the value of wall velocity from zero (meaning it has to change the value of velocity of node adjacent to wall) Thank you |
Wall shear and no-slip
What is implied by
Quote:
|
Quote:
My problem statement is correcting the gradient for a pretty coarse grid where I know that the value computed using fluent is wrong. Fluent calculates the value of the velocity of the node next to the wall using the gradient computed at the wall right? And the wall shear is calculated using the gradient at the wall. I want to find a way where fluent accepts the new value of gradient of the wall from the user and uses the new value to calculate the next iteration. Can you explain how I'm overconstraining the solver. If you can explain what variables I'm overconstraining I can fix that by giving the correct values accordingly when I need to change the gradient. Thanks |
Vinerm,
Thanks for you reply. Yes I do believe the velocity field is wrong coz I'm working with a very coarse mesh and I want to correct it. If my understanding is correct, you are saying if I can affect the gradient at the wall by changing the velocity at the first cell center? Is it correct to assume that changes to values of fluent variables should be done only to cell centres and not node values coz the gradient using least square uses cell center values? I want to eventually improve the wall shear for a coarse mesh by changing the gradient. And you said the wall functions might also work with that which might produce divergence issues. Is there a way where I can specify just the gradient at the wall and fluent just uses the value given by UDF and then starts computing the solution ignoring the wall functions? |
Gradient at the Wall
If you want to specify gradient at the wall, then that is straightforward; just apply shear stress after selecting Specified Shear condition. However, this will only maintain shear and not no-slip. Why are you using a coarse mesh? And how coarse is it?
|
I do not want to use specified shear as a boundary condition coz it changes the flow completely. My aim is to improve a coarse mesh and that's the reason I want to correct the velocity gradient which directly affects the wall shear. If I can find a way to decouple or force fluent not to use wall functions, then my problem will not be overconstrained right?
Is there a way to do that? My mesh is pretty coarse and I'm sure it does not give a good solution |
Gradient at the Wall
Specified Shear is same as wall gradient, except that it is multiplied by the viscosity of the fluid. There is at least one way to disable wall-function; use a UDF for wall function and, actually, you can use that UDF to implement what you want to implement. Keep no-slip at the wall and use DEFINE_WALL_FUNCTIONS to apply a gradient.
|
Quote:
Thanks |
Rsm
|
Quote:
If we are using a define adjust to alter the velocity such that the gradient of velocity is in turn affected, what is the best way to change it. Does fluent calculate using cell centre values or node values? I was under the impression that define adjust should not be done to node values since node values are as a result of calculation from the cell centre values. Thank you |
Velocity adjustment
Fluent solves at cell centers, so, it is only by changing the values at the cell center would you be able to affect the solution. However, DEFINE_ADJUST is executed before every iteration, i.e., whatever changes you make will be lost since the immediately followed flow iteration will update the solution. So, one solution to do this is as follows.
1. Separate out the region that contains first cell adjacent to the wall. Make it a separate cell zone. 2. Within this cell zone, fix the velocities. Once fixed, Fluent will not solve flow in this cell zone but would expect the flow velocities to be given by user. 3. For fixed velocities, use DEFINE_PROFILE function and define the velocities at the cell centers. I don't guarantee that this method will work but it might. A more sophisticated solution would be to change the coefficients of the matrix such that the solution achieved is as per your requirement. But this requires knowledge of discretization schemes and possibly even multigrid. It is quite possible that there is some straightforward solution for this, such as, by applying the DEFINE_PROFILE at the wall and using that function to set velocity at the wall to 0 (for no-slip), also using the same function to change velocity at the centers of the adjacent cells, and set the matrix coefficients in the adjacent cells such that Fluent does not update the solution in those cells while iterating, such as, by modifying value of URF to 0 only in the cells adjacent to the boundary. |
Quote:
Moreover if I find the cell centre velocities adjacent to wall, it is by intuition and obvious it's non-zero. I don't follow why DEFINE_ADJUST cannot help? In the manual it says define adjust is also one way to alter a solution right. So what you say works by overwriting, we cannot do any kind of manipulation to the solution through define adjust and wouldn't it be a waste, since the only possible way of changing the solution is a writing a UDF for define profile for each boundary face? For splitting into two cell zones Do you mean separating the grid into two domains such that I get two domains or cell zones in my cell zone interfaces? I've seen from my previous simulations that when I split a grid into two parts there would be 3 cell zones with one zone as the interface joining the two other parts (like a line) Can you explain a little bit more why and how to proceed this way? Thank you |
Define_profile
You can use DEFINE_ADJUST or DEFINE_PROFILE, however, DEFINE_PROFILE makes it easier to access the cells adjacent to the wall since it already provides access to the wall faces where you need to set no-slip condition. Furthermore, single function will set both, no-slip as well as gradient. Since you want to apply your own formulation for gradient, and you know that the velocity at the wall is 0, you can calculate the velocity at the center of the adjacent cell using definition of gradient, i.e., ratio of velocity at the cell center and the distance of the cell center from the wall.
Whether you use DEFINE_PROFILE or DEFINE_ADJUST, Fluent will overwrite the cell center values based on the current solution. Since the field is solved at the centers of the cells, there is no modification done at the face centers of the external boundaries. Therefore, user can and has to provide values at the face centers of the external boundaries. But values at the cell centers are always solved by Fluent. So, if you don't want Fluent to update the velocities at the centers of the first cell layer from the wall, you need to separate it out from the rest of the domain. When a cell zone is separated into two or more cell zones, Fluent does not create interfaces. It creates interior and user does not need to do anything with that. |
All times are GMT -4. The time now is 10:13. |