|
[Sponsors] |
Implementation of traction BC in tractionDisplacementFvPatchVectorField.C |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 12, 2011, 13:58 |
Implementation of traction BC in tractionDisplacementFvPatchVectorField.C
|
#1 |
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 93
Rep Power: 21 |
Hello,
I am trying to understand how the implementation of the traction boundary condition in tractionDisplacementFvPatchVectorField.C works. On line 176-180, it says: -------------------------------- gradient() = ( (traction_ + pressure_*n)/rho.value() + twoMuLambda*fvPatchField<vector>::snGrad() - (n & sigmaD) )/twoMuLambda; -------------------------------- 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 fvPatchField<vector>::snGrad() 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? Cheers, Johan |
|
July 31, 2011, 20:21 |
|
#2 |
Senior Member
Hisham Elsafti
Join Date: Apr 2011
Location: Braunschweig, Germany
Posts: 257
Blog Entries: 10
Rep Power: 17 |
Hi Johan
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) Best regards, Hisham |
|
|
|
Similar Threads | ||||
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 06:10 |
Please explain the implementation of species transport Eqn in reactingFoam | kallipygian | OpenFOAM Running, Solving & CFD | 0 | October 13, 2008 08:29 |
FEM Implementation of pressure-correction scheme | Markus | Main CFD Forum | 4 | January 6, 2007 02:53 |