TFEL, MFront and MTestAbaqus/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 truenullptr
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
Nativefinite 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.ixxThere 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\ withgcc8.0.1 (Fedora
28) fails inCastemGenericPlaneStressHandler.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.mfrontmfront/tests/behaviours/MonoCrystalNewtonRaphson.mfrontmfront/tests/behaviours/MonoCrystal_DD_CC_Irradiation_NumericalJacobian.mfrontmfront/tests/behaviours/MonoCrystal_DD_CFC_Irradiation.mfrontmfront/tests/behaviours/MonoCrystal_DD_CFC_NumericalJacobian.mfrontFor 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 trueThe
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/