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

Add a new feature for 2nd order symmetric tensor split #15920

Merged
merged 4 commits into from Oct 31, 2023

Conversation

taojinllnl
Copy link
Contributor

Add two tensor functions for the split of a 2nd-order symmetric tensor into a positive part and a negative part based on the signs of the eigenvalues obtained from the spectrum decomposition. The function positive_negative_split() performs the positive-negative split of the 2nd-order symmetric tensor given as the input. The function positive_negative_projectors() not only performs the split, but also provides the derivatives (two fourth-order tensors) of the positive/negative part of the tensor with respect to the input tensor.
Committed files include

  1. modified "symmetric_tensor.h" with proper doxygen documentations for the two new tensor functions
  2. a unit test put under tests/physics/
  3. an entry in "minor" for the changelog.

Tao Jin

…t and a negative part

split a 2nd-order symmetric tensor based on the signs of the eigenvalues obtained from a spectrum decomposition, also provide the corresponding 4th-order tensors that are the derivatives of the positive/negative part of the tensor with respect to the original tensor.
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
include/deal.II/base/symmetric_tensor.h Outdated Show resolved Hide resolved
Change the output types of the two tensor functions as a pair and a tuple
@taojinllnl
Copy link
Contributor Author

@bangerth All the suggestions from the code review are addressed. Please let me know if there are other required changes/updates.

@blaisb blaisb requested a review from bangerth October 18, 2023 11:18
Copy link
Member

@blaisb blaisb left a comment

Choose a reason for hiding this comment

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

I'm not an expert on this part of tensor calculus, but this seems like a very clean PR to me. Nicely written test also.

Copy link
Member

@bangerth bangerth left a comment

Choose a reason for hiding this comment

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

My apologies for letting this sit for a while :-( This looks great, thanks very much for making the improvements!

@bangerth bangerth added this to the Release 9.6 milestone Oct 31, 2023
@bangerth
Copy link
Member

/rebuild

@bangerth bangerth merged commit ea14d34 into dealii:master Oct 31, 2023
15 checks passed
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.

None yet

3 participants