|
[Sponsors] |
Position and Forces in a Transient Problem with a Moving Mesh |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 10, 2023, 17:27 |
Position and Forces in a Transient Problem with a Moving Mesh
|
#1 |
New Member
Join Date: Jul 2023
Posts: 3
Rep Power: 3 |
Hi everyone,
I am running a 2D transient simulation of an airfoil travelling along a circular path. This is a common way to analyze a vertical axis wind turbine in dynamic stall. This is accomplished by having an airfoil set in a rotating mesh. The mesh has two nonconformal interfaces: one between the background and a circular inner mesh that rotates, another between that inner mesh and the mesh containing the airfoil. result-example.png I've attached a picture of a preliminary result (it is only qualitatively good, the mesh hasn't been properly refined). Ideally, I would be able to retrieve the radial and tangential force components (see other picture attached), and I have several issues to contend with. I'm listing them here, and I'd be grateful of course if any of you are able to enlighten me on any of the following points:
force-explanation.png ANGULAR POSITION OF THE AIRFOIL My first solution is to cop out and start the solution from a known position, and associate flow-time directly with angular position. I could probably get a UDF to spit out the angular position as part of the results, but I'm completely new to UDFs. Having to start the simulation from a known position is mildly annoying because I'd rather let the solver fly for a large number of iterations without saving data for the flow to fully develop, but there are ways around that. The proper solution would be to locate the quarter-cord point (which is where the airfoil was fixed with respect to the horizontal when I made the geometry) of the airfoil and determine the angle it makes with the horizontal or the vertical line of the global coordinate system. I do not have the slightest idea how to do this. However, I did notice in CFD-Post that specific nodes can be selected. I then saw a UDF Macro/function that could be used in the solution to refer to specific nodes. As it happens, my mesh has nodes at both the leading and trailing edges of the airfoil (which is symmetrical), which made me think I should be able to get a UDF to get the coordinates of those nodes in the global frame of reference and then use trigonometry to recover the angular position of the airfoil. What do you think of such an approach? Are there other ways? I'm actually surprised I couldn't find some stored quantity that tracks how much the mesh has been moved from one case/data file or timestep to the next in radians or degrees. Does that in fact exist? FORCES ACTING ON THE AIRFOIL I attached a picture above of the tangential and radial forces I ideally would like to recover. I was completely baffled to discover that there does not appear to be a built-in way of specifying, even in CFD-Post, a frame of reference that moves with my rotating inner mesh. Is that really the case? Anyhow, my first copout would be to just export the total x-directed and y-directed forces acting on the airfoil in the global coordinate system, compute the combined magnitude, and retrieve the total force acting on the airfoil (which comes down to the same regardless of which orthogonal coordinate system I use). If I have a reliable way to have my angular position, I can use trigonometry to retrieve tangential and radial force components (maybe in Excel or MATLAB). However, what are my options to try and get Fluent to do that for me? In CFD-Post, it was very easy to compute that total force at individual time steps with an expression, but I could not get it to apply the expression to all timesteps in bulk (I realize that the real way to do this is during the solution process with a monitor/report, but is there a way for me to do this in bulk in CFD-Post?) I can get Fluent to export forces directed along a certain vector, and I wonder if I couldn't get Fluent to adjust that direction depending on the angle at which I start the problem. Again, I do not know how to do that in practice. It seems to me that I would have to define a UDF with DEFINE_REPORT_DEFINITION_FN and use Compute_Force_and_Moment (apparently an undocumented macro/function). Can you also confirm that even if I use a moving mesh, and that my airfoil is in a moving mesh, that the total x-component and y-component forces are computed correctly in the global frame of reference? I am getting strange values at the moment, which could be due to the problem not being correctly modelled by the turbulence model (unlikely, I've seen papers use the same method), my mesh not being refined enough (rather likely, the Courant and y-plus values are good but I haven't yet done a proper mesh refinement study), or because the values of velocity and forces are erroneously recorded due to the moving mesh. My airfoil wall is indeed modelled as a moving wall rotating with the adjacent fluid zone, but I remain suspicious. Is there anything else I should look out for to trust those values? --- I realize I've asked many questions. Especially on those relating to UDF use, I am of course not expecting anyone to just write the whole macro for me. First, I'm looking for pointers as to what you think about what I am doing, and answers to the simpler questions. Then maybe I'll think about implementing some of these. In my current situation, quick and dirty is the best. I'm leaning towards extrapolating angle from flow-time (maybe without a UDF, unless you think it's simple -- always nice to learn something new), and getting force components from the total force (which I indeed believe does not depend on the choice of orthogonal coordinates, moving at constant angular velocity or fixed) from force reports and processing in MATLAB. What do you think? Thank you very much, Astrakhan PS: To moderators, sorry if this is the second time you see this. I got no feedback indicating the thread post was successful when I tried sending it the first time. |
|
July 10, 2023, 23:14 |
|
#2 |
Senior Member
Lucky
Join Date: Apr 2011
Location: Orlando, FL USA
Posts: 5,754
Rep Power: 66 |
Firstly... any point probe will move with the mesh... now you know exactly where the airfoil is at all times.
Secondly, you specify the angular velocity of the rotating mesh so you should know the position of the airfoil at all times simply from the relation of physical time elapsed x the angular velocity Thirdly, there is a rotating reference frame Relax, take a deep breath, and stop thinking that a UDF solves all your problems, it never is. That mode of thinking is creating more problems for you! |
|
July 11, 2023, 05:15 |
|
#3 |
New Member
Join Date: Jul 2023
Posts: 3
Rep Power: 3 |
Thank you for answering!
I feel a bit silly for not thinking about this earlier but yes, I should be able to track the position of a point on my airfoil to track the airfoil's angular position. Even sillier: I might only start recording data at an arbitrary timestep to let the flow develop, but since the flow-time is recorded with every timestep, regardless of timestep changes during the solution process, there's no reason I can't reconstruct position from any case file using elapsed time. Sillier yet: no point in using UDFs when I'm able to get everything I need from a report file MATLAB. EDIT: A moving reference frame can indeed be specified in the solver (Setup>Reference Frames) Last edited by astrakhan; July 11, 2023 at 10:13. Reason: Typo in first sentence; Edit for future users without bumping post |
|
July 17, 2023, 10:22 |
|
#4 |
New Member
Join Date: Jul 2023
Posts: 3
Rep Power: 3 |
Hello again,
Angular position is being extrapolated directly from time and angular velocity. I had initially thought this to be inconvenient due to variations in time step, but because Fluent is storing both iteration count and flow time, this was in fact not an issue. I still am using the global frame of reference for my forces, and have not yet experimented with adding frames. I am getting suspiciously high values for my forces along the airfoil (which you will recall is moving, and following a circular trajectory at constant angular velocity). While my mesh arguably could use some more work, and smaller timesteps could be used, I am wondering if forces on walls contained in moving meshes don't always mix. The airfoil wall is contained in a fluid zone which rotates with a circular 'inner' fluid zone that rotates at constant angular velocity. The boundary condition on the airfoil wall is a moving wall immobile with respect to the adjacent cell zone, which was cited in another post as a possible oversight. Is there anything else I should think about, or is this enough setup to resolve forces on the wall? The force components are resolved in the global x and global y directions. Thanks, Astrakhan EDIT: Can't believe I didn't realize this before: the Fluent 2D analysis don't know how deep the airfoil is, and the force Fluent returns is force per unit span/depth of airfoil. Last edited by astrakhan; July 17, 2023 at 15:48. Reason: Found my answer, didn't want to bump the post. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
The CoP Does not exist: Validating Aerodynamic forces through a "line of action" | ds4719 | Main CFD Forum | 14 | February 18, 2022 19:05 |
Simple piston movement in cylinder- fluid models | arun1994 | CFX | 4 | July 8, 2016 03:54 |
CFX FSI Fatal Error | unbanana | CFX | 0 | October 3, 2015 06:57 |
Forces Acting on a Rotating Cylinder (Moving Mesh) | dreamchaser | CFX | 5 | April 25, 2015 07:01 |