smoothing stabilise in fracture module

17 views
Skip to first unread message

Van Dung Nguyen

unread,
Jul 11, 2019, 5:44:35 AM7/11/19
to mofem Group
Dear all,

I have a question about the option  -smoothing_stabilise, its value is kept by Smoother::smootherData::sTabilised. 

It is not only for "SmoothingAlphaAdaptivity" as used in SmoothingAlphaAdaptivity to re-estimated the value of "alpha-smothing".

What is its role? Does "-smoothing_stabilise 0" means  the control of element quality without considering "SmoothingAlphaAdaptivity".

Best regards,

Van Dung 

Lukasz Kaczmraczyk

unread,
Jul 11, 2019, 7:15:38 AM7/11/19
to mofem Group
Hello,

This parameter has been introduced to improve convergence at each step. Note that constraints at the crack front are unilateral, like for contact, and the problem is strongly nonlinear.

If Smoother::smootherData::sTabilised set to zero, stabilisation is switched off. Mesh smoothing is working in the volume, and crack front can move freely only controlled by physical equations. 

If Smoother::smootherData::sTabilised  is not zero it restrain movement of crack front, such that displacements of crack front which lead to a pathological change of distortion of the elements are penalised.  This restraint is reset each load step, so does effect of it is not accumulated for analysis. Function SmoothingAlphaAdaptivity is used to control the value of Smoother::smootherData::sTabilised such that amount of penalising force is a small fraction of material force, approximately 1% up to %0.01. Note that, that this has a marginal effect on load factor, it makes it more significant, for example, if penalising force would be % one on all crack fronts, load factor would be more meaningful by 0.01%. If the mesh has a good quality effect of it is marginal.

Regards,
Lukasz

Lukasz Kaczmraczyk

unread,
Jul 11, 2019, 7:24:44 AM7/11/19
to mofem Group
One thing to add. The effect of that parameter is only significant for large load steps. The large step deteriorates convergence, and step size is reduced to keep error under control, and SmoothingAlphaAdaptivity reduces the value of Smoother::smootherData::sTabilised. Moreover, it does not affect the calculation of crack release energy at the end of the load step.

D-Nguyen

unread,
Jul 11, 2019, 8:40:13 AM7/11/19
to mofem Group
Thanks for response,

Your explanation seems to  be the one for "-smoother_alpha" (value provided by a double). But Smoother::smootherData::sTabilised is only a boolean by introducing  -smoothing_stabilise 0 or 1. 
Clearly, -smoothing_stabilise 1 allows "SmoothingAlphaAdaptivity" as in CPSolvers::solvePropagation::SmoothingAlphaAdaptivity::operator() as

if (cP.smootherFe->smootherData.sTabilised) {
 ....


I found that it is used to modify the idexes in  in Smoother::OpRhsSmoother::aSemble, OpLhsSmoother::aSemble, i.e.

if (!dAta.forcesOnlyOnEntitiesRow.empty()) {
        iNdices.resize(nb_dofs, false);
        noalias(iNdices) = row_data.getIndices();
        if (!smootherData.sTabilised) {
          indices_ptr = &iNdices[0];
        }
 ...

The point I do not understand: '"-smoothing_stabilise" not only activates/desactivates  the "SmoothingAlphaAdaptivity" but also do other thing in the smoother force. And the question is "-smoothing_stabilise" relating to the activation/deactivation of the control of element quality?

Regards,

Van Dung

Lukasz Kaczmraczyk

unread,
Jul 11, 2019, 8:54:18 AM7/11/19
to mofem Group
Correct, my answer was a bit confusing, -smoothing_stabilise 1 switch on stabilisation and something else. 

  • If -smoothing_stabilise 0, forces controlling mesh quality at crack front nodes are not assembled to the right-hand side. Displacements at the crack front are exquisitely controlled by the physical equations.  However, nodes in the volume and body surface, not on the crack front, are displaced in material current configuration to maintain mesh quality. Value of cP.smootherAlpha does not influence results in any way, except matrix conditioning, i.e. floating point truncation errors.
  • If -smoothing_stabilise 1, then in Smoother::OpRhsSmoother::aSembleOpLhsSmoother::aSemble non-physical forces controlling mesh quality are assembled into crack front nodes. In that case, SmoothingAlphaAdaptivity is on, to keep the value of cP.smootherAlpha such that it has negligible impact on the results, i.e. load factor and crack front displacements.
  • This parameter is some kind of trick for making a solution robust. If you can run analysis without -smoothing_stabilise 0, is better. Form other hands it has almost no impact on final results.



D-Nguyen

unread,
Jul 11, 2019, 8:59:55 AM7/11/19
to mofem Group
Thanks, your explanation is clear for me.

Best regards,

Van Dung

Lukasz Kaczmraczyk

unread,
Jul 11, 2019, 9:02:19 AM7/11/19
to mofem Group
Great, This is the dirtiest numerical trick which is used. You will find nothing worse than that :)
Reply all
Reply to author
Forward
0 new messages