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 updates the arithemetic expression parser to use the new field utilities to work ons fields, rather than arrays. This means it can now work in a rank/type agnostic fashion which crucial for future development since ExtDataDriver.x makes use of this extensively and was limited to 2D/3D gridded fields without this.
In addition I found several bugs in the new field utilities. These were:
This also requires 2 new features to the field geom class:
I added a "**" operator to the binary operators as this was necessary for the expression parser.
A "broadcast" copy, the idea is if you want to copy field x of rank x_r to field y of rank y_r, if y_r = x_r + 1 and the shape of the first x_r dimensions in field y matches field x, then copy the pointer from x to y and replicate x along the last dimension of y. This is 110% crucial for ExtDatDriver.x and without this I would be hosed and this is non-negotiable for inclusion.
Description
Related Issue
Motivation and Context
How Has This Been Tested?
Types of changes
Checklist: