RotatingWallVelocity Boundary Condition: mathematical and physical explanation?

 Register Blogs Members List Search Today's Posts Mark Forums Read

 June 19, 2015, 07:27 RotatingWallVelocity Boundary Condition: mathematical and physical explanation? #1 New Member   Join Date: Jun 2015 Posts: 1 Rep Power: 0 Dear All Foamers, I am using the 'rotatingWallVelocity' boundary condition for a rotating device. The description of the boundary condition available in OpenFOAM is; "Replaces the normal of the patch value so the flux across the patch is zero" I would appreciate if someone could explain how this type of boundary condition actually takes place, both from a mathematical point of view and from a physical point of view. In particular, I am curious on how the effect of the boundary condition is reflected on the flow field around the patch. Many thanks in advance!

November 11, 2015, 23:29
#2
Member

methma Rajamuni
Join Date: Jul 2015
Location: Victoria, Australia
Posts: 32
Rep Power: 2
Quote:
 Originally Posted by MrScience Dear All Foamers, I am using the 'rotatingWallVelocity' boundary condition for a rotating device. The description of the boundary condition available in OpenFOAM is; "Replaces the normal of the patch value so the flux across the patch is zero" I would appreciate if someone could explain how this type of boundary condition actually takes place, both from a mathematical point of view and from a physical point of view. In particular, I am curious on how the effect of the boundary condition is reflected on the flow field around the patch. Many thanks in advance!
Hi,

If you look at the rotatingWallVelocityFvPatchVectorField.C file you will see how they have done it mathematically. Usually a boundary condition is updated in the member function updateCoeffs().

Code:
```void Foam::rotatingWallVelocityFvPatchVectorField::updateCoeffs()
{
if (updated())
{
return;
}

const scalar t = this->db().time().timeOutputValue();
scalar om = omega_->value(t);

// Calculate the rotating wall velocity from the specification of the motion
const vectorField Up
(
(-om)*((patch().Cf() - origin_) ^ (axis_/mag(axis_)))
);

// Remove the component of Up normal to the wall
// just in case it is not exactly circular
const vectorField n(patch().nf());
vectorField::operator=(Up - n*(n & Up));

fixedValueFvPatchVectorField::updateCoeffs();
}```
according to the angular velocity, omega and the axis of rotation they calculate the surface velocities on the patch.
Surface velocity of a cell face, Up = omega * (radius x axis), where radius = (patch().Cf() - origin_). radius x axis, '(patch().Cf() - origin_) ^ (axis_/mag(axis_))' give the direction of the velocity.

The they corrected Up if it is not tangential to the surface, by removing the component of Up along the normal direction to the surface. where n.Up (n & Up) give the magnitude along the normal direction.

In the physical point of view this is a no-slip boundary condition which assume the velocity on the surface of the patch is same as the velocity on the wall. This boundary condition is a no-penetration boundary condition as well since fluid particle do not penetrate to the wall because no flow velocity on the surface normal direction.

Best,

Methma

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post chandra shekhar pant Main CFD Forum 0 October 3, 2012 03:20 Bounecer Main CFD Forum 6 June 28, 2010 09:24 pxyz Main CFD Forum 37 July 7, 2006 08:42 Jan Ramboer Main CFD Forum 11 August 16, 1999 08:59

All times are GMT -4. The time now is 21:42.