Git Product home page Git Product logo

Comments (9)

psakievich avatar psakievich commented on July 2, 2024

@lawrenceccheung

from amr-wind.

psakievich avatar psakievich commented on July 2, 2024

@StormMata have you tried adjusting Actuator.UniformCtDisk.diameters_to_sample?
This variable tells it how far upstream to sample for computing the free-stream velocity. 1 Diameter is very close. From your plot it looks like you want to set this to at least 3 or 4.

Another parameter you can adjust is the number of points in r. This really just determines how much blending there is radially since the uniform ct disk has no span-wise variations.

With 5 points in R you are going to have forcing applied over an extra 24m beyond the disk (linearly decaying)

from amr-wind.

lawrenceccheung avatar lawrenceccheung commented on July 2, 2024

Hi @StormMata,

Also, what you're showing with AMR-Wind is generally the correct behavior in front of the turbine. There's an induction zone ahead of the rotor which causes the flow to decelerate before it hits the turbine. There's a formula from Medici et al (2011)
$$u(x) = U_\infty\left[ 1 - a\left( 1 + \frac{x/R}{\sqrt{1 + (x/R)^2}} \right)\right]$$
which gives the centerline velocity in terms of the induction factor $a$ on the rotor. Our previous studies have usually shown that AMR-Wind matches that behavior pretty well using the UniformCtDisk model, with minor deviations at high Ct:
image

On the downstream side there isn't a perfect analytical formula which describes the wake velocity, but it does seem like the wake deficit is a bit stronger than it should be. However, that is sensitive to the numerical setup of the problem. I should note that your mesh is relatively coarse for this problem:

amr.n_cell                                  = 64 32 32      # Grid cells at coarsest AMRlevel
amr.max_level                               = 0             # Max AMR level in hierarchy
geometry.prob_lo                            = -1200.0 -1200.0 -1200.0
geometry.prob_hi                            =  2400.0  1200.0  1200.0
geometry.is_periodic                        = 0   1   0     # Periodicity x y z (0/1)

So that yields cell sizes of 56.25 x 75 x 75, which for a 240m rotor is pretty coarse.

Lawrence

from amr-wind.

StormMata avatar StormMata commented on July 2, 2024

Hi @psakievich and @lawrenceccheung,

Thanks to you both for your help. We've increased the mesh resolution (now 200 x 128 x 128) and the sampling distance (now 4.0D) and attached the updated input file for reference.

We still find with this setup that the disk velocity is about 6.4% lower than expected (both from Medici and standard momentum theory, which give the same result). Moreover, we see that the wake velocity is around 35% off of the expected value from $U_{wake} = U_{\infty} \times (1 - 2a)$. Would we not expect that for a disk with $C_T = 0.75$ in laminar and uniform inflow, the induction would be around $a = 0.25$ and the wake velocity would be around $0.5U_{\infty}$? Could this still be an issue of sensitivity to the mesh resolution or some other parameter?

Streamwise_velocity (2)

Input file

uni_ct.txt

from amr-wind.

lawrenceccheung avatar lawrenceccheung commented on July 2, 2024

hi @StormMata,

Regarding the induction values, the uniform Ct disk model should get a pretty good value for the rotor disk velocities, but it won't be perfect, especially for higher Ct values. Here's the comparison that we've observed:
image
where the BEM theory curve is given by
$$Ct = 4a(1-a)$$

Note that the rotor disks velocities depend on the numerical parameters used in AMR-Wind. One possible rule of thumb is to keep the num_points_r parameter approximately the same as rotor diameter/mesh spacing. If you use too many or too few points then there are effects that can be observed at the edge of the rotor disk.
image

Another thing to note is that things also heavily depend on the epsilon parameter. I would set epsilon to be smaller than the mesh size, maybe in the range $$0.5 \Delta x \le \epsilon \le \Delta x.$$ A larger epsilon might take more momentum out from the flow and lead to deeper wakes, although I don't know if that accounts for everything that you're seeing.

Lawrence

from amr-wind.

psakievich avatar psakievich commented on July 2, 2024

@StormMata another parameter you can toy with is the actual spreading function being used. We offer two additional varieties beyond the default you are using.

A description of what the spreading functions are is here: https://www.osti.gov/servlets/purl/1870580

Slide 12 left figure is the default you are currently using
Slide 12 right figure is the Actuator.UniformCtDisk.spreading = LinearBasis
Slide 11 is the same method and is Actuator.UniformCtDisk.spreading = UniformGaussian

For the uniform_ct disk the first two options should give the same results. These spreading functions and improving them is a line of research that has been put on the back burner for a bit. Happy to discuss further if you find any notable differences in behavior.

from amr-wind.

github-actions avatar github-actions commented on July 2, 2024

This issue is stale because it has been open 30 days with no activity.

from amr-wind.

marchdf avatar marchdf commented on July 2, 2024

@StormMata were you able to try some of the proposed fixes? If so, can you close the issue if you feel like it has been resolved?

from amr-wind.

github-actions avatar github-actions commented on July 2, 2024

This issue is stale because it has been open 30 days with no activity.

from amr-wind.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.