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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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