Skip to content

[IgaApplication]:: [IgaModelerSbm] Analytical projection feature added if importing NURBS curves - #14832

Open
ThomasLillieskold wants to merge 14 commits into
masterfrom
Analytical_Proyection_Nurbs
Open

ThomasLillieskold wants to merge 14 commits into
masterfrom
Analytical_Proyection_Nurbs

Conversation

@ThomasLillieskold

Copy link
Copy Markdown
Contributor

📝 Description

Add analytical projection onto 2D NURBS skins for the Shifted Boundary Method (SBM) in IgaApplication. SBM settings now select "analytical" or "linealized" through sbm_parameters.projection_type.

Key changes

  • Project SBM quadrature points onto NURBS curves and create projection nodes with oriented normals.
  • Allow SBM conditions to use those nodes while retaining support for discretized skin projections.
  • Validate projection settings and NURBS layer to condition mappings.
  • Add tests for curved and rational NURBS skins, both projection modes, and invalid settings.

Validation

  • Focused Python tests passed: test_modelers_sbm.py (21 tests) and test_import_nurbs_modeler.py (6 tests).
  • C++ tests passed: KratosIgaCoreTest (25 passed, 8 skipped), KratosCoreTest (1612 passed, 4 skipped), and KratosStructuralMechanicsCoreTest (116 passed).

🆕 Changelog

  • Added analytical projection onto 2D NURBS skins for SBM in IgaApplication.
  • Added explicit selection between analytical and linealized SBM projection.
  • Added projection node support and validation for NURBS condition mappings.
sbm_proyeccion_linealizada_vs_nurbs

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Analytical quadrature reads the wrong setting key, and importer validation tests are omitted from standard suites.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity · 1 Low severity

Open (3)
What changed in this PR

Adds analytical 2D NURBS projection support to IgaApplication’s Shifted Boundary Method.

Changes:

  • Introduces selectable analytical and linealized projection modes.
  • Creates projection nodes with oriented normals for SBM conditions.
  • Adds projection validation and curved/rational NURBS tests.
File Description
test_stokes_sbm_conditions.py Selects linealized projection.
test_stokes_sbm_conditions_3d.py Selects linealized 3D projection.
test_stokes_elements_and_conditions.py Updates support-condition settings.
test_sbm_laplacian_3d.py Selects linealized projection.
test_modelers_sbm.py Tests analytical projections and validation.
test_import_nurbs_modeler.py Tests NURBS mapping validation.
sbm_solid_tests.py Updates solid SBM settings.
complex_2d_nurbs.json Reorients a NURBS curve.
test_sbm_3d_workflow.cpp Updates 3D workflow settings.
snake_sbm_process.cpp Retains original NURBS geometries.
import_nurbs_sbm_modeler.cpp Validates condition mappings.
iga_modeler_sbm.h Declares projection-specific creation methods.
iga_modeler_sbm.cpp Implements analytical and linealized projections.
sbm_solid_condition.cpp Supports explicit projection nodes.
sbm_load_solid_condition.cpp Uses projected nodes and normals.
sbm_laplacian_condition_neumann.cpp Uses analytical projection data.
sbm_laplacian_condition_dirichlet.cpp Supports explicit projection nodes.
sbm_fluid_condition_dirichlet.cpp Supports explicit projection nodes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread applications/IgaApplication/custom_modelers/iga_modeler_sbm.cpp Outdated
}
}] """)

def test_missing_layer_mapping_for_nurbs_curve(self):
Comment thread applications/IgaApplication/custom_modelers/iga_modeler_sbm.cpp Outdated
juancamarotti and others added 2 commits October 2, 2026 15:55
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants