Conversation
Simplifies ConditionalOutput a bit by removing need for base_is_cond and dynamic_cast. Does require making ConditionalOutput a friend of Output, but the two classes are already tightly coupled
Allows use of the UNUSED macro
Also conveniently stops a GCC null-deference warning coming from inside Field*::operator(), although this fix seems suspiciously like it doesn't actually solve the problem
This way we can avoid doing something horrible like
void checkData(const Field3D &f,
#if CHECK > 2
REGION region) {
#else
REGION UNUSED(region)) {
#endif
and still keep the unused parameter warning on by default
std::string name is a public member, so these are redundant. Fixes issue #1228
Cyclic Laplace solve(Field3D)
Deprecate Field::getName/setName
* Provide autocomplete for modules and functions * Don't abort if the file exists * Write everything in python * Extend the supported types * Allow to pass in the arguments * Set defaults to wrapper; copy from function default * Use quotes depending on whether/which ones are in the string
* Changed data to positional argument * See previous commit for the changes
Add some basic required functions like setter and getter Extend constructors to set default to CELL_CENTRE
Previously the location had not been copied, causing the returned result to always have location CELL_CENTRE, which is incorrect when the input has another location.
* add comments * throw more useful errors
Use 'localmesh' in Coordinates and 'fieldmesh' in interp_to.
Add location argument to Mesh::coordinates to return Coordinates objects with geometric variables at different locations. CELL_CENTRE version is read from input and other locations are interpolated from CELL_CENTRE.
Avoids exceptions when checking metrics, Jacobian, etc. where the checks loop over all points including corner guard cells, although the corner guard cells are never used.
Also remove 'diagonal' argument which is not needed any more.
PhysicsModelMonitor is now a nested class defined inside PhysicsModel instead of being a friend class.
Avoids check failures due to NaNs in corner guard cells that should never be used.
g_22 is already at outloc, so interp_to(g_22, outloc) is unnecessary.
The bracket_location() method was just checking that the locations of both input fields and the output are all the same. Can replace this simply with an ASSERT1 statement in each bracket operator.
Also tidy up calculation of 'sg' intermediate variable in Grad2_par2: pass outloc to it's derivative and remove unneeded if clause that used to interpolate 'sg' if its location was wrong.
Throw error messages for non-python collect routines
Provide `getRegion` method on Fields
Div_par_flux() takes FDDY(v, f/B). If f has yup/ydown fields these were being lost in the division. This commit copies the solution from Div_par() by dividing creating a new field f_B=f/B whose yup/ydown fields are also set, before calling FDDY.
Also clarify that Div cannot have outloc == VSHIFT
Not currently supported, as it would involve "cross-staggering" terms
Use std::map::emplace to avoid naming complicated type with insert
Use input field/vector location for CELL_DEFAULT in vecops
The ShiftedMetric class requires TwistShift==true to get yup/ydown fields correct at the branch cut where poloidal angle and zShift jump. So check in ShiftedMetric constructor that the option is set correctly. Add second option to turn off the check if you really want to use ShiftedMetric with TwistShift=false (e.g. in a linear device).
In new form there is less state the reader needs to keep in their heads.
More location/method fixes for derivatives
…ft-global-option Check TwistShift==true in ShiftedMetric, add ShiftWithoutTwist option to bypass
* v4.2-rc: (58 commits) Invert conditional in Div_par and Div_par_flux Make test-yupdown work with new test for TwistShift=true Check TwistShift==true in ShiftedMetric Remove output location from Curl properly Fix whitespace in vecops header Deprecate Curl overloads that take a location Fix locations of Jacobian in Div Set yup/ydown fields for Div_par_flux() Use curly braces with if statements Fix V_dot_Grad documentation Use std::map::emplace to avoid naming complicated type with insert Add method argument to Grad2_par2 Remove const on arguments passed by value Remove bracket_location() function, replace with ASSERT1 Tidying up more location setting in derivatives Remove unnecessary interp_to in Grad2_par2 Make mesh::getRegion?? const Add const(_iterator) overload of Region::begin/end Provide `getRegion` method on Fields to return the requested Region from fieldmesh Fix some sphinx whitespace/code blocks ...
Rename Mesh::coordinates -> Mesh::getCoordinates; deprecate old name
Some manual intervention required as PRs are listed in chronological order of creation, not merge!
bendudson
approved these changes
Oct 16, 2018
bendudson
left a comment
Contributor
There was a problem hiding this comment.
Well done, thanks everyone! Thanks to all the people who have contributed improvements and fixes to make this a really significant improvement to BOUT++. Thanks in particular to @ZedThree for coordinating this release and keeping us all in line.
This file contains hidden or 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
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 is the release candidate for version 4.2.0. New bugfixes should go straight into this branch, new features should go into next. Once we're happy, this will go into master, and we'll merge master into next.
The only difference in this PR from current next is f02880b: bumping the version number, and a merge of master which was missing.
The release date and DOI in the CITATION.cff file need to be updated just before release.
I've run
test_suite --all, which is a very nice addition, letting us run all the integrated tests in one go! All of them passed first time, which is even better. Some of the MMS tests are still failing, but these are things like WENO3, which I think is just tricky to MMS. elm-pb also doesn't pass MMS (and needs #1293 to run), but that is also tricky to MMS.I think the following open PRs need to go into this: #1302 #1293 #1303
This is an enormous release, with about 360 merged PRs, and almost 2,500 commits! I've been trying to summarise them all in a changelog (which also needs to go in!), and there's a lot of good stuff that's gone in in the last year.
This PR doesn't need to be reviewed as such, it's just open to collect any bugfixes that need to go in before the release.