Skip to content

Conversation

@pcarruscag
Copy link
Member

@pcarruscag pcarruscag commented Apr 12, 2020

Proposed Changes

Implements some features that will be necessary to eventually replace the elasticity-based mesh deformation. Namely symmetry boundary condition and the use of the DEFORM_LIMIT option to limit how much of the domain is deformed.

Reduces the discrete adjoint memory usage by disabling the recording of routines that are not relevant or differentiable.

Cleans up some redundant MPI comms in CFEASolver and moves all of them to the methods of that solver (i.e. no more explicit MPI comms in structural integration / iteration).

Makes the structural objective functions available as screen/history output under the name COMBO.

Improves/fixes the incremental load approach when used for multizone problems.

Related Work

#919 #594

PR Checklist

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with the '-Wall -Wextra -Wno-unused-parameter -Wno-empty-body' compiler flags).
  • My contribution is commented and consistent with SU2 style.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp) , if necessary.

@talbring
Copy link
Member

Thanks @pcarruscag ! The symmetry BC was exactly what is needed to remove the old grid deformation and to maintain the same functionalty. I am gonna remove it in a separate PR. Furthermore, since we can include the grid deformation in the adjoint solver, in the end SU2_DOT will only have to deal with the surface deformation.

@pcarruscag
Copy link
Member Author

pcarruscag commented Apr 15, 2020

@talbring symmetry it is not the only thing. Can we decide as a group what that is going to look like and discuss the trade-offs? Especially how it will be used, right now the deformation settings are very messy, and the code has no information regarding how/if the different motions can be combined.

@talbring
Copy link
Member

Sure! We also have a lot of other things to discuss. Lets organize a more structured meeting. I will open a poll for the date on slack (@ALL: please join if you haven't so far). Furthermore I will prepare an agenda.

Copy link
Member

@economon economon left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks for the changes!

I think this is ready to go, and we can continue the discussion about the deformation usage as a group on slack / a call / elsewhere.

Comment on lines +478 to +489
const bool ActiveTape = AD::TapeActive();
AD::StopRecording();

Compute_StiffMatrix(geometry[MESH_0], numerics, config);

if (ActiveTape) AD::StartRecording();

/*--- Clear residual (loses AD info), we do not want an incremental solution. ---*/
SU2_OMP_PARALLEL
{
LinSysRes.SetValZero();
}
Copy link
Member Author

@pcarruscag pcarruscag Apr 16, 2020

Choose a reason for hiding this comment

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

I am having a third second look at this bit (so I won't merge it just yet).
Although the results did not change from this memory usage tweak, I think some dependencies might be lost here as this is equivalent to assuming the stiffness matrix does not depend on the reference (undeformed) mesh coordinates.
Which is also an approximation made in SU2_DOT.

@pcarruscag pcarruscag merged commit b67c0e8 into develop Apr 17, 2020
@pcarruscag pcarruscag deleted the grid_deformation_legacy_cleanup branch April 17, 2020 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants