Discrete Values for Mesh Motion
I encountered a problem with CFX (v11 SP1) and wanted to poll the forum crowd and see if they have any thoughts. I am working with a moving mesh model of a capsule, and trying to compare to an experimental launch. Thus, I have the trajectory of the capsule and want to try to replicate the pressures, etc. When I input the distance vs time as a user function (let's call it dist(t)), and then have the body move dist(t), there were strange pressure oscillations every few timesteps (like high pressure in the base region, low pressure at the nose). The rest of the steps had pressures that were reasonable and close to the expected values. I tested every parameter: mesh, timestep, models, turbulence models, and still these fluctuations occurred. Then I tried testing the mesh motion function itself by comparing two cases: one with a quadratic function input as a discrete set of points every 0.01 seconds and another with the same quadratic function as a CEL expression of time. The pressure oscillation occurred every 0.01 seconds at the step where the slope slightly changed on the discrete case and were gone completely on the CEL expression case. The timesteps in between the data points were fine because the code was just linearly interpolating, but when the slope changed at each data point ever so slightly, that would set off another of these pressure jumps. With the CEL expression, the function was smooth the whole way and never had these jumps.
I have never programmed mesh motion into a code, and I looked at the theory manual to see what it said. The only mention of a time derivative of the control volume was about the Geometric Conservation Law (GCL) but it was not clear to me whether this was used to derive any quantity or just as a check for convergence. I also passed this finding along to my CFX rep, but he had not ever heard of this problem. So the question: does anyone out there have an idea about why a differentiable function is required for mesh motion? Has anyone run into this before? Since I am continually amazed at how well some people know the ins and outs of this code on the forum, I hoped someone could shed some light on this for me.
I also wanted to put this out there in case anyone else ever has a similar problem so they don't have to spend two weeks thinking they are completely insane like I did.
Re: Discrete Values for Mesh Motion
It looks like you have hit the nail on the head - step variations in mesh motion cause oscillations. Even small step variations can cause significant variations in sensitive cases.
This is especially so with incompressible simulations as these small variations need to propagate out to the boundaries as that is the only place the volume changes can be made up. Compressible flows can make up for small volume changes by a small density change so the effect is much reduced.
So my comments as to what to try: 1) Either use a CEL function to define the motion or use more points on the interpolation function - even if these extra points are generated by a quadratic or spline curve fit to the original data. 2) (I assume your fluid is water) Define water as a compressible fluid and give it a density as a function of pressure. The bulk modulus of water is 2.2e9 (http://en.wikipedia.org/wiki/Bulk_modulus) so this is effect is real.
Re: Discrete Values for Mesh Motion
Thanks Glenn, great insight as usual!
You are correct, the fluid is water. The incompressibility probably highlighted the issue more and made a larger impact that others may have encountered in similar situations with air as a compressible fluid. The trick does seem to be fitting the data I get to a quadratic function externally and then implementing the motion as a CEL function.
|All times are GMT -4. The time now is 15:33.|