Skip to content

[IgaApplication] nurbs geometry modeler extension to 3D #13465

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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

NickNick9
Copy link
Contributor

📝 Description
This is the first of several PRs aimed at extending the current 2D SBM workflow to 3D.

This PR focuses on extending the nurbs_geometry_modeler to support 3D problems.
The next PR will address the extension of CreateSurrogateBoundary for 3D, along with the corresponding tests.

@NickNick9 NickNick9 requested a review from a team as a code owner May 28, 2025 09:20
@AlejandroCornejo
Copy link
Member

📝 Description This is the first of several PRs aimed at extending the current 2D SBM workflow to 3D.

This PR focuses on extending the nurbs_geometry_modeler to support 3D problems. The next PR will address the extension of CreateSurrogateBoundary for 3D, along with the corresponding tests.

out of curiosity, the 3D IGA elements work now in FullDebug ?

@NickNick9
Copy link
Contributor Author

Hi Alejandro!
Not yet, there are not all the necessary geometries (nurbs_volume, brep_volume, surface_on_volume, ecc).
But I have a branch with everything working quite well for a Poisson problem. I'll try to add it asap!

Copy link
Contributor

@rickyaristio rickyaristio left a comment

Choose a reason for hiding this comment

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

Short comments from my side.

Comment on lines 164 to 180
std::string skin_model_part_inner_initial_name = "SkinModelPartInnerInitial";
std::string skin_model_part_outer_initial_name = "SkinModelPartOuterInitial";
std::string skin_model_part_name;
if (mParameters.Has("skin_model_part_inner_initial_name")) {
skin_model_part_inner_initial_name = mParameters["skin_model_part_inner_initial_name"].GetString();

KRATOS_ERROR_IF_NOT(mpModel->HasModelPart(skin_model_part_inner_initial_name))
<< "The skin_model_part '" << skin_model_part_inner_initial_name << "' was not created in the model.\n"
<< "Check the reading of the mdpa file in the import mdpa modeler."<< std::endl;
}
if (mParameters.Has("skin_model_part_outer_initial_name")) {
skin_model_part_outer_initial_name = mParameters["skin_model_part_outer_initial_name"].GetString();

KRATOS_ERROR_IF_NOT(mpModel->HasModelPart(skin_model_part_outer_initial_name))
<< "The skin_model_part '" << skin_model_part_outer_initial_name << "' was not created in the model.\n"
<< "Check the reading of the mdpa file in the import mdpa modeler."<< std::endl;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

This needs to be updated accordingly (CreateAndAddRegularGrid2d).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice catch Ricky, thanks!

Comment on lines 108 to 109
void NurbsGeometryModeler::CreateAndAddRegularGrid2D( ModelPart& r_model_part, const Point& A_xyz, const Point& B_xyz,
const Point& A_uvw, const Point& B_uvw, SizeType OrderU, SizeType OrderV,SizeType NumKnotSpansU, SizeType NumKnotSpansV, bool AddSurfaceToModelPart)
Copy link
Contributor

Choose a reason for hiding this comment

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

Why change this?

Comment on lines -253 to -255
void NurbsGeometryModeler::CreateAndAddRegularGrid3D( ModelPart& r_model_part, const Point& A_xyz, const Point& B_xyz,
const Point& A_uvw, const Point& B_uvw, SizeType OrderU, SizeType OrderV, SizeType OrderW,
SizeType NumKnotSpansU, SizeType NumKnotSpansV, SizeType NumKnotSpansW )
Copy link
Contributor

Choose a reason for hiding this comment

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

idem

Comment on lines +107 to +120
void CreateAndAddRegularGrid3D(
ModelPart& rModelPart,
const Point& A_xyz,
const Point& B_xyz,
const Point& A_uvw,
const Point& B_uvw,
const SizeType OrderU,
const SizeType OrderV,
const SizeType OrderW,
const SizeType NumKnotSpansU,
const SizeType NumKnotSpansV,
const SizeType NumKnotSpansW,
const bool AddVolumeToModelPart) override;

Copy link
Contributor

Choose a reason for hiding this comment

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

idem

@NickNick9
Copy link
Contributor Author

@andrewgorgi whenever you have time can you review this?

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.

4 participants