# "Coulomb"-type BC

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

 November 6, 2009, 07:21 "Coulomb"-type BC #1 New Member   Christian Kröner Join Date: Nov 2009 Location: Bonn Posts: 7 Rep Power: 8 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& magS=patch().magSf(); const fvPatchField& pp=patch().lookupPatchField ("p"); const fvPatchField& rhop=patch().lookupPatchField("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

 November 12, 2009, 13:55 #2 New Member   Christian Kröner Join Date: Nov 2009 Location: Bonn Posts: 7 Rep Power: 8 The code is now partly working, i have now used: Code: ``` const Field& pp = this->patch().lookupPatchField ( "p", reinterpret_cast(NULL), reinterpret_cast(NULL) ); scalar deltaTime = this->db().time().deltaT().value(); scalarField area = this->patch().magSf(); Field magVel=max(1e-30,mag((*this))); Field newValueFraction_; newValueFraction_ = min(1.,max(0.,tanDe_*deltaTime/magVel*pp*area));``` so now i have created a newValueFracation_ which uses a tanDe_ read from dictionary. The Simulation seems to run fine, but now I have some problems with paraFoam... But I will try to check if the BC is somehow meaningfull Christian

 November 23, 2015, 10:05 #3 New Member   pat Join Date: Oct 2015 Posts: 1 Rep Power: 0 Dear Christian I am also interested in this coulomb-type slip bc. I guess you started from the partialSlipfvPatchField.C/.H and modified the "evaluate" member function? are there any caveats with this code, i.e. is it "meaningful", as you decribe in your last post? thanks for your answer best, pat

 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 daniel_mills OpenFOAM Running, Solving & CFD 44 February 17, 2011 18:08 ronaldo OpenFOAM 5 September 18, 2009 08:13 nuovodna OpenFOAM Running, Solving & CFD 45 September 2, 2009 17:56 ivanyao OpenFOAM Running, Solving & CFD 6 September 5, 2008 20:50 michele OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 2 July 15, 2005 04:15

All times are GMT -4. The time now is 07:10.

 Contact Us - CFD Online - Top