Skip to content

Commit

Permalink
Deployed 03187b8 with MkDocs version: 1.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
EdoAlvarezR committed Jan 8, 2024
1 parent 16b8d2b commit 119f836
Show file tree
Hide file tree
Showing 53 changed files with 881 additions and 128 deletions.
4 changes: 2 additions & 2 deletions api/flowunsteady-maneuver/index.html

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions api/flowunsteady-monitor/index.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions api/flowunsteady-openvsp/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions api/flowunsteady-postprocessing-fdom/index.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions api/flowunsteady-postprocessing-misc/index.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions api/flowunsteady-postprocessing-noise/index.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions api/flowunsteady-run/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions api/flowunsteady-simulation/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowunsteady-vehicle-asm/index.html

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions api/flowunsteady-vehicle-components/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions api/flowunsteady-vehicle-types/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions api/flowvpm-particle/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-relaxation/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-sfs/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-time/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-uj/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-utils/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion api/flowvpm-viscous/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/blownwing-acoustics/index.html

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions examples/blownwing-aero/index.html

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions examples/blownwing-asm/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/heavingwing/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/openvsp-aircraft/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/propeller-J040/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/propeller-incidence/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/propeller-jsweep/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/propeller-quasisteady/index.html

Large diffs are not rendered by default.

611 changes: 611 additions & 0 deletions examples/prowim-aero/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/rotorhover-acoustics/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/rotorhover-aero/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/rotorhover-fdom/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/rotorhover-quasisteady/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/tetheredwing/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/vahana-maneuver/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/vahana-monitor/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/vahana-run/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/vahana-vehicle/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/wing-4p2aoa/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions examples/wing-aoasweep/index.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions generate_examples.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ include("generate_examples_heaving.jl")
include("generate_examples_propeller.jl")
include("generate_examples_rotorhover.jl")
include("generate_examples_blownwing.jl")
include("generate_examples_prowim.jl")
include("generate_examples_vahana.jl")
57 changes: 38 additions & 19 deletions generate_examples_blownwing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ remote_url = "https://edoalvar2.groups.et.byu.net/public/FLOWUnsteady/"
open(joinpath(output_path, output_name*"-aero.md"), "w") do fout

println(fout, """
# [Aerodynamic Solution](@id blownwingaero)
# [Wing-on-Rotor Interactions](@id blownwingaero)
```@raw html
<div style="position:relative;padding-top:50%;">
Expand All @@ -20,6 +20,17 @@ open(joinpath(output_path, output_name*"-aero.md"), "w") do fout
</div>
```
In this example we show mount propellers on a swept wing.
The wing is modeled using the actuator line model that represents the wing
as a lifting line.
This wing model is accurate for capturing wing-on-rotor interactions.
For instance, the rotor will experience an unsteady blade loading (and
increased tonal noise) caused by the turning of the flow ahead of the wing
leading edge.
However, this simple wing model is not adecuate for capturing
rotor-on-wing interactions (see [the next two sections](@ref asm) to
accurately predict rotor-on-wing interactions).
""")

println(fout, "```julia")
Expand Down Expand Up @@ -159,13 +170,17 @@ open(joinpath(output_path, output_name*"-asm.md"), "w") do fout
The ALM is very accurate for isolated wings and even cases with mild wake
interactions.
However, for cases with stronger wake interactions (e.g., a wake directly
impinging on the wing surface), we have developed an actuator surface model
(ASM) that introduces the surface vorticity into the LES domain that better
represents the physics.
This is done by spreading the surface vorticity following a pressure-like
distribution, which ends up producing a velocity field at the wing surface
that minimizes the flow that crosses the airfoil centerline, thus better
representing a solid surface:
impinging on the wing surface), the ALM can lead to unphysical results as
the flow tends to cross the airfoil centerline.
To address this, we have developed an actuator surface model
(ASM) to embed the wing surface in the LES domain and better
represent the physics.
The ASM spreads the surface vorticity following a pressure-like
distribution.
This produces a velocity field at the wing surface that minimizes the mass
flow that crosses the airfoil centerline, thus better representing a solid
surface:
```@raw html
<center>
Expand All @@ -174,16 +189,22 @@ open(joinpath(output_path, output_name*"-asm.md"), "w") do fout
</center>
<br>
```
For an in-depth discussion of the actuator line and surface models
implemented in FLOWUnsteady, see Chapter 6 in
[Alvarez' Dissertation](https://scholarsarchive.byu.edu/etd/9589).[^2]
For an in-depth discussion of the actuator models implemented in
FLOWUnsteady, see Chapter 6 in
[Alvarez' Dissertation](https://scholarsarchive.byu.edu/etd/9589)[^2]
(also published in
[Alvarez & Ning, 2023](https://arc.aiaa.org/doi/abs/10.2514/1.C037279)[^3]).
[^2]: E. J. Alvarez (2022), "Reformulated Vortex Particle Method and
Meshless Large Eddy Simulation of Multirotor Aircraft," *Doctoral
Dissertation, Brigham Young University*.
[**[VIDEO]**](https://www.nas.nasa.gov/pubs/ams/2022/08-09-22.html)
[**[PDF]**](https://scholarsarchive.byu.edu/etd/9589/)
[^3]: E. J. Alvarez and A. Ning (2023), "Meshless Large-Eddy Simulation of
Propeller–Wing Interactions with Reformulated Vortex Particle Method,"
*Journal of Aircraft*.
[**[DOI]**](https://arc.aiaa.org/doi/abs/10.2514/1.C037279)[**[PDF]**](https://scholarsarchive.byu.edu/facpub/6902/)
In order to activate the actuator surface model, we define the following
parameters:
Expand Down Expand Up @@ -216,7 +237,7 @@ open(joinpath(output_path, output_name*"-asm.md"), "w") do fout
add_unsteadyforce = false # Whether to add the unsteady force to Ftot or to simply output it
include_parasiticdrag = true # Include parasitic-drag force
add_skinfriction = true # If false, the parasitic drag is purely parasitic, meaning no skin friction
add_skinfriction = true # If false, the parasitic drag is purely form, meaning no skin friction
calc_cd_from_cl = false # Whether to calculate cd from cl or effective AOA
wing_polar_file = "xf-rae101-il-1000000.csv" # Airfoil polar for parasitic drag
```
Expand All @@ -230,7 +251,7 @@ open(joinpath(output_path, output_name*"-asm.md"), "w") do fout
forces = []
# Calculate Kutta-Joukowski force
kuttajoukowski = uns.generate_calc_aerodynamicforce_kuttajoukowski(KJforce_type,
kuttajoukowski = uns.generate_aerodynamicforce_kuttajoukowski(KJforce_type,
sigma_vlm_surf, sigma_rotor_surf,
vlm_vortexsheet, vlm_vortexsheet_overlap,
vlm_vortexsheet_distribution,
Expand Down Expand Up @@ -315,12 +336,10 @@ open(joinpath(output_path, output_name*"-asm.md"), "w") do fout
)
```
!!! info "ASM and High Fidelity"
ASM uses a very high density of particles at the wing
surface (~100k particles per wing) to accuratelly introduce the solid
boundary into the LES.
This increases the computational cost of the simulation considerably.
Hence, we recommend using ASM only for high-fidelity simulations.
!!! info "ASM Example"
The [next section](@ref prowimaero) shows an example on how to
set up and run a simulation using the actuator surface model.
""")

end
122 changes: 122 additions & 0 deletions generate_examples_prowim.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# ------------- BLOWN WING EXAMPLE ---------------------------------------------
output_name = "prowim"
example_path = joinpath(uns.examples_path, "prowim")

remote_url = "https://edoalvar2.groups.et.byu.net/public/FLOWUnsteady/"

# -------- Aero Solution --------------------------------------------------------
open(joinpath(output_path, output_name*"-aero.md"), "w") do fout

println(fout, """
# [Rotor-on-Wing Interactions](@id prowimaero)
In this example we use the [actuator surface model](@ref asm) (ASM) to
accurately predict the effects of props blowing on a wing.
This case simulates the PROWIM experiment in
[Leo Veldhuis' dissertation](https://repository.tudelft.nl/islandora/object/uuid%3A8ffbde9c-b483-40de-90e0-97095202fbe3)
(2005), and reproduces the validation study published in
[Alvarez & Ning (2023)](https://arc.aiaa.org/doi/10.2514/1.C037279).
In this example you can vary the fidelity of the simulation setting the
following parameters:
| Parameter | Mid-low fidelity | Mid-high fidelity | High fidelity | Description |
| :-------: | :--------------: | :---------------: | :-----------: | :---------- |
| `n_wing` | `50` | `50` | `100` | Number of wing elements per semispan |
| `n_rotor` | `12` | `20` | `50` | Number of blade elements per blade |
| `nsteps_per_rev` | `36` | `36` | `72` | Time steps per revolution |
| `p_per_step` | `2` | `5` | `5` | Particle sheds per time step |
| `shed_starting` | `false` | `false` | `true` | Whether to shed starting vortex |
| `shed_unsteady` | `false` | `false` | `true` | Whether to shed vorticity from unsteady loading |
| `treat_wake` | `true` | `true` | `false` | Treat wake to avoid instabilities |
| `vlm_vortexsheet_overlap` | `2.125/10` | `2.125/10` | `2.125` | Particle overlap in ASM vortex sheet |
| `vpm_integration` | `vpm.euler` | RK3``^\\star`` | RK3``^\\star`` | VPM time integration scheme |
| `vpm_SFS` | None``^\\dag`` | Dynamic``^\\ddag`` | Dynamic``^\\ddag`` | VPM LES subfilter-scale model |
* ``^\\star``*RK3:* `vpm_integration = vpm.rungekutta3`
* ``^\\dag``*None:* `vpm_SFS = vpm.SFS_none`
* ``^\\ddag``*Dynamic:* `vpm_SFS = vpm.SFS_Cd_twolevel_nobackscatter`
(Mid-low fidelity settings may be inadequate for capturing rotor-on-wing interactions, unless using `p_per_step=5`)
""")

println(fout, "```julia")

open(joinpath(example_path, "prowim.jl"), "r") do fin

ignore = false

for l in eachline(fin)
if contains(l, "6) POSTPROCESSING")
break
end

# if l=="#=" || contains(l, "# Uncomment this")
if l=="#="
ignore=true
end

if !ignore && !contains(l, "save_code=")
println(fout, l)
end

if l=="=#" || contains(l, "# paraview = false")
ignore=false
end
end
end

println(fout, "```")

println(fout, """
```@raw html
<span style="font-size: 0.9em; color:gray;"><i>
Mid-low fidelity run time: 13 minutes a Dell Precision 7760 laptop. <br>
Mid-high fidelity run time: 70 minutes a Dell Precision 7760 laptop. <br>
High fidelity runtime: ~2 days on a 16-core AMD EPYC 7302 processor.
</i></span>
<br><br>
```
```@raw html
<center>
<br><br>
<b>Mid-High Fidelity</b>
<br>
<img src="$(remote_url)/prowimblown-compexp-midfi-composed.png" alt="Pic here" style="width: 100%;"/>
<br><br><br><br>
<b>High Fidelity</b>
<br>
<img src="$(remote_url)/prowimblown-compexp-hifi-composed.png" alt="Pic here" style="width: 100%;"/>
<br><br><br>
</center>
```
The favorable comparison with the experiment at \$\\alpha=0^\\circ\$ and
\$4^\\circ\$ confirms that ASM accurately predicts propeller-wing
interactions up to a moderate angle of attack. At \$\\alpha=10^\\circ\$ we suspect
that the wing is mildly stalled, leading to a larger discrepancy (further
discussed in [Alvarez' Dissertation](https://scholarsarchive.byu.edu/etd/9589)[^1]
and
[Alvarez & Ning, 2023](https://arc.aiaa.org/doi/abs/10.2514/1.C037279)[^2]).
!!! info "Source file"
Full example available under
[examples/prowim/](https://github.com/byuflowlab/FLOWUnsteady/blob/master/examples/prowim).
[^1]: E. J. Alvarez (2022), "Reformulated Vortex Particle Method and
Meshless Large Eddy Simulation of Multirotor Aircraft," *Doctoral
Dissertation, Brigham Young University*.
[**[VIDEO]**](https://www.nas.nasa.gov/pubs/ams/2022/08-09-22.html)
[**[PDF]**](https://scholarsarchive.byu.edu/etd/9589/)
[^2]: E. J. Alvarez and A. Ning (2023), "Meshless Large-Eddy Simulation of
Propeller–Wing Interactions with Reformulated Vortex Particle Method,"
*Journal of Aircraft*.
[**[DOI]**](https://arc.aiaa.org/doi/abs/10.2514/1.C037279)[**[PDF]**](https://scholarsarchive.byu.edu/facpub/6902/)
""")

end
Loading

0 comments on commit 119f836

Please sign in to comment.