-
Notifications
You must be signed in to change notification settings - Fork 62
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
Make CGNS code C++11 compliant #393
base: develop
Are you sure you want to change the base?
Conversation
- also something with references that my compiler wasn't happy about with regards to the `const auto &m : components` statement
- Mostly just substituting `auto`s
I have started my work from this branch. |
@jedbrown (that is not completing so I am not sure how Jed was on the earlier CGNS ticket but not here) contributed this picture in CNDA Slack and in the prior CGNS issue #296 that has been closed. From With the following description (that I will lace my questions into as I try to collect the data to throw at these nodes, I am looking for a bit more detail about what is needed in each node/leaf).
This example has 3 element groups in a single zone: PyramidElements, TetElements, and Prism Elements What FSFBrackets are right after PrismElements and before ZoneBC? Is this just a boundary element mesh set that got written before before the ZoneBC after which the rest? Was this by design or a glitch to the organization?
|
Notes: (see CPEX 0031) Weak BCs certainly belong on faces. Are they suggesting that these also should be given as node lists? |
Regarding BCs, |
You'll see it if you click on the "folder" nodes. The typedef enum {
CGNS_ENUMV( ElementTypeNull ) =CG_Null,
CGNS_ENUMV( ElementTypeUserDefined ) =CG_UserDefined,
CGNS_ENUMV( NODE ) =2,
CGNS_ENUMV( BAR_2 ) =3,
CGNS_ENUMV( BAR_3 ) =4,
CGNS_ENUMV( TRI_3 ) =5,
CGNS_ENUMV( TRI_6 ) =6,
CGNS_ENUMV( QUAD_4 ) =7,
CGNS_ENUMV( QUAD_8 ) =8,
CGNS_ENUMV( QUAD_9 ) =9,
CGNS_ENUMV( TETRA_4 ) =10,
CGNS_ENUMV( TETRA_10 ) =11,
CGNS_ENUMV( PYRA_5 ) =12,
CGNS_ENUMV( PYRA_14 ) =13,
CGNS_ENUMV( PENTA_6 ) =14,
CGNS_ENUMV( PENTA_15 ) =15,
CGNS_ENUMV( PENTA_18 ) =16,
CGNS_ENUMV( HEXA_8 ) =17,
[...]
The ordering in
Mostly, though usually one writes the volume elements first so those start at
They're supposed to be present and will be written when using the API. Here's an example from the test suite (includes multi-zone unstructured)
This appears optional, and is not written in the unstructured test. I haven't seen an example in which it's used for something I can recognize as important.
We want that because it's the way BCs are identified. It is automatically written by the interface. If for some reason we need naming heuristics instead, we could handle that, but we may as well write compliant files.
There is
|
I'm very late to the discussion here. Using GCC 12.3.0 I had only one compiler warning (promoted to an error) when compiling CGNS (develop @ 36bc48e) with pumi that was fixed with this commit. Unless there is a strong reason, I'd prefer to leave the CGNS code as is (with the small fix) and rely on C++14. Update: The fixes @jrwrigh had added in #391 were committed to develop (outside of the PR), the variable length arrays in |
This mostly consists of changing
auto
types to their actual types.This also depends on #391 for me to be able to build with CGNS enabled locally (see the
TEMP
commit 0134d3f).Closes: #392