-
Notifications
You must be signed in to change notification settings - Fork 104
Add ability to use variables from grid file in input file expressions #3222
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
base: next
Are you sure you want to change the base?
Conversation
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.
clang-tidy made some suggestions
| return std::make_shared<FieldValuePtr>(ptr); | ||
| } | ||
|
|
||
| BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal); |
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.
warning: enum 'GridVariableFunction' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size]
BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal);
^| return std::make_shared<FieldValuePtr>(ptr); | ||
| } | ||
|
|
||
| BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal); |
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.
warning: function 'GridVariableFunctionFromString' can be made static or moved into an anonymous namespace to enforce internal linkage [misc-use-internal-linkage]
BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal);
^expanded from here
| return std::make_shared<FieldValuePtr>(ptr); | ||
| } | ||
|
|
||
| BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal); |
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.
warning: parameter 'UNUSED_similar_to' is unused [misc-unused-parameters]
BOUT_ENUM_CLASS(GridVariableFunction, field3d, field2d, boutreal);
^Additional context
include/bout/bout_enum_class.hxx:98: expanded from macro 'BOUT_ENUM_CLASS'
inline enumname Options::as<enumname>(const enumname&) const { \
^| class GridVariable : public FieldGenerator { | ||
| public: | ||
| GridVariable(T var, std::string name) | ||
| : variable(std::move(var)), name(std::move(name)) {} |
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.
warning: no header providing "std::move" is directly included [misc-include-cleaner]
src/field/fieldgenerators.hxx:18:
+ #include <utility>| } | ||
|
|
||
| FieldGeneratorPtr clone(const std::list<FieldGeneratorPtr> args) override { | ||
| if (args.size() != 0) { |
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.
warning: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty]
| if (args.size() != 0) { | |
| if (!args.empty()) { |
Additional context
/usr/include/c++/13/bits/stl_list.h:1142: method 'list'::empty() defined here
empty() const _GLIBCXX_NOEXCEPT
^
This adds the ability to read fields (2D and 3D) and doubles* from the grid file (
mesh:file) and use them in expressions in the input file, for example to use coordinates directly from the grid generator:* ints can also be read, but the expression parser only handles doubles
This could also be used for something like region labels to the input file by having hypnotoad make a field which is 1.0 in that region and 0.0 elsewhere:
and using like
We could probably also do this in BOUT++ directly, making fields for each boundary region.