-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IBM+STL #730
IBM+STL #730
Conversation
buff_size changed for idwbuff but not updated for startx, starty, and startz.
Assign finite difference number and keep the halo region the same.
* IBM+STL Upstream infrastructure * Add models * Still need to fix checker and docs * Fix magic number and add examples * Fix format and spell * fix spell * fix trailing white space * fix some docstring in m_patches
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #730 +/- ##
==========================================
+ Coverage 42.97% 43.63% +0.66%
==========================================
Files 61 61
Lines 16492 16893 +401
Branches 1890 1948 +58
==========================================
+ Hits 7087 7372 +285
- Misses 8356 8404 +48
- Partials 1049 1117 +68 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there should be STL IBM cases added to the test suite, although I'm not sure how this would be done given the current test suite framework. As we've seen in your updates, even minor changes to any step in the process of generating the levelset can lead to significant differences in results. I'd also be interested in seeing a comparison for "exact" (I'm not sure it's actually exact) vs. STL level set with an airfoil, at least in 2D. Maybe something wild like a NACA 9510 to add some weird curvature. I'm not sure I'd expect the wakes to be the same, but some sort of integral quantity like lift or drag could be compared. I'll let @sbryngelson give his opinion on if this is worthwhile though.
I agree, there needs to be something in the test suite for this. |
Thanks for all the reviews. I've made the requested changes. It'll be great if it can get merged by the 1st MFC5.0 draft. |
Great! I think I can merge, will have a final look today (or very soon). Thanks @haochey |
Description
This PR enables complex geometry (in STL format) in immersed boundary method. Also, analytical levelset for cuboid is added.
For 2D STL files, boundary vertices are grouped to determine the levelset and levelset normals. For 3D STL files, all the vertices are boundary vertices so the procedure to group boundary vertices are skipped.
Here is the procedure implemented:
If so the end vertices of the edge are considered inner vertices.
triangle facet is larger than the face area of the cell.
random distribution based on barycentric coordinates.
perform the following.
model and the normals (levelset_norm) associated with the boundary edge.
model and the normals (levelset_norm) associated with the triangle facets.
Test suite adds two tests: 2D->IBM->STL and 3D->IBM->STL
Type of change
Scope
How Has This Been Tested?
Compared the 2D IBM (rectangles and circles) and 3D (cubes and spheres) between analytical method and STL+IBM method.
Test Configuration:
2D Comparison (Rectangles)
https://github.com/user-attachments/assets/6948d404-96ff-4219-8464-a768d1b3b530
3D Comparison (Cuboid)
https://github.com/user-attachments/assets/e852a124-3ce7-4e84-8e2c-a6c9f55fdae9
2D New Geo
https://github.com/user-attachments/assets/1e405a1a-9aff-40d2-8d99-dc2ea3a12df8
2D Subsonic flow over MFC Character
https://github.com/user-attachments/assets/f56b8df9-1035-43bf-ba87-b7fb03338aca
3D New Geo
https://github.com/user-attachments/assets/635ad04c-dcd1-470b-8311-d114f0593a66
Mach 1.5 over a Mexican pyramid
https://github.com/user-attachments/assets/88d7731d-e660-47aa-9c29-b866f34ea21d
X-Y section view
https://github.com/user-attachments/assets/719557a6-d45b-4638-9957-1f3bba1f1aa7
Checklist
docs/
)examples/
that demonstrate my new feature performing as expected.They run to completion and demonstrate "interesting physics"
./mfc.sh format
before committing my code