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

Update solid viscosity models #273

Closed
1 task done
aabrown100-git opened this issue Sep 17, 2024 · 2 comments
Closed
1 task done

Update solid viscosity models #273

aabrown100-git opened this issue Sep 17, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@aabrown100-git
Copy link
Collaborator

aabrown100-git commented Sep 17, 2024

Problem

Currently, the code only has a Newtonian solid viscosity implemented. In this model, the viscous deviatoric Cauchy stress is given by

$\sigma_{vis}^{dev} = 2 \mu \mathbf{d}^{dev}$,

where

$\mathbf{d}^{dev} = \frac{1}{2} (\nabla_{x} \mathbf{v} + \nabla_{x} \mathbf{v}^T) - \frac{1}{3} \nabla \cdot \mathbf{v} \mathbf{I}$

or in terms of the 2nd Piola-Kirchhoff stress

$\mathbf{S}_{vis} = 2 \mu J \mathbf{F}^{-1} \mathbf{d}^{dev} \mathbf{F}{-T}$

A recent cardiac mechanics benchmark problem calls for a viscous pseudo-potential model for solid viscosity.

$\Psi_{vis} = \frac{\mu}{2} \text{tr}\dot{\mathbf{E}}^2$,

$S_{vis}= \frac{\partial \Psi_{vis}}{\partial \dot{\mathbf{E}}} = \mu \dot{\mathbf{E}}$

We should implement this new solid viscosity model.

Solution

  • Implement the new viscous pseudo-potential model for solid viscosity
  • Allow the user to choose between the Newtonian and pseudo-potential models in the input file

This has been already been done in svFSI (https://github.com/vvedula22/svFSI). So we just need to translate the relevant parts of this code.

I have a functional draft of this feature here

Additional context

This is related to #269. I want to first fix this issue, so that existing struct, ustruct, and FSI test cases are run with zero viscosity.

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines
@aabrown100-git aabrown100-git added the enhancement New feature or request label Sep 17, 2024
@ktbolt
Copy link
Collaborator

ktbolt commented Sep 25, 2024

@aabrown100-git Does it make sense to create a Viscosity class that can be used for both fluids and solids?

@aabrown100-git
Copy link
Collaborator Author

aabrown100-git commented Sep 26, 2024

Copying the discussion from #270

From @ktbolt
"
The thing to do is to internally have separate solid and fluid viscosity parameters and a single Viscosity parameter in the user interface defined by context.

For example: A fluid domain

   <Domain id="0" >
      <Equation> fluid </Equation>
      <Density> 100.0 </Density>
      <Viscosity model="Constant"> <Value> 10.0 </Value> </Viscosity>
      <Backflow_stabilization_coefficient> 0.3 </Backflow_stabilization_coefficient>
   </Domain>

and a solid domain

   <Domain id="1" >
      <Equation> struct </Equation>
      <Constitutive_model type="stVK"> </Constitutive_model>
      <Density> 100.0 </Density>
      <Viscosity> 1.0 </Viscosity>
      <Elasticity_modulus> 5.6e7 </Elasticity_modulus>
      <Poisson_ratio> 0.4 </Poisson_ratio>
   </Domain>

These can be processed in DomainParameters::set_values() using the Equation parameter for context.

It would be better of course to have a Viscosity class that dealt with both fluid and solid viscosity models.
"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants