|July 12, 2011, 12:58||
Implementation of traction BC in tractionDisplacementFvPatchVectorField.C
Join Date: May 2011
Posts: 9Rep Power: 6
I am trying to understand how the implementation of the traction boundary condition in tractionDisplacementFvPatchVectorField.C works.
On line 176-180, it says:
(traction_ + pressure_*n)/rho.value()
+ twoMuLambda*fvPatchField<vector>::snGrad() - (n & sigmaD)
When we apply this to a displacement field, D, the code sets the value of the normal gradient, n.grad(D), on the relevant boundary (right?).
What I don't understand is why n.grad(D) is set to the value appearing on the right hand side in the code.
As I understand it
means n.grad(), and so if we mutliply by twoMuLambda on both sides of the equation above, we get something like
(2*mu + lambda) n.grad(D) = (t + p*n)/rho + (2*mu + lambda) n.grad(D) - n.sigma
Then the left hand side and the second term on the right hand side cancel out, and we are left with
(t + p*n)/rho = n.sigma
Which is physically sound... but I am still puzzled about how this is used to set n.grad(D) on the boundary, since the n.grad(D)-terms apparenly cancel out.
Can anyone give a hint as to how this works?
|July 31, 2011, 19:21||
Hisham El Safti
Join Date: Apr 2011
Location: Braunschweig, Germany
Blog Entries: 10Rep Power: 8
I'm trying to understand this BC as well. I'm not really sure but I think this calculation is called for each time (or iteration) the governing equation is to be solved, and therefore, the current normal gradient fvPatchField<vector>::snGrad() is cancelled with the current stress sigmaD and the relation is more like:
gradient() = (traction + p * n) / (rho (2mu+lamda))
which is also sound if you can consider the strain=grad(u)
I don't know if that is 100% correct. But thanks for the post (saved me some time while going through the code)
|Thread||Thread Starter||Forum||Replies||Last Post|
|Can anyone give me some hint on how to make traction free boundary condition?||poplar||OpenFOAM||3||January 14, 2015 03:37|
|easy educational compressible navier stokes implementation anywhere?||Boogiwoogie||Main CFD Forum||0||December 19, 2010 07:32|
|Implementation issues of fvSchemes / laplacianScheme, in particular gaussLaplacianSch||thomek||OpenFOAM Programming & Development||0||October 18, 2010 05:10|
|Please explain the implementation of species transport Eqn in reactingFoam||kallipygian||OpenFOAM Running, Solving & CFD||0||October 13, 2008 07:29|
|FEM Implementation of pressure-correction scheme||Markus||Main CFD Forum||4||January 6, 2007 02:53|