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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
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

Old   November 12, 2009, 12:55
Default
  #2
New Member
 
Christian Kröner
Join Date: Nov 2009
Location: Bonn
Posts: 7
Rep Power: 16
ckroener is on a distinguished road
The code is now partly working, i have now used:
Code:
    const Field<scalar>& pp = this->patch().lookupPatchField
    (
        "p",
        reinterpret_cast<const volScalarField*>(NULL),
        reinterpret_cast<const scalar*>(NULL)
    );
    scalar deltaTime = this->db().time().deltaT().value();
    scalarField area = this->patch().magSf();
     Field<scalar> magVel=max(1e-30,mag((*this)));
    Field<scalar> 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
ckroener is offline   Reply With Quote

Old   November 23, 2015, 09:05
Default
  #3
New Member
 
pat
Join Date: Oct 2015
Posts: 1
Rep Power: 0
riespt is on a distinguished road
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
riespt is offline   Reply With Quote

Old   April 14, 2022, 02:26
Default
  #4
New Member
 
tushar kanti mandal
Join Date: May 2015
Posts: 1
Rep Power: 0
tushar@iitb is on a distinguished road
Dear Christian,

Can you share your final code (*.C and *.H files) for this problem? I am trying to use the Coulomb friction-based boundary condition. Your code will be very helpful for me.

with thanks and regards,
Tushar

Last edited by tushar@iitb; April 15, 2022 at 02:48.
tushar@iitb is offline   Reply With Quote

Reply


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 10:56.