Skip to content

Create Surrogate boundary from NURBS file #13535

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 18, 2025
Merged

Create Surrogate boundary from NURBS file #13535

merged 3 commits into from
Jun 18, 2025

Conversation

andrewgorgi
Copy link
Contributor

📝 Description
Extend the "snake_sbm_process" for the creation of surrogate boundaries from exact NURBS geometries.

Please mark the PR with appropriate tags:

  • SBM, NURBS, IgaApplication

🆕 Changelog

  • Extend the "snake_sbm_process" for the creation of surrogate boundaries from exact NURBS geometries.
  • Correction of the SbmProcess for negative coordinates in the background space

@andrewgorgi andrewgorgi requested a review from a team as a code owner June 17, 2025 09:02
@andrewgorgi andrewgorgi requested a review from NickNick9 June 17, 2025 09:02
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.

Nice improve!

@@ -224,6 +223,143 @@ void SnakeSbmProcess::CreateTheSnakeCoordinates(
}
}
}
else if (rSkinModelPartInitial.Geometries().size()>0) // if the skin model part is defined by nurbs geometries
{
const int n_initial_points_for_side = 5000;
Copy link
Contributor

Choose a reason for hiding this comment

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

// TODO:
comment saying that you will implement soon the closest-point projection and therefore here we can set 10 or 100 I don't know

Copy link
Contributor

Choose a reason for hiding this comment

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

Or this could be a user input

SizeType count_split = 0;
while (((knot_span_u_point_split == rKnotSpansUV[0][0] && knot_span_v_point_split == rKnotSpansUV[1][0]) ||
(knot_span_u_point_split == rKnotSpansUV[0][1] && knot_span_v_point_split == rKnotSpansUV[1][1]) )
&& (count_split < 5))
Copy link
Contributor

Choose a reason for hiding this comment

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

can you explain better why you need this count_split?

&& (count_split < 5))
{
count_split++;
local_coords_split[0] = (0.75*rLocalCoords[0] + 0.25*rLocalCoords[1]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a cleaner way to do this?


p_cond->SetValue(CONDITION_NAME, condition_name);
//FIXME:
// p_cond->SetValue(LAYER_NAME, layer_name);
Copy link
Contributor

Choose a reason for hiding this comment

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

this FIXME?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The LAYER_NAME variable still has to be introduced in Kratos. It will be done in the next PR

@NickNick9 NickNick9 merged commit e2b74ba into master Jun 18, 2025
11 checks passed
@NickNick9 NickNick9 deleted the PR_NURBS_for_sbm branch June 18, 2025 13:21
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