-
Hi @thelfer, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Hi @lwtcas, Thanks for your interest to MFront and MGIS. Did you explicitely request the computation of the consistent tangent operator ? When dealing the behaviour data, you need to set the first element of the tangent operator before the call to Please find attach a small working example. The output shall be: ./TangentOperatorTest
0.000 6.000 2.000 8.000 4.000 0.000
1.000 7.000 3.000 9.000 5.000 1.000
2.000 8.000 4.000 0.000 6.000 2.000
3.000 9.000 5.000 1.000 7.000 3.000
4.000 0.000 6.000 2.000 8.000 4.000
5.000 1.000 7.000 3.000 9.000 5.000 which is, as stated in the documentation, the transpose of the consistent tangent operator. Best, Thomas |
Beta Was this translation helpful? Give feedback.
-
No, the But the computation of the consistent tangent operator is requested at runtime (you can integrate the behaviour without computing the consistent tangent operator, for explicit computations, FFT schemes, etc...). The trouble was on the
The important line in the example is: K(1,1) = 4 which is called just before the s = integrate(ri, d, b) See also the C++ documentation of the /*!
* \brief integrate the behaviour. The returned value has the following
* meaning:
* - -1: integration failed
* - 0: integration succeeded but results are unreliable
* - 1: integration succeeded and results are reliable
*
* \param[in,out] d: behaviour data
* \param[in,out] b: behaviour
*
* \note: the type of integration to be performed, must be
* explicitely set in d.K[0], as follows (see the `IntegrationType` enum).
*
* If d.K[0] is greater than 50, the speed of sound must be computed.
*
* Let Ke be equal to:
*
* - d.K[0] - 100 if d.K[0] is greater than 50
* - d.K[0] otherwise.
*
* If Ke is negative, only the prediction operator is computed and
* no behaviour integration is performed.
*
* Ke has the following meaning:
*
* - if Ke is lower than -2.5, the tangent operator must be
* computed.
* - if Ke is in [-2.5:-1.5]: the secant operator must be
* computed.
* - if Ke is in [-1.5:-0.5]: the elastic operator must be
* computed.
* - if Ke is in [-0.5:0.5]: the behaviour integration is
* performed, but no stiffness matrix.
* - if Ke is in [0.5:1.5]: the elastic operator must be
* computed.
* - if Ke is in [1.5:2.5]: the secant operator must be
* computed.
* - if Ke is in [2.5:3.5]: the secant operator must be
* computed.
* - if Ke is greater than 3.5, the consistent tangent operator
* must be computed.
*/
int integrate(BehaviourDataView&, const Behaviour&); |
Beta Was this translation helpful? Give feedback.
@lwtcas,
No, the
StandardElastoViscoPlasticity
does implements the computation of the consistent tangent operator.But the computation of the consistent tangent operator is requested at runtime (you can integrate the behaviour without computing the consistent tangent operator, for explicit computations, FFT schemes, etc...). The trouble was on the
MGIS
side. See my answer and the example: