Menu

#12 Loadings using @ImposedStress / @ImposedStrain for behaviours written using @Parser ImplicitFiniteStrain

2.1
closed
None
2015-09-28
2015-09-14
No

I created a discussion on this topic but I think this should be a ticket:

Is it possible to make possible the use of @ImposedStress / @ImposedStrain for behaviours written using @Parser ImplicitFiniteStrain?

Thanks!

Félix

Discussion

  • Helfer Thomas

    Helfer Thomas - 2015-09-14

    Hi Félix,

    Thank you for your question.

    @ImposedStrain is meaningless for finite strain behaviours, please consider using @ImposedDeformationGradient.

    @ImposedStress does work. At least for Cast3M behaviours.

    Indeed, use @ImposedStress reveals a severe bug in MTest when using aster behaviours : the consistent tangent operator is not correctly converted (aster made a rather unsual and cumbersome choice for storing the consistent tangent operator).

    The correction is straightforward and has been merged in revision 1080.

    You will find attached the correction for tfel-2.0.2 and tfel-2.0.3 so you can recompile you local version.

    Sincerly,

    Helfer Thomas

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-14
    • status: open --> closed
     
  • Helfer Thomas

    Helfer Thomas - 2015-09-15

    For information, 6 tests case have been added in mfront/tests/behaviours/aster.

     
  • Félix Latourte

    Félix Latourte - 2015-09-24

    Thank you Thomas.
    I recompiled the 2.0.3 version of mfront using the new .cxx file you provided.
    I could run an .mtest with @ImposedStress while it was impossible before.

    But I face an integration problem, the timestep keeps being divided and no convergence is reached. The error message I get in the bash is the following:

    ...
    iteration 99 : 1.10982e-39 8.67362e-19 (1 0.999999 0.999999 6.13925e-117 0 0 0 0 0)
    iteration 100 : 1.10982e-39 8.67362e-19 (1 0.999999 0.999999 -5.97722e-117 0 0 0 0 0)
    No convergence, the following criteria were not met :

    • imposed thermodynmic force not reached for component 0(imposed value : 0.00585938, computed value : 0, criteria : 0.001)

    Result of test 'unit behaviour test' of group 'MTest' : FAILED
    End of Test Suite : FAILED

    Maybe I need to change one parameter in the .mfront convergence settings?
    Actually I have
    @Theta 1.0;
    @Epsilon 1.e-6;
    @MaximumIncrementValuePerIteration 1.e-3;
    @IterMax 100 ;

    Thank you

    Félix

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-24

    Hi Félix,

    Thank you for testing. There are currently only a few dozen tests using this feature in finite strain.

    @Epsilon 1.e-6 is a much too low value, in particular when the tangent operator is needed. I recommand a least 1.e-11 to get converged and stable results .

    The problem with mtest is that it was initially meant for non regression tests and its convergence criteria are usually much too low for standard use. Please check the documentation of @StressEpsilton and @DeformationGradientEpsilon (or @StrainEpsilon if the last one is not documented yet):

    mtest --help-keyword=@StressEpsilon

    or consult : http://tfel.sourceforge.net/MTest-keywords.html

    Beware that the convergence criteria on stresses depends on the unit system you use.

    Thomas

     
  • Félix Latourte

    Félix Latourte - 2015-09-24

    Thank you for these inputs. I maybe replied too quckly concerning the use of @ImposedStress (my mtest was not correct). The @ImposedStress is finally not working, the bash output is

    test 'unit behaviour test' has thrown an exception (LUDecomp::exe : null pivot)

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-24

    Well, there are several possible explanation to that:

    1) the patch was not taken into account
    2) your system is not sufficiently constrained. It may happen with finite strain behavoiur as the number of degrees of freedom (F has 9 components) exceeds the number of equilibrium equations (the stresses has 6 components).

     
  • Félix Latourte

    Félix Latourte - 2015-09-24

    1) Before compiling I replaced the file in this folder of the sources:

    ./tfel-2.0.3/mfront/mtest/

    2) I tried a tensile test on [100] (SXX increasing, all other components=0)
    then after your remark I also tried a test in [159] direction using:

    @ImposedStress 'SXX' {0.: 0., 2.0E-1 : 0.93};
    @ImposedStress 'SYY' {0.: 0., 2.0E-1 : 23.4};
    @ImposedStress 'SZZ' {0.: 0., 2.0E-1 : 75.7};
    @ImposedStress 'SXY' {0.: 0., 2.0E-1 : 4.67};
    @ImposedStress 'SXZ' {0.: 0., 2.0E-1 : 8.41};
    @ImposedStress 'SYZ' {0.: 0., 2.0E-1 : 42.0};

    But the error remains.

    If you have any advice I will take it

     
  • Félix Latourte

    Félix Latourte - 2015-09-24

    Maybe I can download the development version? (rev > 1080)
    But I only find for download tfel2.1.0 and it seems last changes were done a while ago...

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-24

    Hi Félix,

    Sorry for the delay, it seems that one of my answer got lost and never was posted.

    Indeed your problem is ill-posed : you impose the 6 stress components, but you have 9 degrees of freedom. So your jacobian matrix is singular. A new version would not change a thing.

    MTest is limited to the case where you explicitely impose some terms (or relationship) on 3 terms of the deformation gradient. This is exactly like in a standard computations where you must set some dirichlet boundary conditions for the solution to exist.

    Sincerly,

    Thomas

     
  • Félix Latourte

    Félix Latourte - 2015-09-25

    Ok I tried a tensile test in [159] direction but then it is hard to know what conditions to impose on F??? In this case the simplest will be to rotate the orientation tensor (slip normals and slip directions) and apply a [001] tensile load.

    But then I applied a tensile load in [001] direction and it works.

    I prescribed it using

    @ImposedStress 'SXX' {0.: 0., 2.0E-1 : 0.};
    @ImposedStress 'SYY' {0.: 0., 2.0E-1 : 0.};
    @ImposedStress 'SZZ' {0.: 0., 2.0E-1 : 300.};
    @ImposedStress 'SXY' {0.: 0., 2.0E-1 : 0.};
    @ImposedStress 'SXZ' {0.: 0., 2.0E-1 : 0.};
    @ImposedStress 'SYZ' {0.: 0., 2.0E-1 : 0.};
    @ImposedDeformationGradient 'FXY' {0.: 0., 2.0E-1 : 0. };
    @ImposedDeformationGradient 'FYX' {0.: 0., 2.0E-1 : 0. };
    @ImposedDeformationGradient 'FXZ' {0.: 0., 2.0E-1 : 0. };
    @ImposedDeformationGradient 'FZX' {0.: 0., 2.0E-1 : 0. };
    @ImposedDeformationGradient 'FYZ' {0.: 0., 2.0E-1 : 0. };
    @ImposedDeformationGradient 'FZY' {0.: 0., 2.0E-1 : 0. };
    @Times {0., 2.e-1 in 100};

    Maybe I should see the 6 examples you added but I do not know where to find them.

    Cheers

    Félix

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-25

    Hi Félix,

    The examples are in the current revision. I have some trouble with the automatic source deployement. Maybe you shall ask an svn access to the official repository.

    For your problem, you may have a look at the asterfinitestrainsinglecrystal-012.mtest.in. The @RotationMatrix keyword allows to specify a material orientation. I think that you can adapt it to our case (otherwise, I can search in my tests the definition of the rotation matrix for the 159 directions, but it may take some time...).

    Sincerly,

    Thomas

     
  • Félix Latourte

    Félix Latourte - 2015-09-25

    Thank you Thomas
    I will provide a small script computing the rotation Matrix from the orientation using Miller indices... It is in one of my tests as well.
    Thank you for pointing out the @RotationMatrix keyword.

     
  • Helfer Thomas

    Helfer Thomas - 2015-09-28

    This would also be a great extension to mtest @RotationMatrix keyword.

     
  • Félix Latourte

    Félix Latourte - 2015-09-28

    Additional question : in some cases the integration fails (due to specific symmetries I guess and the redundant conditions on F I am imposing). The .mtest error message I get is:

    ...
    iteration 98 : 1.22775e-11 4.41015e-06 (0.999875 0.999875 1.00036 9.41673e-43 0 0 0 0 0)
    iteration 99 : 1.22701e-11 4.40913e-06 (0.999875 0.999875 1.00036 -1.82729e-40 0 0 0 0 0)
    iteration 100 : 1.22627e-11 4.40811e-06 (0.999875 0.999875 1.00036 -1.82729e-40 0 0 0 0 0)
    No convergence, the following criteria were not met :

    • test on driving variables (error : 1.22627e-11, criteria : 1e-12)
      It seems this is because the prescribed F + conditions on imposed stress cannot be satisfied.

    Where in the .mfront or .mtest is the 1e-12 criteria specified? I would like to try to increase it.

    If I increase the iteration number the iteration will become very slow.

     
  • Félix Latourte

    Félix Latourte - 2015-09-28

    Sorry I found where to modify the criterions... In your answer a few lines above
    @StressEpsilon
    @DeformationGradientEpsilon

     

Log in to post a comment.

MongoDB Logo MongoDB