Skip to content

Add normal smoothing and VTK diagnostics - #1272

Draft
svchb wants to merge 113 commits into
trixi-framework:mainfrom
svchb:rebuild/css-normal-smoothing
Draft

Add normal smoothing and VTK diagnostics#1272
svchb wants to merge 113 commits into
trixi-framework:mainfrom
svchb:rebuild/css-normal-smoothing

Conversation

@svchb

@svchb svchb commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • rebuild the opt-in normal-smoothing layer from the Surface Tension Prototype V1  #1253 prototype on top of balanced CSS Add balanced CSS surface tension #1271
  • add ColorfieldSurfaceNormal(normal_smoothing=true) with an activity-weighted, same-fluid Shepard pass over unit normals
  • skip inactive targets and neighbors, normalize finite weighted directions, and fall back to the raw normal when the weighted direction is undefined
  • route Morris curvature/local force and balanced CSS stress evaluation through the capillary normal while retaining the raw normal, interface activity, and surface delta unchanged
  • allocate smoothing caches and run the additional traversal only when explicitly enabled
  • expand VTK output with the raw and capillary normals, surface delta, interface activity, model force, support moment or divergence correction, and an output-only physical stress tensor
  • correct Morris VTK force output to use its particle-local acceleration rather than the now-empty pair-force path
  • persist the smoothing choice in system metadata and document its scope

Stack

Depends directly on #1271, the first balanced CSS layer. #1271 depends on #1269, #1268, and #1252. C-CSF planar boundary geometry #1270 remains a sibling substack and is not required here.

Fork branches cannot be selected as bases for pull requests into the upstream repository, so this PR targets main and temporarily shows the preceding commits.

Review-only diff: svchb/TrixiParticles.jlOpen@rebuild/balanced-css...rebuild/css-normal-smoothing

Scope

Smoothing is an explicit Morris CSF/CSS stabilization option. It does not change raw colorfield geometry, C-CSF geometry, interface activation, surface-delta magnitude, particle regularization, wetting/contact models, shifting, or tensile-instability control. The default path has no smoothing cache or neighbor traversal.

Verification

  • Shepard-smoothed CSS normal tests: 20/20
  • surface-tension tests: 132/132
  • CSS flat-pool geometry: 6/6
  • RHS conservation tests: 1197/1197
  • WCSPH system tests: 224/224
  • EDAC system tests: 96/96
  • VTK tests: 24/24 plus focused Morris/CSS diagnostic checks
  • constant-normal invariance, inactive-particle preservation, zero-vector fallback, raw-geometry preservation, Morris force routing, and smoothed CSS stress reconstruction passed
  • Aqua passed
  • documentation build passed
  • complete unit target: 22911 passed; only the established baseline set remained (1 failed, 3 errored)
  • JuliaFormatter 2.1.1 and git diff --check passed

svchb added 24 commits July 30, 2026 13:51
# Conflicts:
#	docs/src/development.md
#	docs/src/systems/boundary.md
@svchb

svchb commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator Author

Dependency note: after the lower stack is rebased onto #1282, this draft should use the shared raw normal and surface_activity data and retain only its capillary-normal smoothing caches and diagnostics. No additional intermediary stack branch is planned.

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.

1 participant