Hi all,
I am having a problem with setting the gap size (uniform value, just to make it easier) in the Subspring Network Contact Model, which can be featured as microcrack fabric and enables the reproduction of initial compaction behaviour in the stress-strain curve of the UCS test. I ran both in 2D and 3D; in the console, it looks fine, meaning it assigns the reference gap, but it doesn’t. Because when I checked the plot: contact rgap, it shows zero. As I am trying to understand this model more, any feedback is welcome!
My reference paper is from Potyondy, D.O., & Fu, W. (2024). A 3D Subspring Network Breakable Voronoi Model for Rock: Laboratory Scale Behavior. In Proceedings, 58th U.S. Rock Mechanics/Geomechanics Symposium (ARMA, Golden, Colorado, USA, June 2024), ARMA 24-493. Alexandria, Virginia: ARMA
The source code of my model is from Verification Examples of Spring Network Model: Using the Rigid Body Spring Network Paradigm. But I adapted it to the Subspring Network Contact Model. Follow the same simulation procedures; in Step2Contacts, I paste it here:
;------------------------------------------
; Create the contacts and assign the proerties.
; See contacts.dat for more information.
model restore ‘voro’
[emod = 8.e+9]
[pois = 0.25]
[fricAngle = 30]
[tenStr = 5.e+06]
[cohFac = 2.5]
[facetTotal = 0.001]
[rgap = - 2e-6]
program call ‘contacts’
model save ‘voroContacts’
;------------------------------------------;
; Create the contacts and assign the properties
; Expected input parameters are:
; emod Young’s modulus
; pois Poisson ratio
; fric Friction coefficient
; tenStr Tensile strength
; cohFac Cohesion is set to this factor multiplied by the
; tensile strength.
; Instead of self-similar scaling, dilation has been modified so that
; the facets are all moved outward (in the facet normal direction)
; by the specified amount
rblock dilate expand 0.0001 keep-inertial
; Set the density and use local damping
rblock attribute density 2750 damp 0.7
; The following command specifies:
; 1) Use areas in contacts for computing stiffnesses
; 2) Stress accumulation while cycling is required for the springnetwork
; model
; 3) Do not create contacts with initial area less than 1% of the total facet
; area. This is more efficient than inhibiting the contacts but, for very
; large strain problems, inhibiting may be more desirable as the contacts
; can be checked periodically for activation.
rblock contact-resolution update-area true accumulate-stress true …
facet-total [facetTotal]
; Assign the springnetwork model as the default slot in the CMAT
contact cmat default model subspringnetwork method compute-stiffness …
emod [emod] poisson [pois] …
property rgap [rgap] sn_ten 1e100 sn_coh 1e100 …
sn_fa [fricAngle] …
fric [math.tan(fricAngle/180*math.pi)]
model clean all
;sn_gap -2e-6
;rgap -2e-6
; Apply any facet groups to contacts.
rblock apply-facet-groups
; Assign uniform tensile strength in this simple example.
contact property sn_ten [tenStr] sn_coh [tenStr*cohFac]
; Bond the rblock-rblock contacts
contact method bond range contact gap -10000 0
; If no gap is specified, then the bond is activated if the pieces overlap.
; So we need to specify the gap range