# tractionDisplacement BC for solidDisplacementFoam with Body Forces

 User Name Remember Me Password
 Register Blogs Members List Search Today's Posts Mark Forums Read

 April 13, 2012, 21:39 tractionDisplacement BC for solidDisplacementFoam with Body Forces #1 Senior Member     Hisham Elsafti Join Date: Apr 2011 Location: Braunschweig, Germany Posts: 249 Blog Entries: 10 Rep Power: 9 Hi Foamers, I need to add body forces to the solidDisplacementFoam solver. So it goes something similar to: Code: ```fvVectorMatrix DEqn ( fvm::d2dt2(D) == fvm::laplacian(2*mu + lambda, D, "laplacian(DD,D)") + bodyForces + divSigmaExp );``` Where the bodyForces vectorField represents accelerations (e.g. gravity). Nevertheless, I have not found a reference on how to add a term to gradient() in tractionDisplacement boundary condition. I mean that for example a term for strain resulting from thermal stresses is added to the gradient() in tractionDisplacementFvPatchVectorField.C like: Code: ```gradient() = ( (traction_ + pressure_*n)/rho + twoMuLambda*fvPatchField::snGrad() - (n & sigmaD) )/twoMuLambda; if (thermalStress) { ... gradient() += n*threeKalpha*T/twoMuLambda; }``` I really appreciate any ideas or directions to references (or even how to do it ) Best regards, Hisham El Safti

April 14, 2012, 02:40
#2
Senior Member

Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 618
Rep Power: 21
Quote:
 Originally Posted by Hisham Hi Foamers, I need to add body forces to the solidDisplacementFoam solver. So it goes something similar to: Code: ```fvVectorMatrix DEqn ( fvm::d2dt2(D) == fvm::laplacian(2*mu + lambda, D, "laplacian(DD,D)") + bodyForces + divSigmaExp );``` Where the bodyForces vectorField represents accelerations (e.g. gravity). Nevertheless, I have not found a reference on how to add a term to gradient() in tractionDisplacement boundary condition. I mean that for example a term for strain resulting from thermal stresses is added to the gradient() in tractionDisplacementFvPatchVectorField.C like: Code: ```gradient() = ( (traction_ + pressure_*n)/rho + twoMuLambda*fvPatchField::snGrad() - (n & sigmaD) )/twoMuLambda; if (thermalStress) { ... gradient() += n*threeKalpha*T/twoMuLambda; }``` I really appreciate any ideas or directions to references (or even how to do it ) Best regards, Hisham El Safti
Hi Hisham,

Body forces act on the volume of each cell and are source terms so they do not have boundary conditions.

So to add a body force term, just add 'rho*g' to the momentum equation, where g is a dimensionedVector -9.81 in the y direction.

Philip

April 14, 2012, 06:24
#3
Senior Member

Hisham Elsafti
Join Date: Apr 2011
Location: Braunschweig, Germany
Posts: 249
Blog Entries: 10
Rep Power: 9
Hi Philip

Quote:
 Originally Posted by bigphil Body forces act on the volume of each cell and are source terms so they do not have boundary conditions. So to add a body force term, just add 'rho*g' to the momentum equation, where g is a dimensionedVector -9.81 in the y direction. Philip
I agree with you that body forces do not need a BC for themselves but don't they contribute to displacement gradient at the boundary? I know that the boundary values can be retrieved from cells next to it.

I also have some other explicit terms that come from another variable (pore fluid velocity). They are all explicit terms (as the case of the "T" term in the DEqn in solidDisplacementFoam.C)
Code:
``` if (thermalStress)
{
const volScalarField& T = Tptr();
}```
So is the existence of a "T"-term added to the gradient() [at D's tractionDisplacement BC] due to the existence of a "T" BC or because "T" contributes to the displacement gradient?

Best regards,
Hisham

 April 14, 2012, 06:49 #4 Senior Member     Philip Cardiff Join Date: Mar 2009 Location: Dublin,Ireland Posts: 618 Rep Power: 21 Hi Hisham, The reason there is a T-term in the boundary condition is because T appears in the constitutive equation i.e. Hooke's law for a thermal elastic solid is: sigma =2*mu*e +lambda*I*tr(e) - (2*mu + 3*lambda)*alpha*(T - Tref)*I Therefore the traction on a boundary face is Trac = n . sigma, and then you sub in Hooke's law and rearrange this equation to get the equivalent (implicit) gradient on the boundary, which is what you set in the traction BC. So the traction BC will contain a T-term. But it will not contain any body force contributions. If you add rho*g to the momentum equation then it will work, I ran a quick test case and everything is fine on the traction boundaries. Philip

 April 14, 2012, 07:03 #5 Senior Member     Hisham Elsafti Join Date: Apr 2011 Location: Braunschweig, Germany Posts: 249 Blog Entries: 10 Rep Power: 9 Hi Philip Thanks a lot for your help! Now it is clear to me Best regards Hisham

 April 29, 2013, 13:26 #6 Member   Samer Join Date: Jan 2013 Posts: 31 Rep Power: 5 Hi Philip using the same methodology, if simulation fluid-structure interaction problem, and i want to transfer the temperature computed at the wall of a solid, as boundary condition for the fluid part (where there is a common patch between fluid and solid) ?? Best regards

April 30, 2013, 16:27
#7
Senior Member

Philip Cardiff
Join Date: Mar 2009
Location: Dublin,Ireland
Posts: 618
Rep Power: 21
Quote:
 Originally Posted by SamerAli Hi Philip using the same methodology, if simulation fluid-structure interaction problem, and i want to transfer the temperature computed at the wall of a solid, as boundary condition for the fluid part (where there is a common patch between fluid and solid) ?? Best regards
Hi Samer,

yes you can follow the same Dirichlet-Neumann coupling procedure to couple the temperature between the regions.

Philip

 Tags bodyforces, soliddisplacementfoam, tractiondisplacement

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post adam14qin FLUENT 24 August 1, 2013 13:34 sanmysterio Main CFD Forum 1 July 13, 2010 03:14 Fred CD-adapco 2 June 13, 2007 08:56 Ankan Main CFD Forum 0 August 2, 2005 02:13 Thomas P. Abraham Main CFD Forum 1 April 21, 1999 21:24

All times are GMT -4. The time now is 13:43.

 Contact Us - CFD Online - Top