multiple joints; tensor mechanics

70 views
Skip to first unread message

呉尽

unread,
Jan 10, 2020, 5:04:47 AM1/10/20
to moose-users
Hi, there!
Recently, I have been trying to use Tensor Mechanics to make an analysis of jointed rock.
There are three sets of joints in the jointed rock. I want to use three types of joints in the model to simulate three different joints.
In the Moose framework, I tried to use ComputeMultiPlasticityStress. There is only one tranverse_direction
So, I do not know how to simulate three joints with different material properties and orientations.
Is it possible to use three traverse_directions in order to simulate three sets of joints?

Thanks!
Jin

Wilkins, Andy (Mineral Resources, Pullenvale)

unread,
Jan 10, 2020, 5:26:44 PM1/10/20
to moose...@googlegroups.com
There are a few ways of doing this - you almost discovered one!  Use ComputeMultiPlasticityStress as your Material, and then use a number of TensorMechanicsPlasticWeakPlaneTensileN (with normal_vector set appropriately) as your plastic_models.

a


From: moose...@googlegroups.com <moose...@googlegroups.com> on behalf of 呉尽 <goji...@gmail.com>
Sent: Friday, 10 January 2020 8:04 PM
To: moose-users <moose...@googlegroups.com>
Subject: multiple joints; tensor mechanics
 
--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/7af61426-57ea-46a3-8bd0-e426ff8e9009%40googlegroups.com.

呉尽

unread,
Jan 11, 2020, 7:56:53 AM1/11/20
to moose-users
Thanks so much for your hint.
TensorMechanicsPlasticWeakPlaneTensileN can be used to simulate tensile joints.
However, I still need a similar function TensorMechanicsPlasticWeakPlaneShearN to simulate multiple shear joints.
Is there any function available?

Thanks!
Best regards,
Jin

2020年1月11日土曜日 6時26分44秒 UTC+8 andrew.wilkins:
There are a few ways of doing this - you almost discovered one!  Use ComputeMultiPlasticityStress as your Material, and then use a number of TensorMechanicsPlasticWeakPlaneTensileN (with normal_vector set appropriately) as your plastic_models.

a


From: moose...@googlegroups.com <moose...@googlegroups.com> on behalf of 呉尽 <goji...@gmail.com>
Sent: Friday, 10 January 2020 8:04 PM
To: moose-users <moose...@googlegroups.com>
Subject: multiple joints; tensor mechanics
 
Hi, there!
Recently, I have been trying to use Tensor Mechanics to make an analysis of jointed rock.
There are three sets of joints in the jointed rock. I want to use three types of joints in the model to simulate three different joints.
In the Moose framework, I tried to use ComputeMultiPlasticityStress. There is only one tranverse_direction
So, I do not know how to simulate three joints with different material properties and orientations.
Is it possible to use three traverse_directions in order to simulate three sets of joints?

Thanks!
Jin

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose...@googlegroups.com.

Wilkins, Andy (Mineral Resources, Pullenvale)

unread,
Jan 13, 2020, 5:47:01 PM1/13/20
to moose-users
Hi Jin,

I'm afraid that MOOSE cannot do this at present. There are two ways forward:

(1) Thoroughly consider whether your rock is best modelled using 3 sets of orthogonal joints. I work with mining engineers and we often model jointed rock, which is why i've coded all the rock-mechanics plastic models (Mohr-Coulomb, Drucker-Prager, WeakPlane, etc). A few years ago we were considering using 3 sets of orthogonal joints, as you are doing, and i started coding the "TensileN" and "ShearN". However, upon further consideration, the joints weren't really grouped into 3 orthogonal sets: this was naturally fractured rock, and the joints actually had a transverse-isotropic orientation in reality. The mining engineers liked to conceptualise the rock as having 3 sets of mutually orthogonal joint sets, but that was not reality. In my case, CappedDruckerPrager, or CappedDruckerPrager+WeakPlane was a much more appropriate plastic model. Perhaps in your case you can just use CappedDruckerPrager.

(2) If you decide that 3 sets of orthogonal joints are appropriate, we can work together to code a MOOSE class. I think i have time to do the core coding, but will require some major input from you:
(a) Full specification of the problem, including specification of the yield functions, the strengths and how precisely they soften/harden, and the flow rules, and probably other things that i've forgotten right now. This should be in MOOSE markdown format, because of the documentation requirement (b).
(b) You will be responsible for the tests and documentation. This is not a small job. I reckon it'd take me 2-3 days, since i'm very familiar with MOOSE development, so i estimate it will take you BETWEEN 2 WEEKS AND 2 MONTHS.
If you are prepared to commit to this, then we can work out some time frames.

a

Ph: +61 7 3327 4497. Fax: +61 7 3327 4666
Queensland Centre for Advanced Technologies
PO Box 883, Kenmore, Qld, 4069

> -----Original Message-----
> From: moose...@googlegroups.com <moose...@googlegroups.com>
> On Behalf Of ??
> Sent: Saturday, 11 January 2020 10:57 PM
> To: moose-users <moose...@googlegroups.com>
> Subject: Re: multiple joints; tensor mechanics
>
> Thanks so much for your hint.
> TensorMechanicsPlasticWeakPlaneTensileN can be used to simulate tensile
> joints.
> However, I still need a similar function
> TensorMechanicsPlasticWeakPlaneShearN to simulate multiple shear joints.
> Is there any function available?
>
> Thanks!
> Best regards,
> Jin
>
> 2020年1月11日土曜日 6時26分44秒 UTC+8 andrew.wilkins:
>
> There are a few ways of doing this - you almost discovered one! Use
> ComputeMultiPlasticityStress as your Material, and then use a number of
> TensorMechanicsPlasticWeakPlaneTensileN (with normal_vector set
> appropriately) as your plastic_models.
>
> a
>
> ________________________________
>
> From: moose...@googlegroups.com <javascript:>
> <moose...@googlegroups.com <javascript:> > on behalf of 呉尽
> <goji...@gmail.com <javascript:> >
> Sent: Friday, 10 January 2020 8:04 PM
> To: moose-users <moose...@googlegroups.com <javascript:> >
> Subject: multiple joints; tensor mechanics
>
> Hi, there!
> Recently, I have been trying to use Tensor Mechanics to make an
> analysis of jointed rock.
> There are three sets of joints in the jointed rock. I want to use three
> types of joints in the model to simulate three different joints.
> In the Moose framework, I tried to use
> ComputeMultiPlasticityStress. There is only one tranverse_direction.
> So, I do not know how to simulate three joints with different material
> properties and orientations.
> Is it possible to use three traverse_directions in order to simulate
> three sets of joints?
>
> Thanks!
> Jin
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "moose-users" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to moose...@googlegroups.com <javascript:> .
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/moose-users/7af61426-57ea-46a3-
> 8bd0-e426ff8e9009%40googlegroups.com
> <https://groups.google.com/d/msgid/moose-users/7af61426-57ea-46a3-
> 8bd0-
> e426ff8e9009%40googlegroups.com?utm_medium=email&utm_source=foot
> er> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "moose-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to moose-users...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/moose-users/b85f317c-949a-4d24-
> 8a05-ecdc31127777%40googlegroups.com
> <https://groups.google.com/d/msgid/moose-users/b85f317c-949a-4d24-
> 8a05-
> ecdc31127777%40googlegroups.com?utm_medium=email&utm_source=foo
> ter> .

呉尽

unread,
Jan 14, 2020, 12:59:09 AM1/14/20
to moose-users
Thanks so much for your suggestions!
The sets of joints in the jointed rock are not necessarily mutually orthogonal. The 3 orthogonal sets of joints is a special case.
Actually, the jointed rock contains several sets of joints. Maybe one, two, three or more than 3 sets of joints exist in the jointed rock. These sets of joints are not necessarily orthogonal.
Each set of joints has different constitutive laws (WeakPlaneTensile and WeakPlaneShear in the moose framework). For the intact rock itself, a Mohr-Coulomb failure criterion with tension cut-off is enough. The following figure (from JointedRock”: A three-dimensional equivalent continuum model for systematically jointed rock masses) shows a jointed rock containing three arbitrarily oriented joint sets.

Fractured-rock-mass-containing-three-arbitrarily-oriented-joint-sets.png

TensorMechanicsPlasticWeakPlaneTensileN is nice in modeling tensile failure of several joints.

How about replacing the tensile failure with the shear failure criterion in the TensorMechanicsPlasticWeakPlaneTensileN to make a similar function TensorMechanicsPlasticWeakPlaneShearN?

I hope you can understand my problem.


Thanks!

Best regards,

Jin





2020年1月14日火曜日 6時47分01秒 UTC+8 andrew.wilkins:

Wilkins, Andy (Mineral Resources, Pullenvale)

unread,
Jan 14, 2020, 6:22:16 PM1/14/20
to moose-users
So that picture is an example of a conceptualisation that is likely to be unrealistic, in my experience. I advise that you use DruckerPrager or MohrCoulomb, unless you have *experimental evidence* concerning the rock mass that demonstrates the rock mass is best modelled using 3 joint sets. For instance, in horizontally stratified rock masses, there is lots of evidence that the horizontal bedding planes are weak, so using WeakPlaneTensile+WeakPlaneShear (+ DP or MC for the solid rock) is appropriate. Just because someone has drawn a cartoon doesn't mean it's real: you actually need experimental evidence concerning the large-scale rock mass.

OK, let's say that, despite the rant in the previous paragraph, you do want to model with weak planes. Yes, you can make a TensorMechanicsWeakPlaneShearN class. And it will work, in principal. However, in practise you may experience poor convergence. MOOSE may find it difficult to find the active yield surfaces (see my paper doi.org/10.1002/nme.5284 for discussion). The big advantage of doing it this way, rather than the method i proposed below is very rapid development, but it will never be as robust. Give it a try! Compare the Tensile with TensileN to give you a start!

a




Ph: +61 7 3327 4497. Fax: +61 7 3327 4666
Queensland Centre for Advanced Technologies
PO Box 883, Kenmore, Qld, 4069

> -----Original Message-----
> From: moose...@googlegroups.com <moose...@googlegroups.com>
> On Behalf Of ??
> Sent: Tuesday, 14 January 2020 3:59 PM
> To: moose-users <moose...@googlegroups.com>
> Subject: Re: multiple joints; tensor mechanics
>
> Thanks so much for your suggestions!
> The sets of joints in the jointed rock are not necessarily mutually orthogonal.
> The 3 orthogonal sets of joints is a special case.
> Actually, the jointed rock contains several sets of joints. Maybe one, two,
> three or more than 3 sets of joints exist in the jointed rock. These sets of
> joints are not necessarily orthogonal.
> Each set of joints has different constitutive laws (WeakPlaneTensile and
> WeakPlaneShear in the moose framework). For the intact rock itself, a Mohr-
> Coulomb failure criterion with tension cut-off is enough. The following figure
> (from JointedRock”: A three-dimensional equivalent continuum model for
> systematically jointed rock masses) shows a jointed rock containing three
> arbitrarily oriented joint sets.
>
>
>
> 46a3- <https://groups.google.com/d/msgid/moose-users/7af61426-57ea-
> 46a3->
> > 8bd0-e426ff8e9009%40googlegroups.com
> <http://40googlegroups.com>
> > <https://groups.google.com/d/msgid/moose-users/7af61426-
> 57ea-46a3- <https://groups.google.com/d/msgid/moose-users/7af61426-
> 57ea-46a3->
> > 8bd0-
> >
> e426ff8e9009%40googlegroups.com?utm_medium=email&utm_source=foot
> <http://40googlegroups.com?utm_medium=email&utm_source=foot>
> > er> .
> >
> >
> > --
> > You received this message because you are subscribed to the
> Google Groups
> > "moose-users" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send an
> > email to moose...@googlegroups.com <javascript:> .
> > To view this discussion on the web visit
> > https://groups.google.com/d/msgid/moose-users/b85f317c-949a-
> 4d24- <https://groups.google.com/d/msgid/moose-users/b85f317c-949a-
> 4d24->
> > 8a05-ecdc31127777%40googlegroups.com
> <http://40googlegroups.com>
> > <https://groups.google.com/d/msgid/moose-users/b85f317c-
> 949a-4d24- <https://groups.google.com/d/msgid/moose-users/b85f317c-
> 949a-4d24->
> > 8a05-
> >
> ecdc31127777%40googlegroups.com?utm_medium=email&utm_source=foo
> <http://40googlegroups.com?utm_medium=email&utm_source=foo>
> > ter> .
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "moose-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to moose-users...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/moose-users/04a43651-7af4-4ef4-
> be21-1f3743c8e0a0%40googlegroups.com
> <https://groups.google.com/d/msgid/moose-users/04a43651-7af4-4ef4-
> be21-
> 1f3743c8e0a0%40googlegroups.com?utm_medium=email&utm_source=foot
> er> .

呉尽

unread,
Jan 16, 2020, 10:36:55 AM1/16/20
to moose-users
Thanks so much for your answer. I am trying to understand your proposed methods.
For now, I want to make a TensorMechanicsWeakPlaneShearN class to model with weak planes.
I started to make it with imitating the TensorMechanicsWeakPlaneTensileN class.
It's really not easy for me to make it.
The attached files showing C++ scripts I coded. 
Because I am unfamiliar with plastic theories, I believe there are a lot of errors😂.
If you have any time, can you have a look and correct errors I made?

Thanks!
Best regards,
Jin




2020年1月15日水曜日 7時22分16秒 UTC+8 andrew.wilkins:
TensorMechanicsPlasticWeakPlaneShearN.C
TensorMechanicsPlasticWeakPlaneShearN.h

Wilkins, Andy (Mineral Resources, Pullenvale)

unread,
Jan 16, 2020, 6:11:23 PM1/16/20
to moose-users
The code looks reasonably OK. My main suggestion is to compile it and test it. Don't underestimate the amount of testing and documentation you need to do - set aside at least 1 week. At the moment, definitely dyieldFunction_dstress is incorrect. I wonder whether you want to add a "tip" smoother to the cone, since what the return is occurring along the shear=0 line? Also, this helps with properly defining the derivatives. See TensorMechanicsPlasticWeakPlaneShear.

A final point: have you thought about softening? For instance, with this strategy, if the joints open in tension, your cohesion and friction angles cannot soften.

a


Ph: +61 7 3327 4497. Fax: +61 7 3327 4666
Queensland Centre for Advanced Technologies
PO Box 883, Kenmore, Qld, 4069

> -----Original Message-----
> From: moose...@googlegroups.com <moose...@googlegroups.com>
> On Behalf Of ??
> Sent: Friday, 17 January 2020 1:37 AM
> To: moose-users <moose...@googlegroups.com>
> Subject: Re: multiple joints; tensor mechanics
>
> doi.org/10.1002/nme.5284 <http://doi.org/10.1002/nme.5284> for
> 57ea- <https://groups.google.com/d/msgid/moose-users/7af61426-57ea->
> > 46a3- <https://groups.google.com/d/msgid/moose-
> users/7af61426-57ea- <https://groups.google.com/d/msgid/moose-
> users/7af61426-57ea->
> > 46a3->
> > > 8bd0-e426ff8e9009%40googlegroups.com
> <http://40googlegroups.com>
> > <http://40googlegroups.com>
> > > <https://groups.google.com/d/msgid/moose-
> users/7af61426- <https://groups.google.com/d/msgid/moose-
> users/7af61426->
> > 57ea-46a3- <https://groups.google.com/d/msgid/moose-
> users/7af61426- <https://groups.google.com/d/msgid/moose-
> users/7af61426->
> <http://40googlegroups.com?utm_medium=email&utm_source=foot
> <http://40googlegroups.com?utm_medium=email&utm_source=foot> >
> > > er> .
> > >
> > >
> > > --
> > > You received this message because you are subscribed to the
> > Google Groups
> > > "moose-users" group.
> > > To unsubscribe from this group and stop receiving emails
> from it,
> > send an
> > > email to moose...@googlegroups.com <javascript:> .
> > > To view this discussion on the web visit
> > > https://groups.google.com/d/msgid/moose-users/b85f317c-
> 949a- <https://groups.google.com/d/msgid/moose-users/b85f317c-949a->
> > 4d24- <https://groups.google.com/d/msgid/moose-
> users/b85f317c-949a- <https://groups.google.com/d/msgid/moose-
> users/b85f317c-949a->
> > 4d24->
> > > 8a05-ecdc31127777%40googlegroups.com
> <http://40googlegroups.com>
> > <http://40googlegroups.com>
> > > <https://groups.google.com/d/msgid/moose-
> users/b85f317c- <https://groups.google.com/d/msgid/moose-
> users/b85f317c->
> > 949a-4d24- <https://groups.google.com/d/msgid/moose-
> users/b85f317c- <https://groups.google.com/d/msgid/moose-
> users/b85f317c->
> <http://40googlegroups.com?utm_medium=email&utm_source=foo
> <http://40googlegroups.com?utm_medium=email&utm_source=foo> >
> > > ter> .
> >
> >
> >
> > --
> > You received this message because you are subscribed to the
> Google Groups
> > "moose-users" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send an
> > email to moose...@googlegroups.com <javascript:> .
> > To view this discussion on the web visit
> > https://groups.google.com/d/msgid/moose-users/04a43651-7af4-
> 4ef4- <https://groups.google.com/d/msgid/moose-users/04a43651-7af4-
> 4ef4->
> > be21-1f3743c8e0a0%40googlegroups.com
> <http://40googlegroups.com>
> > <https://groups.google.com/d/msgid/moose-users/04a43651-
> 7af4-4ef4- <https://groups.google.com/d/msgid/moose-users/04a43651-
> 7af4-4ef4->
> > be21-
> >
> 1f3743c8e0a0%40googlegroups.com?utm_medium=email&utm_source=foot
> <http://40googlegroups.com?utm_medium=email&utm_source=foot>
> > er> .
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "moose-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to moose-users...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/moose-users/f3a1e857-bdde-475f-
> b73b-e67a60ddd701%40googlegroups.com
> <https://groups.google.com/d/msgid/moose-users/f3a1e857-bdde-475f-
> b73b-
> e67a60ddd701%40googlegroups.com?utm_medium=email&utm_source=fo
> oter> .

呉尽

unread,
Jan 24, 2020, 4:25:32 AM1/24/20
to moose-users
Hi!
It is not easy to derive dyieldFunction_dstress and dflowPotential_dstress for a weak plane.
I think there are still errors with my code. The attached files show the modified code.
Although there are no compile errors, I am trying to test it to find whether it is correct or not.
I have two questions:
1. In the WeakPlaneShear model, the yield function is expressed in the local coordinate. It is easy to know df_dsig or dflowPotential_dstress in the local coordinate. After df_dsig or dflowPotential_dstress in the local coordinate are known, should their values be transformed into the global coordinate? It's the way I modified the code. But I am not sure about it.
2. When I test it, I want to see plastic zones indicated by shear failure of one joint set.
I created an AuxKernel:
[wp_shear]
type = MaterialStdVectorAux
index = 0
variable = wp_shear
property = wp_plastic_internal_parameter
[]
with an AuxVariable
[wp_shear]
family = MONOMIAL
order = CONSTANT
[]
It showed Material property 'wp_plastic_internal_parameter' is not defined on block 0.
What should I do to see weak plane shear failure of a zone?

Thanks!
Best regards,
Jin





2020年1月17日金曜日 7時11分23秒 UTC+8 andrew.wilkins:
TensorMechanicsPlasticWeakPlaneShearN.C
TensorMechanicsPlasticWeakPlaneShearN.h
Reply all
Reply to author
Forward
0 new messages