AMI Motions: Ramped Rotation Speeds and Nested Sliding Interfaces
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: https://github.com/lordvon/OpenFOAM_Additions
-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).
|All times are GMT -4. The time now is 10:45.|