CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM Programming & Development

AMI Motions: Ramped Rotation Speeds and Nested Sliding Interfaces

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

LinkBack Thread Tools Display Modes
Old   September 24, 2013, 01:30
Default AMI Motions: Ramped Rotation Speeds and Nested Sliding Interfaces
Senior Member
Join Date: Sep 2010
Posts: 158
Rep Power: 9
lordvon is on a distinguished road
Hello all,
Here I present two custom solid body motion functions for AMI that I have been using. Hopefully they are helpful, but also demonstrate how straightforward it is to make your own mesh motions, if you ever needed to but have not. They can be found at:

-rampedAxisRotationMotion (ramped rotation rates): linearly increasing rotation rate given a start time, end time, start rotational velocity, and end rotational velocity (and of course the center of rotation). Before the specified start time, the rotational velocity is the start rotational velocity. After the end time, the rotational velocity is the end rotational velocity. I think this is good for those applications in which you must capture the transient effects of a rotating device, and measure the performance by the mean of the lift,power,etc. To do this you must get to the point where the flow fully develops and the mean does not change (after several revolutions, for example); if you ramp the rotational velocity (after perhaps initialization with potentialFoam), you will not have to deal with highly nonphysical transient spikes in velocity that will lower your time step if you are using max Courant limit. Instead, you can more stably resolve flow features while using larger time steps to reach your desired convergent performance state faster. Can use for any number of specified rotors.

-nestedRotationMotion (nested sliding interfaces): This code allows you to have one or more rotating regions (the 'nested' regions) inside of another rotating region (the 'house' region). The nested regions may thus translate with the rotation of the house region. If you look in the source code for this one you can see how the required entries are used. This is not that general, as it only allows for one level of nesting, but it should be straightforward to implement more levels (nested inside nested inside house, if that makes things clearer).

Directions for compiling and using my codes are included within the corresponding code directories on GitHub. 'remake' is the only script you have to run to compile. After that you include the appropriate library in the controlDict (details in the code folders), and then you should be ready to use them (via proper configuration of your constant/dynamicMeshDict file).
lordvon is offline   Reply With Quote


Thread Tools
Display Modes

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 Off
Trackbacks are On
Pingbacks are On
Refbacks are On

All times are GMT -4. The time now is 22:57.