Skip to content

Update SBM: manage mixed boundary conditions from a NURBS file#13674

Merged
NickNick9 merged 2 commits intomasterfrom
PR_sbm_mixed_boundary_conditions
Jul 28, 2025
Merged

Update SBM: manage mixed boundary conditions from a NURBS file#13674
NickNick9 merged 2 commits intomasterfrom
PR_sbm_mixed_boundary_conditions

Conversation

@andrewgorgi
Copy link
Contributor

@andrewgorgi andrewgorgi commented Jul 24, 2025

📝 Description
Modification to the IgaModelerSbm. Create one submodelpart for each boundary layer.
Associate BC to each surrogate quadrature point by the layer of the projection on the skin/true boundary.

🆕 Changelog

  • Creation of a variable LAYER_NAME to handle the different boundary layers
  • Creation of one submodelpart of the IgaModelPart for each boundarylayer
  • Store quadrature points of the surrogate boundary to the submodelpart correspondent to the layer of the projection

@andrewgorgi andrewgorgi requested a review from a team as a code owner July 24, 2025 17:24
@andrewgorgi andrewgorgi requested a review from NickNick9 July 24, 2025 17:24
Copy link
Contributor

@NickNick9 NickNick9 left a comment

Choose a reason for hiding this comment

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

very nice and useful

if (IsPointInsideSkinBoundary(gauss_point, rPointsBin, rSkinModelPart)) {rKnotSpansAvailable[IdMatrix][i-1][j+1] = 1;}
}

// Create 25 "fake" gauss_points to check if the majority are inside or outside
Copy link
Contributor

Choose a reason for hiding this comment

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

I would leave 5 personally

const int num_fake_gauss_points = 7;
int number_of_inside_gaussian_points = 0;
for (IndexType i_GPx = 0; i_GPx < num_fake_gauss_points; i_GPx++){
double x_coord = j*rKnotStepUV[0] + rKnotStepUV[0]/(num_fake_gauss_points+1)*(i_GPx+1) + rStartingPosition[0];
Copy link
Contributor

Choose a reason for hiding this comment

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

were we sure about this "+1"?

}

// Mark the knot span as available or not depending on the number of Gauss Points Inside/Outside
if (number_of_inside_gaussian_points < Lambda*num_fake_gauss_points*num_fake_gauss_points) {
Copy link
Contributor

Choose a reason for hiding this comment

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

this is weird no? the total number of fake gauss points is 49 or 64?

@NickNick9 NickNick9 merged commit 2551144 into master Jul 28, 2025
10 checks passed
@NickNick9 NickNick9 deleted the PR_sbm_mixed_boundary_conditions branch July 28, 2025 08:49
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