View Issue Details

IDProjectCategoryView StatusLast Update
0002058OpenFOAMPatchpublic2018-07-10 11:25
ReporterJuho Assigned Tohenry  
Status resolvedResolutionfixed 
Product Versiondev 
Fixed in Versiondev 
Summary0002058: [kineticTheory] Frictional stress at walls
DescriptionApplying Coulomb’s law of friction, the frictional shear stress at wall is tauwf = pf*sin(phi) where pf is frictional pressure and phi is the angle of repose.

The current kineticTheory frictional stress models have some peculiarities:
- JohnsonJacksonFrictionalStressModel writes frictional viscosity on walls i.e. wall mut is muKin + muFric. Note that the viscosity at the wall is independent of the velocity gradient at the wall, thus the model just sets the viscosity at the wall, not the shear stress.
- SchaefferFrictionalStressModel sets frictional viscosity at wall to zero i.e. wall mut = muKin and muFric = 0 at wall.

The particleSlipJohnsonJackson boundary condition calculates a slip velocity at the wall and does not consider frictional stresses in any way. It uses mut provided by kineticTheoryModel which may or may not include frictional viscosity to calculate particle velocity at the wall.

With Schaeffer frictional stress model and JohnsonJackson BC: The slip velocity at the wall is calculated based on just the kinetic portion of the viscosity and is roughly consistent with Johnson & Jackson (1987), but frictional stresses at the wall are always neglected.

With JohnsonJackson frictional stress model and BC: Unlike with Schaeffer model, the mut now includes muFric but the frictional stress component is not accounted for in the wall slip velocity calculation. Frictional viscosity is included in the momentum equation wall shear stress calculation, but the actual stress depends on the (incorrect) wall slip velocity calculation. In addition, as noted above, the JohnsonJackson muFric doesn’t account for the velocity gradient so the frictional shear stress component would not describe the frictional shear stress in any case. If there would have fully packed particles sliding on a wall and Theta = 0, the wall would be frictionless!

I've attached a patch where I've attempted to correct the above issues:

- Frictional viscosity is stored separately as nuFric to allow lookup from BCs.
- Maximum nut is no longer hard coded but a user selectable model parameter with a default value 1000.

- The evaluation functions take const phaseModel as a parameter instead of volScalarField to make the model interface more general.

- Frictional viscosity is now calculated also on the boundaries
- tauwf = pf*sin(phi) = muFric*mag(U.snGrad())
- muFric = pf*sin(phi)/mag(U.snGrad())

NEW: JohnsonJacksonSchaefferFrictionalStressModel
- Combines JohnsonJackson frictional pressure with Schaeffer viscosity

- Still included in the patch, although the viscosity calculation that does not account for the velocity gradients does not really describe frictional stresses.
- Could be removed?

- nu = nut - nuFric i.e. wall slip velocity is calculated from the kinetic viscosity
- Note that the momentum equation still uses nut in the final stress calculation i.e. includes the frictional stresses.
Steps To ReproduceI've attached a L-bend test case that can be used to evaluate the models. With the original implementation the particles do not pile up even with extreme material parameters (phi = 90 and noSlip). See the attached comparison image.
Additional InformationJohnson, P.C., Jackson, R., Frictional-collisional constitutive relations for granular material, with application to plane shearing. J. Fluid Mech., vol. 176, pp. 67-93, 1987
Tagskinetic theory



2016-04-21 09:33


fricModPatch.tar.gz (10,389 bytes)


2016-04-21 09:33


LBend_testCase.tar.gz (70,715 bytes)


2016-04-21 09:34


Lbend_fricMod_spec.png (79,062 bytes)   
Lbend_fricMod_spec.png (79,062 bytes)   


2016-04-21 09:49

manager   ~0006150

Thanks for the patch, I will review it today.

Would it be worth updating the JohnsonJacksonFrictionalStressModel model in the same manner as SchaefferFrictionalStressModel or shall I just remove it?

Do you think it would be a good idea to include the Lbend case in the tutorials which are also used for development and release testing?


2016-04-22 11:10

reporter   ~0006159

I added a corrected version of the test case. I am sorry for any confusion the previous one may have caused. It could be useful to have it or something similar as a tutorial.

Regarding the JohnsonJacksonFrictionalStressModel: In my opinion it could be removed as it doesn't really produce frictional behavior, but someone else may have a different opinion?


2016-04-22 11:12


LBend_corrected.tar.gz (4,654 bytes)


2016-04-22 14:31

manager   ~0006160

Thanks Juho for the patch and test-case both of which are included in
commit 6edac8f9ca7e0a7749ddcf616026e48ede29f258

Issue History

Date Modified Username Field Change
2016-04-21 09:33 Juho New Issue
2016-04-21 09:33 Juho File Added: fricModPatch.tar.gz
2016-04-21 09:33 Juho File Added: LBend_testCase.tar.gz
2016-04-21 09:34 Juho File Added: Lbend_fricMod_spec.png
2016-04-21 09:49 henry Note Added: 0006150
2016-04-22 11:10 Juho Note Added: 0006159
2016-04-22 11:12 Juho File Added: LBend_corrected.tar.gz
2016-04-22 14:31 henry Note Added: 0006160
2016-04-22 14:31 henry Status new => resolved
2016-04-22 14:31 henry Fixed in Version => dev
2016-04-22 14:31 henry Resolution open => fixed
2016-04-22 14:31 henry Assigned To => henry
2017-08-03 13:46 Juho Tag Attached: kinetic theory
2017-08-03 13:46 Juho Tag Attached: kineticTheory
2018-07-10 11:25 administrator Tag Detached: kineticTheory