OutputExtractor: support symmetric-tensor block keywords - #7349
Draft
hnil wants to merge 1 commit into
Draft
Conversation
Add TensorEntry to the BlockExtractor handler variant: a base keyword (e.g. BSTRSS) whose six components are requested with Voigt suffixes XX, YY, ZZ, YZ, XZ, XY appended (BSTRSSXX, ...). Matching is done by prefix + suffix inspection without building candidate names, and the suffix position doubles as the VoigtIndex passed to the extractor. Generalize makeExtractor/setupExecMap/setupLgrExecMap from std::array<Entry, size> templates to std::span<const Entry> so modules can extend the compile-time handler table at runtime; array call sites convert implicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Two additions to
OutputExtractor, both inert until something uses them.TensorEntryin theBlockExtractorhandler variant: a base keyword whose six components are requested with Voigt suffixes appended —BSTRSSXX,BSTRSSYY,BSTRSSZZ,BSTRSSYZ,BSTRSSXZ,BSTRSSXY. Matching inspects prefix and suffix rather than building candidate names, and the suffix position doubles as the Voigt index handed to the extractor.std::span<const Entry>instead ofstd::array<Entry, N>templates inmakeExtractor,setupExecMapandsetupLgrExecMap, so a module can extend the handler table at runtime. Existing array call sites convert implicitly, so nothing changes for them.Nothing upstream registers a symmetric-tensor keyword today; this is the mechanism a mechanics module needs to publish stress components through the ordinary block-output path instead of a parallel one.