Skip to content
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

Fsi ustruct #341

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

Fsi ustruct #341

wants to merge 12 commits into from

Conversation

dcodoni
Copy link
Contributor

@dcodoni dcodoni commented Feb 10, 2025

Addin 'ustruct' to the FSI framework

Current situation

Currently the FSI framework allows to use only the 'struct' formulation for solving the solid portion. The 'ustruct' formulation would benefit the FSI framework in terms of consistency (fluid and solid will solve for the same degrees of freedom and have similar formulations) and performance, since block iterative methods could be used to solve the fully assembled monolithic system.

Release Notes

I added the 'ustruct' formulation to the FSI framework and new test cases are added.

Testing

New tests added in the fsi tests folder:

  • pipe_3d_ustruct
  • pipe_RCR_ustruct.

Code of Conduct & Contributing Guidelines

if (cPhys == Equation_ustruct)
{
ustruct::ustruct_do_assem(com_mod, eNoN, ptr, lKd, lK, lR);
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Are you assembling twice, calling ustruct::ustruct_do_assem() and then eq.linear_algebra->assemble() ?

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is not the mesh we are using in the test.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Why are we using brick elements ?

Copy link
Member

Choose a reason for hiding this comment

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

We could also just add another input file to an existing mesh without copying the mesh. We may be already doing that for another test case.

auto N0 = fs_1[0].N.col(g);
auto N1 = fs_1[1].N.col(g);
ustruct::ustruct_3d_m(com_mod, cep_mod, vmsStab, fs_1[0].eNoN, fs_1[1].eNoN, nFn, w, Jac, N0, N1, Nwx, al, yl, dl, bfl, fN, ya_l, lR, lK, lKd);
//throw std::runtime_error("[construct_fsi] USTRUCT3D_M not implemented");
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can remove this comment

auto N0 = fs_2[0].N.col(g);
auto N1 = fs_2[1].N.col(g);
ustruct::ustruct_3d_c(com_mod, cep_mod, vmsStab, fs_2[0].eNoN, fs_2[1].eNoN, w, Jac, N0, N1, Nwx, Nqx, al, yl, dl, bfl, lR, lK, lKd);
//throw std::runtime_error("[construct_fsi] USTRUCT3D_C not implemented");
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can remove this comment

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.

5 participants