BGK: generalize initial conditions parser #335
Merged
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.
Rewrote the parser for BGK initial conditions in a completely generalized way, without any hardcoded values. The new parser in table.hxx parses an arbitrary file with space-separated values, reading column headers from the first line and treating the remaining lines as data until it hits an empty line or EOF.
This implementation stores the data in a row-major order using vectors (so I suppose it isn't row-major in the same sense that a 2d array would be). There's one big vector containing the rows, which are also vectors. A column-major order might be significantly more performant, but row-major was more convenient for the parsing algorithm, and currently the table is only used during initialization. I almost rewrote it to be column-major, but I figured it should be unit tested first.