TFEL
, MFront
and MTest
Abaqus/Explicit
is
brokenMTest
files throws an exception which
can’t be caught by Cast3M
in case of forced
convergenceCast3M
and Cyrano
interface may lead to a invalid convergence du to integer
overflowDDIF2Base.ixx
@ComputeStiffnessTensor
) or given
(@RequireStiffnessTensor
)mfront-query/include/CMakeLists
)MTest
is
broken@AdditionalConvergenceChecks
code blockBehaviourDescription::areMaterialPropertiesDependantOnStateVariables
method always returns true
nullptr
for true finite strain behavioursThis is mainly a bug fix version of the 3.1
series. All
tickets solved are described below.
Abaqus/Explicit
is
brokenThe documentation of the vumat
interface has been badly
understood in plane stress. In some cases (namely using the
Native
finite strain strategy), the conventions about
tensors has not been transcribed appropriately (there have been a
confusion with the Abaqus/Standard
conventions).
Note
The
Native
finite strain strategy inAbaqus/Explicit
(based on a corotational formulation) is not supported inMTest
, so there is no unit-tests associated.
For more details, see: https://sourceforge.net/p/tfel/tickets/131/
The following statement would not work in previous versions:
@IntegerConstant Nss = 2;
@Parameter tau0[Nss] = {100e6, 100e6};
To solve this issue, a new method
readArrayOfVariablesSize
has been introduced in the
DSLBase
class. This method is now shared by all methods
which reads the size of an array of variables.
For more details, see: https://sourceforge.net/p/tfel/tickets/130/
The trouble boils down to the fact that, du to intended limitations
of the tvector
class, downcasting from double precision to
single precision is not allowed by the assignment operator.
The call to the assignment operator has been replaced by a call to
tfel::fsalgo::copy
which allows downcasting.
For more details, see: https://sourceforge.net/p/tfel/tickets/129/
MTest
files throws an exception which
can’t be caught by Cast3M
in case of forced
convergenceWith the Cast3M
interface, the generation of
MTest
files during a forced convergence sequence throws an
exception which can’t be caught by Cast3M
, leading to a
severe crash.
The trouble comes from the fact that during the forced convergence
sequence, the time step is null, which is not handled by the
MTestFileGenerator
class.
The trouble has been circumvented by introducing a minimal time step
of 1.e-50
(the unit depends on the specific case
treated).
For more details, see: https://sourceforge.net/p/tfel/tickets/128/
Cast3M
and Cyrano
interface may lead to a invalid convergence du to integer overflowUsing substeping with a high number of substeps may lead to a to integer overflow in the counter associated with the remaining steps that have to be performed.
This counter was declared as an unsigned short
. For more
than 14 substeps, this counter would overflow and was automatically set
egal to 0, leading to an erroneous convergence. This counter has been
changed to unsigned int
to avoid the problem.
For more details, see: https://sourceforge.net/p/tfel/tickets/127/
DDIF2Base.ixx
There was a mistake in the jacobian computed in
treatFracture
method of the DDIF2Base
class du
to the complex branching made.
For more details, see: https://sourceforge.net/p/tfel/tickets/126/
Compiling TFEL\ with
gcc8.0.1 (
Fedora
28) fails in
CastemGenericPlaneStressHandler.hxx`.
Reported errors a priori look like regressions in the compiler rather than actual bugs in the code. However, as the incriminated code is quite ambiguous, it was worth fixing it.
For more details, see: https://sourceforge.net/p/tfel/tickets/125/
@ComputeStiffnessTensor
) or given
(@RequireStiffnessTensor
)For more details, see: https://sourceforge.net/p/tfel/tickets/124/
Various behaviours in the MFront’ tests base used local variables to
compute the increment of auxiliary state variables (in order to safe
some computational times and reduce the implementation size). This trick
is quite often used with analytical jacobian but can cause various
problems with numerical jacobian if the consistent tangent operator is
requested (in this case, the system is perturbated once after
convergence to get the upper part of the inverse of the jacobian, as
needed by the getPartialJacobianInvert
method).
The issue can be circumvented using the
perturbatedSystemEvaluation
flag introduced in
TFEL
3.1.1
(see http://tfel.sourceforge.net/release-notes-3.1.1.html and
https://sourceforge.net/p/tfel/tickets/111/ for details
).
The concerned implementations were the following:
mfront/tests/behaviours/MonoCrystal.mfront
mfront/tests/behaviours/MonoCrystalNewtonRaphson.mfront
mfront/tests/behaviours/MonoCrystal_DD_CC_Irradiation_NumericalJacobian.mfront
mfront/tests/behaviours/MonoCrystal_DD_CFC_Irradiation.mfront
mfront/tests/behaviours/MonoCrystal_DD_CFC_NumericalJacobian.mfront
For more details, see: https://sourceforge.net/p/tfel/tickets/123/
mfront-query/include/CMakeLists
)The file mfront-query/include/CMakeLists.txt
was not
included in the distributed tar ball. This led to a warning when
compiling with cmake
, but it did not hinder the
compilation.
For more details, see: https://sourceforge.net/p/tfel/tickets/122/
In MTest
, the following lines was not parsed
appropriately:
@Test<file> @reference_file@ {
'SXX' : '$8*1.e6'
} 1.e3;
For more details, see: https://sourceforge.net/p/tfel/tickets/122/
MTest
is
brokenSince TFEL
3.1
, MTest
is able
to call raw Cast3M’ umat behaviours (not written using
MFront
). However, the handling of external state variables
was broken.
For more details, see: https://sourceforge.net/p/tfel/tickets/120/
@AdditionalConvergenceChecks
code blockIn the generation of the additionalConvergenceChecks
method, the material laws were not declared.
For more details, see: https://sourceforge.net/p/tfel/tickets/119/
BehaviourDescription::areMaterialPropertiesDependantOnStateVariables
method always returns true
The
BehaviourDescription::areMaterialPropertiesDependantOnStateVariables
method always returned true
. This bugs led to unnecessary
computations but did not affect the results.
For more details, see: https://sourceforge.net/p/tfel/tickets/118/
A using namespace std;
statement has been removed in
3.1.0 in the generated code, which led to a compile time error
(ostringstream
undeclared) when:
MTest
file on failureA new test case has been introduced for testing all the cases.
For more details, see: https://sourceforge.net/p/tfel/tickets/117/
nullptr
for true finite strain behavioursFor more details, see: https://sourceforge.net/p/tfel/tickets/115/