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

[StructApp] Remove inconsistency between static and transient adjoint formulations #12846

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

Conversation

JonasHill
Copy link

📝 Description
Current situation:
Current implementation of adjoint formulations in structures and their primal counterparts have inconsistencies.
The residual formulation of static structural primals is:
$R = f - Ku$
The residual used in adjoint formulation is:
$R = Ku -f$
This inconsistency causes problems when we want to exend the same formulation for the transient adjoints, therefore this PR removes the inconsistency and makes the adjoint formulation to follow the residual formulation of the static primals.

The current implementation of the response function in structural mechanics provides the negative partial gradient ($-\frac{\partial J}{\partial u}$) to account for the inconsistency in the adjoint formulation.
This PR fixes the responses as well to follow the residual formulation of the primal counterparts.

🆕 Changelog

  • Multiplying the AdjointFiniteDifferenceBaseElement::CalculateLeftHandSide matrix with minus 1
  • Fixing the response functions

@JonasHill JonasHill added Applications C++ Behaviour Change changes behaviour but not the API labels Nov 13, 2024
@JonasHill JonasHill self-assigned this Nov 13, 2024
@JonasHill JonasHill requested a review from a team as a code owner November 13, 2024 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Applications Behaviour Change changes behaviour but not the API C++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant