Skip to content

Use Tensors in solid-poro elements#1910

Open
amgebauer wants to merge 1 commit into4C-multiphysics:mainfrom
amgebauer:use-some-tensors-in-solid-poro
Open

Use Tensors in solid-poro elements#1910
amgebauer wants to merge 1 commit into4C-multiphysics:mainfrom
amgebauer:use-some-tensors-in-solid-poro

Conversation

@amgebauer
Copy link
Copy Markdown
Member

With this PR, I try to use a few more Tensors in the solid-poro framework. I could not transfer all Voigt-notations, but at least a few. This will simplify things if we want to use the elements in 2D.

I also changed many methods to return the linearization w.r.t. det F instead of the displacements. This allows us to reuse assembly methods that we have implemented for the solids (and extract a pure pressure term assembly which might be useful in a broader context.)

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR expands tensor-based formulations in the solid-poro element implementations (reducing Voigt usage) and refactors several pressure-related linearizations to be expressed w.r.t. the determinant of the deformation gradient (J=\det F), enabling reuse of solid assembly utilities and facilitating future 2D support.

Changes:

  • Switch multiple solid-poro calculations (velocity/pressure-based) from Voigt/matrix plumbing to tensor types + Voigt “views” where needed.
  • Refactor pressure/stress internal force and stiffness contributions to use PK2 tensors and a new pressure-only stiffness assembly helper.
  • Update solid element geometric stiffness assembly API/call sites to pass PK2 explicitly (stress.pk2_) and adjust unit tests/benchmarks accordingly.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
unittests/solid_3D_ele/4C_solid_3D_ele_calc_lib_test.cpp Updates unit test call to geometric stiffness to pass PK2 tensor.
tests/benchmark_tests/solid_3D_ele/4C_solid_3D_ele_calc_lib_benchmark.cpp Updates benchmark call to geometric stiffness to pass PK2 tensor.
src/solid_poro_3D_ele/4C_solid_poro_3D_ele_calc_pressure_velocity_based.cpp Converts several operations to tensor-based forms; refactors pressure-force/stiffness assembly paths.
src/solid_poro_3D_ele/4C_solid_poro_3D_ele_calc_pressure_based.cpp Refactors porosity/solid-pressure linearization to be w.r.t. (J); uses tensor-based pressure force/stiffness assembly.
src/solid_poro_3D_ele/4C_solid_poro_3D_ele_calc_lib.hpp Broad tensorization (stress, gradients, Cauchy–Green); refactors porosity linearizations to scalar d/d(J).
src/solid_3D_ele/4C_solid_3D_ele_calc_mulf_fbar.hpp Updates geometric stiffness call to pass PK2 tensor explicitly.
src/solid_3D_ele/4C_solid_3D_ele_calc_mulf.hpp Updates geometric stiffness call to pass PK2 tensor explicitly.
src/solid_3D_ele/4C_solid_3D_ele_calc_lib.hpp Adds add_pressure_stiffness_matrix and changes geometric stiffness API to accept PK2 tensor.
src/solid_3D_ele/4C_solid_3D_ele_calc_fbar.hpp Updates geometric stiffness call to pass PK2 tensor explicitly.
src/solid_3D_ele/4C_solid_3D_ele_calc_eas.hpp Updates geometric stiffness call to pass PK2 tensor explicitly.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

@amgebauer amgebauer force-pushed the use-some-tensors-in-solid-poro branch from 543134f to 5b509fd Compare March 30, 2026 16:32
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.

2 participants