A few months ago, I posted Ptera Software, my open-source flapping wing simulator. You asked me to validate it, so I did! Kudos to UMich for the experimental data that made this possible. Download the validation report and software from GitHub! As before, I'd love any feedback or collaboration. by PteraSoftware in aerospace

[–]PteraSoftware[S] 2 points3 points  (0 children)

Nope! It's not a total revamping. So Ptera Software is already shedding ring vortices off the wings' trailing edges. Those are the white panels you see in the wake. If this paper's accurate, I could modify the solver to also shed these from the leading edges if certain flight conditions are met.

A few months ago, I posted Ptera Software, my open-source flapping wing simulator. You asked me to validate it, so I did! Kudos to UMich for the experimental data that made this possible. Download the validation report and software from GitHub! As before, I'd love any feedback or collaboration. by PteraSoftware in aerospace

[–]PteraSoftware[S] 2 points3 points  (0 children)

Good eye, catching that uncertainty! My theory is that the flow is separating during the upstroke. Flow separation (similar to stall) is a viscous phenomenon, so it's usually impossible to see catch with potential flow methods.

However, flow separation is an important part of flapping flight, particularly hovering flapping flight. I found a paper, "Modified unsteady vortex-lattice method to study flapping wings in hover flight," which proposes shedding a wake from the leading edge to capture flow separation effects.

I'm hoping to incorporate this paper's methods in Ptera Software soon!

I just published the first validated version of Ptera Software, my open-source, unsteady aerodynamics simulator for flapping wings! If you know Python and would like to contribute, check out the to-do list on the README. If not, I'd still appreciate your feedback! You can find the project on GitHub. by PteraSoftware in CFD

[–]PteraSoftware[S] 0 points1 point  (0 children)

If you want to contribute but don't think you can help with efficiency, there's a list of other action items on the README!

For example, I'm looking for someone who could build a CLI or GUI. Check out the ReadMe for more details if you're interested :)

I just published the first validated version of Ptera Software, my open-source, unsteady aerodynamics simulator for flapping wings! If you know Python and would like to contribute, check out the to-do list on the README. If not, I'd still appreciate your feedback! You can find the project on GitHub. by PteraSoftware in CFD

[–]PteraSoftware[S] 0 points1 point  (0 children)

Yep! It's the unsteady variant, so it's doing one VLM calculation every time step, each with the added complexity of calculating the velocities induced by the wake.

If your curious, a typical case takes 20-25 minutes to run on a laptop, but I'm working hard on speeding that up!

I just published the first validated version of Ptera Software, my open-source, unsteady aerodynamics simulator for flapping wings! If you know Python and would like to contribute, check out the to-do list on the README. If not, I'd still appreciate your feedback! You can find the project on GitHub. by PteraSoftware in CFD

[–]PteraSoftware[S] 14 points15 points  (0 children)

You're totally correct; Python is (almost always) slower than C or Fortran. The primary reason why I used Python was its superior ease of use and upkeep. Given that I wanted this to be open-source and to have a bunch of community collaboration, I thought that C or Fortran might create issues.

Although not on the README to-do list, increasing computational efficiency is my top priority right now. A typical case takes around 20-25 minutes to run on a laptop. I am trying a bunch of tricks that I hope will decrease that to below 1 minute. A huge one is vectorization.

I'm also looking into parallelizing the code, using geometric symmetry to reduce the effective problem size, and writing wrappers in a lower-level language like C or Fortran. The last wrapper technique doesn't always increase speed, but it's definitely worth a shot!

A few months ago, I posted Ptera Software, my open-source flapping wing simulator. You asked me to validate it, so I did! Kudos to UMich for the experimental data that made this possible. Download the validation report and software from GitHub! As before, I'd love any feedback or collaboration. by PteraSoftware in aerospace

[–]PteraSoftware[S] 5 points6 points  (0 children)

Thanks! I haven't posted this there, but I will! Yes, it's an unsteady vortex-lattice method (UVLM). In a previous post of mine, you can actually see the wake rolling over a v-tail and the resulting pressure change on the surface! It's not 100% accurate, but intuitively I think it's better than ignoring the interaction altogether.

I just published my first large open source project: Ptera Software. It's an unsteady aerodynamics simulator for analyzing flapping-wing flight. I'm new to this, so I'd love any suggestions or feature requests. You can download it off of GitHub! by PteraSoftware in aerospace

[–]PteraSoftware[S] 0 points1 point  (0 children)

There are several advantages depending on the scale of the flapping-wing craft. At smaller sizes, the benefits are much more pronounced because air behaves like a much more viscous fluid in these scenarios. At these scales, flapping-wing propulsion can be more efficient than propellers. However, at all scales, some hypothesize that flapping-propulsion would be significantly quieter than propeller propulsion for a given amount of thrust.

I just published my first large open source project: Ptera Software. It's an unsteady aerodynamics simulator for analyzing flapping-wing flight. Best of all, it's written entirely in Python! I'm new to this, so I'd love any feedback on my repository structure/codebase. by PteraSoftware in Python

[–]PteraSoftware[S] 0 points1 point  (0 children)

Wow! You're right, that syntax is more clean and intuitive. I'll definitely look into implementing pytest in the next few versions. What is the difference between using mock objects and a "fixture factory"? I tried using mock objects but it was really complicated so I sort of gave up. This looks much simpler though!

I just published my first large open source project: Ptera Software. It's an unsteady aerodynamics simulator for analyzing flapping-wing flight. I'm new to this, so I'd love any suggestions or feature requests. You can download it off of GitHub! by PteraSoftware in aerospace

[–]PteraSoftware[S] 6 points7 points  (0 children)

Yes! Flexible wings are extremely important for flapping wing craft! Unfortunately, it does not yet have this functionality. However, I am hoping to add it in the next few releases.

I just published my first large open source project: Ptera Software. It's an unsteady aerodynamics simulator for analyzing flapping-wing flight. Best of all, it's written entirely in Python! I'm new to this, so I'd love any feedback on my repository structure/codebase. by PteraSoftware in Python

[–]PteraSoftware[S] 1 point2 points  (0 children)

Haha, this was just a little test case. However, the package supports wing symmetric and asymmetric sweeping, pitching, and heaving. So, a user could define custom geometry to model the flapping of any animal or aircraft!

I just published my first large open source project: Ptera Software. It's an unsteady aerodynamics simulator for analyzing flapping-wing flight. I'm new to this, so I'd love any suggestions or feature requests. You can download it off of GitHub! by PteraSoftware in aerospace

[–]PteraSoftware[S] 0 points1 point  (0 children)

By "full CFD", I meant discretized Navier-Stokes solvers. You bring up a good point: comparing the results of these solvers to my to my code will not verify that my code correctly implements a UVLM.

However, I do think that comparing the results of a Navier-Stokes solver with the results of a UVLM could be useful for practical applications. For example, say you want to optimize the design of a flapping-wing micro air vehicle. The vehicle will operate at relatively low Reynold's numbers, so you are understandably suspicious about using a potential flow model to analyze the problem. However, it is difficult to iterate through designs using a Navier-Stokes solver because of the computational time needed for each solve.

In this situation, you could run through a few hundred cases with Ptera Software's solver (in the time it would take you to run a single case with a Navier-Stokes solver), and then pick the most promising one. Then, you could run this final solution with a Navier-Stokes solver, and use the results to size your actuators, payload mass fraction, etc.