Skip to content

OutputExtractor: support symmetric-tensor block keywords - #7349

Draft
hnil wants to merge 1 commit into
OPM:masterfrom
hnil:pr/tensor-block-keywords
Draft

OutputExtractor: support symmetric-tensor block keywords#7349
hnil wants to merge 1 commit into
OPM:masterfrom
hnil:pr/tensor-block-keywords

Conversation

@hnil

@hnil hnil commented Aug 24, 2026

Copy link
Copy Markdown
Member

Two additions to OutputExtractor, both inert until something uses them.

TensorEntry in the BlockExtractor handler 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 of std::array<Entry, N> templates in makeExtractor, setupExecMap and setupLgrExecMap, 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.

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>
@hnil hnil added the manual:enhancement This is an enhancement/improvent that needs to be documented in the manual label Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

manual:enhancement This is an enhancement/improvent that needs to be documented in the manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant