[CIG-SHORT] Friction Solver optimization

Romain Jolivet jolivetinsar at gmail.com
Wed Aug 5 10:14:51 PDT 2015


I would like the bottom boundary to adapt to surface topography, so Neumann should be fine. Anyway I cannot apply DirichletBC to the bottom edges since the fault is one of them.
I will try to fix the top right edge in the Y direction to avoid rigid body motion.
Thanks
R

Sent with my phone, sorry for typos...

> Le 5 août 2015 à 18:01, Brad Aagaard <baagaard at usgs.gov> a écrit :
> 
> Romain,
> 
> It sounds like you don't have any Dirichlet constraints in the y direction. You need to constrain the y DOF of at least one node on each side of the fault to prevent rigid body motion.
> 
> What do you want to happen on the bottom boundary as you compress the domain and the fault slips? Do you want rigid body motion on each side of the fault or do you want the bottom boundary to remain where it is? This is going to dictate whether you constrain just the corners or impose some vertical motion on one side relative to the other.
> 
> Regards,
> Brad
> 
>> On 08/05/2015 09:53 AM, Romain Jolivet wrote:
>> Ok, I tried this and it works… as long as I do not impose any motion on the
>> boundaries of my model.
>> Please find attached a sketch of what I am trying to do.
>> 
>> What happens is:
>> - I impose a DirichletBC on the left edge of the domain (motion toward the right
>> with 1 cm/yr velocity). Right edge is fixed horizontally with DirichletBC (it
>> can move along y). Bottom boundary has a NeumannBC with normal traction equal to
>> \rho*g*h (see sketch). Upper boundary is left free. Material is
>> elasticplanestrain with quite canonical values. Domain is prestressed to
>> withstand lithostatic pressure. Fault rheology is static friction with no
>> cohesion (\mu=0.4, here).
>> 
>> - Until friction is lower than critical friction, nothing happens on the fault,
>> the domain is compressed, the solver is blazing fast
>> 
>> - Critical friction on the fault is always reached first at the node that
>> touches the bottom of the domain, hence this node starts to slip and there, the
>> solver gets really really slow and when it gets there, only the deepest node
>> slips, not any other node (hence, I end up with crazy stress values inside my
>> domain after a few iterations).
>> 
>> I tried to implement some fieldsplit to speed things up (as you showed me a few
>> years back) and KSP gives a NANORINF norm (so I must be doing something wrong here).
>> I tried to get to critical friction faster by imposing an initial shear stress
>> equal to \mu*\sigma_0 (see sketch), but the first step does not converge (norm
>> goes up and down around 1e-1…).
>> 
>> My guess is there is something physically inconsistent in the way I set up my
>> experiment, but after a few days of tinkering, I need some external person
>> looking at it…
>> If nothing seems obvious, I’ll send my cfg files and the mesh.
>> Cheers,
>> Romain
>> 
>> Romain Jolivet
>> Cambridge, UK
>> jolivetinsar at gmail.com <mailto:jolivetinsar at gmail.com>
>> UK: +44 7596 703 148
>> France: +33 6 52 91 76 39
>> USA: +1 (626) 560 6356
>> 
>> On 4 Aug 2015, at 18:37, Brad Aagaard <baagaard at usgs.gov
>> <mailto:baagaard at usgs.gov>> wrote:
>> 
>>> Romain,
>>> 
>>> You should be able to put Neumann BC on any boundary. For example, even if you
>>> overlap a Neumann BC with a Dirichlet BC, the Neumann BC just doesn't
>>> contribute. You do need sufficient Dirichlet constraints on each side of the
>>> fault to prevent rigid body motion. Instead of a Neumann BC you can also try a
>>> Dirichlet BC with just the node on the fault removed from the Dirichlet BC.
>>> 
>>> If the above suggestions don't resolve the issue, please send a diagram of
>>> your geometry and BC.
>>> 
>>> Regards,
>>> Brad
>>> 
>>> 
>>>> On 08/04/2015 06:43 AM, Romain Jolivet wrote:
>>>> Dear Brad, Matt, Charles and other Pylith developers,
>>>> 
>>>> I am currently trying to optimise the solver in an experiment I am
>>>> running and I am having some difficulties getting my run to go
>>>> faster...
>>>> 
>>>> The problem is 2D and has a fault cutting from top to bottom (with
>>>> some angle).  Since I gravity is “on”, I have to prescribe adequate
>>>> boundary conditions, particularly at the bottom of the model. As the
>>>> fault cuts the entire domain, one of its node belongs as well to the
>>>> bottom set of nodes. On this set of nodes, I therefore cannot impose
>>>> DirichletBC (otherwise, I am fixing to many degrees of freedom on the
>>>> node that also belongs to the fault). I therefore have imposed
>>>> Neumann BC, with normal traction opposing gravity forces at the
>>>> bottom of the domain.
>>>> 
>>>> When I try to use fieldsplit (to speed things up, following one of
>>>> your tutorials, a few years back), the linear solver does not run
>>>> since PETSc issues some NANORINF norm. When I remove the fault from
>>>> the model, it runs fine. I guess this is because one node of my
>>>> domain has 2 types of constraints (one Neumann BC and some frictional
>>>> BC). Is that correct? Should I keep going that way or is it a bad
>>>> idea in general (to mix Neumann and friction on the same node)?
>>>> 
>>>> Cheers, Romain
>>>> 
>>>> —————————————————————————————————————
>>>> ————————————————————————————————————— Romain Jolivet Postdoctoral
>>>> Fellow
>>>> 
>>>> University of Cambridge Department of Earth Sciences Bullard Labs
>>>> Madingley Rise Madingley Road Cambridge CB3 0EZ United Kingdom
>>>> 
>>>> email: rpj29 at cam.ac.uk <mailto:rpj29 at cam.ac.uk> Phone: +44 1223 748 938
>>>> Mobile: +44 7596 703
>>>> 148
>>>> 
>>>> France: +33 6 52 91 76 39 US: +1 (626) 560 6356
>>>> —————————————————————————————————————
>>>> —————————————————————————————————————
>>>> 
>>>> _______________________________________________ CIG-SHORT mailing
>>>> list CIG-SHORT at geodynamics.org <mailto:CIG-SHORT at geodynamics.org>
>>>> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>> 
>>> _______________________________________________
>>> CIG-SHORT mailing list
>>> CIG-SHORT at geodynamics.org <mailto:CIG-SHORT at geodynamics.org>
>>> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>> 
>> 
>> 
>> _______________________________________________
>> CIG-SHORT mailing list
>> CIG-SHORT at geodynamics.org
>> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/cig-short
> 
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/cig-short


More information about the CIG-SHORT mailing list