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

Fix bug for wave ports #192

Merged
merged 6 commits into from
Feb 12, 2024
Merged

Fix bug for wave ports #192

merged 6 commits into from
Feb 12, 2024

Conversation

sebastiangrimberg
Copy link
Contributor

@sebastiangrimberg sebastiangrimberg commented Feb 8, 2024

Note: The re-baselined regression tests for cpw/cpw_wave_uniform and cpw/cpw_wave_adaptive are expected: The quadrature rule fix changes the computed mode shape slightly which affects both the propagation constant as well as the excitation of the model in the driven solve. The changes (all seem to be on the order of a few percent) seem justified in this regard.

@sebastiangrimberg sebastiangrimberg added bug Something isn't working enhancement New feature or request driven Related to driven simulations in the frequency domain labels Feb 8, 2024
@sebastiangrimberg sebastiangrimberg force-pushed the sjg/wave-ports-dev branch 2 times, most recently from b004c15 to c178e8d Compare February 9, 2024 00:19
palace/models/waveportoperator.cpp Outdated Show resolved Hide resolved
palace/models/waveportoperator.cpp Outdated Show resolved Hide resolved
Comment on lines +615 to +617
auto Dnn = std::make_unique<mfem::HypreParMatrix>(
port_h1_fespace->GetComm(), port_h1_fespace->Get().GlobalTrueVSize(),
port_h1_fespace->Get().GetTrueDofOffsets(), &diag);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I see Dtt on the previous diff and Dnn now, but am not seeing it in the block system above. From here it looks like an empty matrix with a diagonal of zeros, is this just to ensure some memory in the system matrix for applying the essential bc elimination? I assume then this is the reason for the difference compared to the nullptr initialization for the off diagonal blocks of B in GetSystemMatrixB.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's right. HypreParMatrixFromBlocks does not allow for a fully empty row or column so that it can generate the right block sizes from the input. So, we just explicitly pass a zero diagonal block for Bnn.

@sebastiangrimberg sebastiangrimberg merged commit 1a87b57 into main Feb 12, 2024
17 checks passed
@sebastiangrimberg sebastiangrimberg deleted the sjg/wave-ports-dev branch February 12, 2024 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working driven Related to driven simulations in the frequency domain enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants