Skip to content

Make the field API handle owned data by default - #413

Merged
jacobmerson merged 3 commits into
SCOREC:developfrom
Sichao25:yus/field-api
Nov 8, 2026
Merged

jacobmerson merged 3 commits into
SCOREC:developfrom
Sichao25:yus/field-api

Conversation

@Sichao25

@Sichao25 Sichao25 commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

By default, the field API gives owned data access by default. The ghost data needs to be accessed from the backend. So far the only use case of the ghost data is in OmegaHLagrangeEvaluator.

@jacobmerson

Copy link
Copy Markdown
Collaborator

We may want to discuss offline. Do we see a situation where we want to expose non-owned dofs through the PCMS API? I'd suspect that information should only be used internally to perform evaluations, etc.

@Sichao25 Sichao25 changed the title Separate local and owned DOF holders in the field layout API Make the field API handle owned data by default Nov 5, 2026
@jacobmerson

Copy link
Copy Markdown
Collaborator

We should be able to rewrite this using tag data fairly easily.

@Sichao25

Sichao25 commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

We should be able to rewrite this using tag data fairly easily.

@jacobmerson Which part are you referring to? Do you mean rewriting ghost synchronization to store the values as mesh tags?

@jacobmerson

Copy link
Copy Markdown
Collaborator

I mean anything inside the evaluator already knows that it is a field stored as Omega_h tags, so we can directly use the tag info rather than going through the higher level PCMS API.

@Sichao25

Sichao25 commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

There is one point of mismatch here. I don't think we previously made the assumption that omega h Lagrange backend data must come from a mesh tag, at least it is not explicitly guaranteed by code.

In the current synchronization implementation, I use sync_array, which synchronizes an array according to the distribution pattern of the mesh if I understand correctly. This is different from sync_tag, which synchronizes a specific tag stored on the mesh.

Therefore, the evaluator should get ghost data from FieldData rather than directly from mesh tags, unless we explicitly decide that field data must always be from mesh tags.

@jacobmerson jacobmerson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on offline discussion @Sichao25 will move the Omega_h data out of simple data into it's own FieldData type. SimpleData is intended to just be a really rough data type with pure arrays.

@Sichao25

Sichao25 commented Nov 7, 2026

Copy link
Copy Markdown
Contributor Author

The update of OmegaHFieldData is done.

@jacobmerson
jacobmerson merged commit cc21eaf into SCOREC:develop Nov 8, 2026
10 checks passed

This branch was previously deployed

1 inactive deployment
asics — 00786e8b Deployed Nov 6, 2026 by Sichao25 via build_and_test #417
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants