Skip to content

[FXC-5449] allow varying refinements on axisymmetric body faces#1882

Open
alexxu-flex wants to merge 8 commits intomainfrom
alexxu/varying-refinement-faces
Open

[FXC-5449] allow varying refinements on axisymmetric body faces#1882
alexxu-flex wants to merge 8 commits intomainfrom
alexxu/varying-refinement-faces

Conversation

@alexxu-flex
Copy link
Collaborator

@alexxu-flex alexxu-flex commented Mar 9, 2026

Note

Medium Risk
Changes the meshing parameter schema and JSON translation for UniformRefinement on AxisymmetricBody, which could affect solver/mesher inputs and unit conversion behavior. Also broadens base-model preprocessing to recurse into dicts, which may impact other parameter serialization paths.

Overview
Adds optional face_spacing to UniformRefinement to allow per-face spacing overrides for AxisymmetricBody, including validation that entity names match and face indices are in range.

Updates volume meshing translation to carry these overrides through and expand them into a dense faceSpacings array for axisymmetric refinements, with new tests covering validation, translation output, and mixed-unit conversion.

Refactors Flow360BaseModel.preprocess to use a generalized _preprocess_nested helper that recursively converts dimensioned values inside both list and dict containers (replacing the prior list-only implementation).

Written by Cursor Bugbot for commit f77647f. This will update automatically on new commits. Configure here.

@alexxu-flex alexxu-flex marked this pull request as ready for review March 11, 2026 20:01
... entities=[cylinder, box, axisymmetric_body, sphere],
... spacing=1*fl.u.cm
... spacing=1*fl.u.cm,
... face_spacing={
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is too nested and confusing. We need to redesign the interface.

Copy link
Collaborator Author

@alexxu-flex alexxu-flex Mar 13, 2026

Choose a reason for hiding this comment

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

//User interface
face_spacing={
axisymmetric_body.segments[1] : 0.2*fl.u.cm
}
// Storage side
"face_spacing":{
("entioty_id":"$axisymmetric_body.private_attribute_id", "segment_index": 1) : {"value": 0.2, "units":"cm"}
}

Copy link
Collaborator Author

@alexxu-flex alexxu-flex Mar 13, 2026

Choose a reason for hiding this comment

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

Then you need a Pydantic model for the "segment" class.

It will be similar relationship between Windtunnel farfield and the windtunnel ghost surfaces.

class Segment(BaseModel):
    type_name:Literal["Segment"]
    entity_id:str
    segment_index: int =pd.Field(min=..., )

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

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