
[Sponsors] 
February 8, 2012, 03:36 
Hyperelastic material

#1 
New Member
Join Date: Mar 2010
Posts: 12
Rep Power: 7 
Hello,
How can I define a hyperelastic material? In another word how can I have access to deformation gradient to calculate the left CauchyGreen deformation tensor? I know that the Saint Venant–Kirchhoff model has been already implemented but it doesn't give any clue since this model doesn't use invariants or principle stretches. Thanks in advance ZKM 

February 10, 2012, 18:46 

#2 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 580
Rep Power: 19 
Hi ZKM,
You can see how other solid material models are implemented in $FOAM_SOLVERS/newStressAnalysis/materialModels/rheologyModel/rheologyLaws, in OpenFOAM1.6ext. The deformation gradient is grad(U).T() in total Lagrangian solver like newStressedFoam. Best regards, Philip 

February 11, 2012, 15:56 

#3 
New Member
Join Date: Mar 2010
Posts: 12
Rep Power: 7 
Perfect Philip! Thanks!
I've never gone into that directory; It has very interesting stuffs. Other questions: Is there any specific operator for eigenvalue calculations in OpenFoam? I want to use it for calculating principle stretches. Is there any documentation for rheologyLaws? I saw cohesive zone there. Can it be used for crack modelling? Is there any example? 

February 11, 2012, 17:05 

#4 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 580
Rep Power: 19 
ZKM,
I have never calculated eigenvalues/principal stretches in OpenFOAM but I think the EigenSolver class can do what you want located at: $FOAM_SRC/OpenFOAM/matrices/Matrix/tools/EigenSolver Unfortunately there is no documentation that I know of for rheologyLaws (as yet). Yes OpenFOAM can model crack propagation (search for Ivankovic in sciencedirect). Our research group here in Dublin work on many fracture mechanics problems with OpenFOAM. I will prepare you a simple crack propagation case on Monday and post it here for you to try. Hopefully we will add our solid mechanics solvers (small strain, large strain, plasticity, cracks etc) to OpenFOAM1.6ext in the next year so more people can use them. Philip 

February 12, 2012, 03:23 

#5 
New Member
Join Date: Mar 2010
Posts: 12
Rep Power: 7 
Thanks Philip for your response.
The example would be a great help. 

February 14, 2012, 19:30 

#6 
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 580
Rep Power: 19 
ZKM,
I have emailed you the solver and test case. If anyone else wants it, just drop me a PM with your email. I found some code for calculating principal stresses, you could do something similar to find the principal strains/stretches. Code:
Info << "\nCalculate maximal principal stress ..." << flush; // Principal stresses volVectorField sigmaMax ( IOobject ( "sigmaMax", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedVector("sigmaMax", dimPressure, vector::zero) ); vectorField& sigmaMaxI = sigmaMax.internalField(); forAll (sigmaMaxI, cellI) { vector eValues = eigenValues(sigma.internalField()[cellI]); tensor eVectors = eigenVectors(sigma.internalField()[cellI]); scalar maxEValue = 0; label iMax = 1; forAll(eValues, i) { if (eValues[i] > maxEValue) { maxEValue = eValues[i]; iMax = i; } } if (iMax != 1) { if (iMax == 0) { sigmaMaxI[cellI] = eVectors.x()*eValues.x(); } else if (iMax == 1) { sigmaMaxI[cellI] = eVectors.y()*eValues.y(); } else if (iMax == 2) { sigmaMaxI[cellI] = eVectors.z()*eValues.z(); } } } 

July 21, 2012, 07:16 

#7  
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 580
Rep Power: 19 
Quote:
The displacement gradient, also known as the Jacobian matrix (J) is grad(U): J = fvc::grad(U) The deformation gradient (F) is (I + J) which is (I + grad(U)): F = (I + J) = I + fvc::grad(U) Philip 

December 11, 2013, 10:07 

#8  
Senior Member
Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 580
Rep Power: 19 
Quote:
The displacement gradient, also known as the transpose of the Jacobian matrix (J) is grad(U): J = fvc::grad(U).T() The deformation gradient (F) is (I + J) which is (I + grad(U).T()): F = (I + J) = I + fvc::grad(U).T() Phew. 

Tags 
fsi, hyperelastic, solid, solid fluid interaction 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Water subcooled boiling  Attesz  CFX  7  January 5, 2013 04:32 
Simulation of a single bubble with a VOFmethod  Suzzn  CFX  18  October 2, 2009 04:18 
mass flow in is not equal to mass flow out  saii  CFX  2  September 18, 2009 08:07 
Wall Material  Maple  FLUENT  4  March 13, 2009 06:39 
TwoPhase Buoyant Flow Issue  Miguel Baritto  CFX  4  August 31, 2006 12:02 