Exawind / amr-wind

AMReX-based structured wind solver
https://exawind.github.io/amr-wind
Other
103 stars 78 forks source link

One way of fixing UDF fillpatches for face quantities (mac velocities) #1084

Closed mbkuhn closed 3 weeks ago

mbkuhn commented 1 month ago

Summary

Using template arguments to modify the boundary index checks for face quantities. Ended up needing a decent amount of new function / type declarations, though, and I'm not sure how best to use the loop within fillpatch_sibling_fields now that each physbc has a different type.

Pull request type

Checklist

The following is included:

This PR was tested by running:

Additional background

This may not be the best way to do it... it may make things harder when we try to improve the UDFs. Obviously, this is starting off sloppy and will need a thorough pass through and probably unit tests added as well.

Issue Number: #1076

mbkuhn commented 1 month ago

Running the rankine test with this branch give the following output (relevant parts only)

// Fill mac velocities using velocity BCs
sibling fields FPSL dir i = 0 (umac)
Rankine.H op: filling 10.73181747 at i=-1
Rankine.H op: filling 10.13957005 at i=41
sibling fields FPSL dir i = 1 (vmac)
Rankine.H op: filling 1.016180833 at i=-1
Rankine.H op: filling 0.5357916479 at i=40
sibling fields FPSL dir i = 2 (wmac)
Rankine.H op: filling 0 at i=-1
Rankine.H op: filling 0 at i=40
marchdf commented 1 month ago

Nice work! I left a bunch of comments/thoughts/things to try out. LMK if you want help with these.

I think this mostly takes care of the first bit: getting the right indices to be used in the UDF op. The comments I had in the original issue were more focused on defining a different op for the faces. I am not sure we want to go down that road but it's the "right thing to do" eventually. Though again, getting those precise details right is probably only important for BDS and the mac vel in the ghost cells.

marchdf commented 3 weeks ago

This is done in #1093