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

"Coulomb"-type BC

Register Blogs Community New Posts Updated Threads Search

 
 
LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old   November 6, 2009, 06:21
Default "Coulomb"-type BC
  #1
New Member
 
Christian Kröner
Join Date: Nov 2009
Location: Bonn
Posts: 7
Rep Power: 16
ckroener is on a distinguished road
Hello Foamers,

i would like to use a Coulomb-Type BC for the simulation of a collapse of a granular column with interFoam.

Therefore, i want to mimic a kind of stick-slip BC by utilizing the partSlip BC and introducing a calculated valueFraction.

The flow at the boundary should feel an additional friction term F_c=-u_t/|u_t|*tan(delta)*N, where delta is the bottom friction angle, N the normal force acting on the Boundary and u_t is the velocity at the patch.

The change in velocity due to this force could be callculated, by assuming free slip, and correcting the velocity by:

u_t=u_fs - deltaT*u_fs/|u_fs| *tan(delta)*pressure*area
u_t=u_fs*(1-deltaT/|u_fs|*tan(delta)*pressure*area)

so i would like to calculte the valueFraction by:

Code:
if(deltaT/|u_fs|*tan(delta)*pressure*area>=0){
valueFraction=deltaT/|u_fs|*tan(delta)*pressure*area
}
else{ valueFraction=0;}
Now I have some questions:
1) Is it legal to handle the bottom friction in this way? Or is there a better way to introduce an bottom frition law?

2) I'm new to OpenFoam and, therefore, have some problems with the fundamental basics of implementing the BC.

a) Can I use

Code:
    const Field<scalar>& magS=patch().magSf();
    const fvPatchField<scalar>& pp=patch().lookupPatchField<volScalarField, scalar> ("p");
    const fvPatchField<scalar>& rhop=patch().lookupPatchField<volScalarField, scalar>("rho");
    scalar dt=runTime.deltaT();
to get the the values of p,rho and the area of the patch?

b) And to calculate the valueFraction could I use:

Code:
    if(dt/mag(*this)*valueFraction_*magS*pp*rhop>=0){
    valueFractionCalc_ = dt/mag(*this)*tandelta_*magS*pp*rhop;
    }
    else{valueFractionCalc_ =0;}
Any advice?

Thanks a lot!

Christian
ckroener is offline   Reply With Quote

 


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
Pressure instability with rhoSimpleFoam daniel_mills OpenFOAM Running, Solving & CFD 44 February 17, 2011 17:08
Flow Around a Cylinder ronaldo OpenFOAM 5 September 18, 2009 08:13
LiftDrag tool nuovodna OpenFOAM Running, Solving & CFD 45 September 2, 2009 17:56
Problem with compile the setParabolicInlet ivanyao OpenFOAM Running, Solving & CFD 6 September 5, 2008 20:50
[Commercial meshers] Trimmed cell and embedded refinement mesh conversion issues michele OpenFOAM Meshing & Mesh Conversion 2 July 15, 2005 04:15


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