-
Notifications
You must be signed in to change notification settings - Fork 48
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
Allow the boundary conditions of scalar fields to be coupled #460
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cianwilson
commented
Jun 13, 2023
cianwilson
commented
Jun 13, 2023
cianwilson
commented
Jun 15, 2023
Need to set this up to restore the old defaults if no other bc is set |
cianwilson
changed the title
An implementation of coupled bcs.
Allow the boundary conditions of scalar fields to be coupled
Jun 21, 2024
Think this can actually be reimplemented in a considerably simpler way but I would like to add a test to this version first. This may break current tests as it changes the default boundary condition logic (it is no longer possible to just set the bc type based on what it is not because there are more than two types of bc now).
This allows generic scalar fields to be output which have a length of at least 5 (not just 4).
This may break tests that rely on the old defaults.
This just runs for 2 timesteps and checks that the shell slices produced match the expected values on 2 coupled fields (1 temperature, 1 chi, both coupled to another chi).
But unclear what to do about the default values.
Renaming the chi variables to explicitly state that we are only coupling chi_a.
Just rebased this branch on top of main |
feathern
approved these changes
Jun 21, 2024
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.
Awesome. The docs look good, and all checks passed. Approving and merging now.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR allows the boundary values or radial gradients of scalar fields (including the thermal variable and active scalar fields) to be linearly coupled together.
The new functionality is documented in the "Under Development" section of the User Guide.
The most pressing point for review is that this changes the number of boundary condition types from two (Dirichlet and Neumann) to four (Dirichlet, Neumann, coupled Dirichlet and coupled Neumann). Combined with the fact that, in an effort to not add too many new options,
T_top
,T_bottom
,dTdr_top
,dTdr_bottom
,chi_a_top
,chi_a_bottom
,dchidr_a_top
,dchidr_a_bottom
, and their_file
equivalents have been overloaded, this means that the previous defaults (e.g.fix_Tvar_top=.true.
withT_top=0
) have had to be taken away. The default behavior now checks for multiply set boundary conditions and throws an error, or, if no boundary conditions are set, initializes the options to the old defaults while issuing a warning.Otherwise I don't think this intersects with existing behavior.
A test for constant bcs has been added in
tests/coupled_bcs
. Future work should add one for spatially varying conditions.