CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

Hyperelastic models implementation

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 16, 2017, 03:09
Default Hyperelastic models implementation
  #1
New Member
 
Behzad Taghilou
Join Date: Jul 2016
Posts: 7
Rep Power: 9
Behzad Taghilou is on a distinguished road
Hello,

My question is about how a hyperelastic model can be implemented in foam-extend?
The displacement gradient is needed in hyperelastic models.
I was starting with other rheology laws such as PronyViscoelastic model but in this model ((fvc::gradU)) is not used. When I define deformation gradient tensor from volTensorField class I get errors.
Could anyone provide me the solution?

Thanks a lot

Last edited by Behzad Taghilou; June 16, 2017 at 15:21.
Behzad Taghilou is offline   Reply With Quote

Old   June 19, 2017, 08:11
Default
  #2
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Hi,

if I get it right, you need the displacement field in the hyperelastic model, right? To do that, you can get access to the displacement field using the openfoam database. However, you have to be sure that this field exist, otherwise you will just get an runtime error.

Within your own model, you have access to the regIOobjects like:
Code:
volVectorField Displacement_ = this->db().lookupObject<volVectorField>("D");
The string "D" has to be replaced by the field you would like to access from the solver. I hope that is the answer to your question. Good luck,
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   June 19, 2017, 16:54
Default
  #3
New Member
 
Behzad Taghilou
Join Date: Jul 2016
Posts: 7
Rep Power: 9
Behzad Taghilou is on a distinguished road
Dear Tobias,
I imagine that I should define a elastic modulus (E) which is a function of the left Cauchy-Green deformation tensor (B).
In PronyViscoelastic.C file, the elastic modulus is a function of time.In $FOAM_SOLVERS/solidMechanics/deprecatedSolvers/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C The part of the definition of prony series is:
Code:
Foam::tmp<Foam::volScalarField> Foam::PronyViscoelastic::E(scalar t) const
{
    scalar E = 0.0;

    E = k_[0];

    for (int i=1; i<k_.size(); i++)
    {
        E += k_[i]*exp(-t/tau_[i]);
    }

    if (t < 0)
    {
        E = 0;
    }
But in hyperelastic models the elastic shear modulus should be a function of invariant of the left Cauchy-Green deformation tensor (B).
So if the left Cauchy-Green deformation tensor is accessible then how can I define a elastic modulus depending on it?
After all I'm not sure that this is the true way to define a hyperelastic material. If you have any solution tricks please let me know to do.

Bests
Behzad Taghilou is offline   Reply With Quote

Old   June 25, 2019, 05:30
Default
  #4
Member
 
Emad Tandis
Join Date: Sep 2010
Posts: 77
Rep Power: 15
EmadTandis is on a distinguished road
Quote:
Originally Posted by Behzad Taghilou View Post
Dear Tobias,
I imagine that I should define a elastic modulus (E) which is a function of the left Cauchy-Green deformation tensor (B).
In PronyViscoelastic.C file, the elastic modulus is a function of time.In $FOAM_SOLVERS/solidMechanics/deprecatedSolvers/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C The part of the definition of prony series is:
Code:
Foam::tmp<Foam::volScalarField> Foam::PronyViscoelastic::E(scalar t) const
{
    scalar E = 0.0;

    E = k_[0];

    for (int i=1; i<k_.size(); i++)
    {
        E += k_[i]*exp(-t/tau_[i]);
    }

    if (t < 0)
    {
        E = 0;
    }
But in hyperelastic models the elastic shear modulus should be a function of invariant of the left Cauchy-Green deformation tensor (B).
So if the left Cauchy-Green deformation tensor is accessible then how can I define a elastic modulus depending on it?
After all I'm not sure that this is the true way to define a hyperelastic material. If you have any solution tricks please let me know to do.

Bests

Dear Behzad,
I got interested in your explanation for hyperelastic material. I have implemented a Neo-Hookean constitutive model and want to extend it for mooney-rivlon material by calculating elasticity (E) as a function of B.

So, please let me now if you could implement your idea.
EmadTandis is offline   Reply With Quote

Reply

Tags
foam-extend, hyperelastic


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Two-fluid models vs mixture models for bubbly flows Hansong Tang Main CFD Forum 6 December 8, 2009 03:21
Implementation of New models in FLuent Najiha Fluent UDF and Scheme Programming 1 May 24, 2009 14:56
How can I use a model's outlet as another model's inlet?? jimmer STAR-CD 1 May 4, 2009 11:25
Turbulence models implementation vinz OpenFOAM Running, Solving & CFD 29 April 29, 2008 10:28
MODELS Murthy V N FLUENT 0 February 9, 2008 01:48


All times are GMT -4. The time now is 20:15.