RocketPy icon indicating copy to clipboard operation
RocketPy copied to clipboard

ENH: Elliptical fins added to Rocket class

Open KrWanderley opened this issue 3 years ago • 7 comments

Pull request type

Please check the type of change your PR introduces:

  • [x] Code base additions (bugfix, features)
  • [ ] Code maintenance (refactoring, formatting, renaming, tests)
  • [ ] ReadMe, Docs and GitHub maintenance
  • [ ] Other (please describe):

Pull request checklist

Please check if your PR fulfills the following requirements, depending on the type of PR:

  • ReadMe, Docs and GitHub maintenance:

    • [ ] Spelling has been verified
    • [ ] Code docs are working correctly
  • Code base maintenance (refactoring, formatting, renaming):

    • [ ] Docs have been reviewed and added / updated if needed
    • [ ] Lint (black rocketpy) has passed locally and any fixes were made
    • [ ] All tests (pytest --runslow) have passed locally
  • Code base additions (for bug fixes / features):

    • [ ] Tests for the changes have been added
    • [x] Docs have been reviewed and added / updated if needed
    • [x] Lint (black rocketpy) has passed locally and any fixes were made
    • [ ] All tests (pytest --runslow) have passed locally

What is the current behavior?

RocketPy only accept trapezoidal fins.

What is the new behavior?

Now, RocketPy accept elliptical fins. To do that, Barrowman equations and some deductions were used to define center of mass and lift coeficients. All the equations can be found on the PDF: https://github.com/Projeto-Jupiter/RocketPy/blob/a4778ba969f044ff669bc55cf35a572f2927b61f/docs/technical/aerodynamics/Elliptical_Fins.pdf

Does this introduce a breaking change?

  • [x] Yes
  • [ ] No

It's a breaking change because the way fins are added on addFins method was changed: before that, fins were defined by the 3 input parameters and now it's defined by a dictionary, which breakes older codes.

Other information

Due to the significant changes in the way fins are added in the addFins method, several tests will have to be updated. Furthermore, new tests for elliptical fins still must be created. Moreover, all the Getting Started notebooks must be updated.

KrWanderley avatar May 19 '22 23:05 KrWanderley

As this is introducing a breaking change, we might adjust the instances on our example notebooks in order to ensure verything runs without problem after merging. Here is an example of what can be done:

Original code:

FinSet = Calisto.addFins(
    4, span=0.100, rootChord=0.120, tipChord=0.040, distanceToCM=-1.04956
)

After introducing some changes to accomplish with the PR:

FinSet = Calisto.addFins(type="trapezoid",
                         n=4,
                         finParameters={"span": 0.100, 
                                        "rootChord": 0.120,
                                        "tipChord": 0.040},
                         distanceToCM=-1.04956,
                         radius=0,
                         cantAngle=0,
                         airfoil=None,)

The files we need to change are the following:

  • [x] docs\notebooks\getting_started.ipynb
  • [x] docs\notebooks\getting_started_colab.ipynb
  • [x] docs\notebooks\dispersion_analysis\dispersion_analysis.ipynb

Also, we should be worried about unit test! This can be overhelmed but extremally important to be set. Basically we need modify all test files that import and use rocket class, always trying to accomplish with the new version you implemented. Again, just let me know if you need any help.

Gui-FernandesBR avatar Jun 05 '22 08:06 Gui-FernandesBR

Elliptical_Fins_revised_guilherme.pdf

Hey, I'm uploading a revised version of your pdf file, hope you can open the commentaries on any pdf viewer.

Now I believe my revision is done, I have to say that I really liked your implementation and I'm willing to see you guys addressing all the commentaries and therefore being able to merge.

We will have a new release by the end of this month, and it would be nice having the elliptical fins released as well. I'm available for anything u need, just let me know

Gui-FernandesBR avatar Jun 12 '22 18:06 Gui-FernandesBR

@FranzYuri in case you have finished addressing all commentaries please request a re-review

Gui-FernandesBR avatar Jun 21 '22 11:06 Gui-FernandesBR

Tks @FranzYuri for solving those issues!

I'll wait for @giovaniceotto review as well.

Gui-FernandesBR avatar Jun 23 '22 00:06 Gui-FernandesBR

I'm trying to solve some conflicts!

Gui-FernandesBR avatar Jun 30 '22 00:06 Gui-FernandesBR

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@giovaniceotto please give us your review so we can define if we proceed modifying tests due to breaking changes or not.

@FranzYuri we still need couple minor changes on the pdf file

Gui-FernandesBR avatar Jun 30 '22 00:06 Gui-FernandesBR

Off-topic: Solving conflicts by using vscode seems easier now! I hope this is a new thing, otherwise I was struggling a lot more than needed when tried to solve conflicts before (LoL)

image

Gui-FernandesBR avatar Aug 21 '22 17:08 Gui-FernandesBR