feat: Add Coulomb friction/cohesion per cell fields#4067
Conversation
| TestDeck( | ||
| name="ALM_inclinedFault_ESG_friction_cohesion_smoke", | ||
| description='PoroElastic ALM inclined fault with cohesion/frictionCoeff provided in mesh (per cell variation)', | ||
| partitions=((1, 1, 1),), |
There was a problem hiding this comment.
Please add MPI run
| partitions=((1, 1, 1),), | |
| partitions=((1, 1, 1), (2, 2, 1)), |
jafranc
left a comment
There was a problem hiding this comment.
Nice step towards full heterogeneity in parameters.
Though please minimize interfaces changes.
|
|
||
| real64 const cohesion = hasCoulombParams ? frictionLaw.getReference< real64 >( CoulombFriction::viewKeyStruct::cohesionString() ) : 0.0; | ||
| real64 const frictionCoefficient = hasCoulombParams ? frictionLaw.getReference< real64 >( CoulombFriction::viewKeyStruct::frictionCoefficientString() ) : 0.0; | ||
| arrayView1d< real64 const > cohesion; |
There was a problem hiding this comment.
I would zero-ed cohesion and frictionCoefficient and revise the logic for !hasCoulombParams case (error ? warning ?)
| arrayView1d< real64 const > frictionCoefficient; | ||
| if( hasCoulombParams ) | ||
| { | ||
| cohesion = frictionLaw.getWrapper< array1d< real64 > >( fields::contact::cohesion::key() ).reference().toViewConst(); |
There was a problem hiding this comment.
getField< fields::contact::cohesion >() ?
| { | ||
|
|
||
| GEOS_UNUSED_VAR( tractionVector ); | ||
| GEOS_UNUSED_VAR( k, tractionVector ); |
There was a problem hiding this comment.
please don't change signature for unused new params !
There was a problem hiding this comment.
On second read, it seems to be quite idiomatic. That's fine
| { | ||
| integer const originalFractureState = fractureState[kfe]; | ||
| frictionWrapper.updateFractureState( dispJump[kfe], traction[kfe], fractureState[kfe] ); | ||
| frictionWrapper.updateFractureState( kfe, dispJump[kfe], traction[kfe], fractureState[kfe] ); |
There was a problem hiding this comment.
please don't change signature to introduce unused parameters ! It just increases complexity with no reward.
| { | ||
|
|
||
| GEOS_UNUSED_VAR( tractionVector ); | ||
| GEOS_UNUSED_VAR( k, tractionVector ); |
There was a problem hiding this comment.
On second read, it seems to be quite idiomatic. That's fine
|
@OmarDuran @joshua-white |
This PR adds the following features:
At the moment this feature is only available for external splitting with mesh_doctor workflow. It appears more complicated to deal with internal surface generator. This will give place to another PR.