Refactoring interface with contact relations #1626
Replies: 3 comments 2 replies
-
|
Beta Was this translation helpful? Give feedback.
-
It would surely be interesting to have some Any options? |
Beta Was this translation helpful? Give feedback.
-
The hydraulic aperture should be a function of what? Normal stress? Some dilation slip state variable?
I would argue that the
As long as it is proper state variable. What is the state variable for contact constitutive relations? I would think it would be some sort of plastic slip?
I don't think we would want the concept of
The aperture does define the volume of the surface element in some respects. But the jump would be more descriptive |
Beta Was this translation helpful? Give feedback.
-
Goal
I am trying to think about how to restructure the interface with the contact relations and the permeability models to allow for the following:
LagrangianContactSolver
.hydraulicAperture
which kind of assumes a lubrication theory type of model. This works well for open fractures but makes it hard to use models like those that are being implemented in [Feature] implement fault permeability models #1564 by @jhuang2601.Proposal
I am thinking of doing the following things:
dispJump
in all contact solvers (2 out of 3 already explicitly have one). This will always contain the displacement jump vector in a basis formed by the surface normal and two tangential vectors.traction
in all contact mechanics solvers written in the same basis as thedsipJump
.arrayView2d<real64> m_traction
, inContactBase
(a view to the traction field registered on thesubRegion
by the solvers). I think it would be nice forContactBase
to actually own the data but it may be difficult because theLagrangianSolver
uses the traction as a primary variable and I am not sure that theDofManager
will work properly if we do that (e.g., I am thinking of methods likeaddField()
). @klevzoff , @Andrea, let me know if I am wrong about this point.hydraulicAperture
inContactBase
(with proper getters if needed).hydraulicAperture
registered by the flow solver and only have it registered by poromechanics solvers with fractures.array1d< real64 > m_elementAperture
from theSurfaceElementSubRegion
since it has more to do with the physics than with the geometry and it carries the same info as thedispJump
. This way thesubRegion
only has geometrical information.FlowSolverBase
: https://github.com/GEOSX/GEOSX/blob/449701f1aaf7d0a2c235e2060760ab0c4fca3340/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp#L53 and https://github.com/GEOSX/GEOSX/blob/449701f1aaf7d0a2c235e2060760ab0c4fca3340/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp#L272. The permeability in FlowSolverBase can be assumed to only be a function of flow variables so we can get rid of this dependency of the aperture.HydrofractureSolver
,SinglePhasePoromechanicsSolverEmbeddedFractures
) have andupdateState
method in which they launch a kernel to update the fracture permeability and the hydraulic aperture and compute derivatives w.r.t. to thedispJump
. The HydrofracSolver can then chain rule to get derivatives w.r.t. the nodal displacements.CoupledSolid
and in the permeability models:@andrea-franceschini @rrsettgast @joshua-white @castelletto1 @klevzoff @francoishamon @TotoGaz I don't think the solution I m proposing is perfect yet. Thoughts? Suggestions for improvement?
Beta Was this translation helpful? Give feedback.
All reactions