TFEL,
MFront and MTestTFEL/Math improvements
MFront improvements
mtest files in case
of integration failuregetMaterialKnowledgeIdentifier and
getMaterial to the OverridableImplementation
classstd::tie with nvccmdnx path where an OverridableImplementation
is writtenmdnx fileTFEL versionCxxTokenizer@Profile keyword in PTestMTest
filesTFEL/Math
improvementsThe nonlinear solvers available in TFEL/Math now have an
additional optional template argument which allows the user to control
how the data members of those solvers are defined. Those data members
generally include the residual (named fzeros), the jacobian
matrix (named jacobian), etc…
The main rationale behing this development is to better handle how those data members are allocated. By default, those data members are allocated on the stack. This strategy is well suited on CPUs but can lead to excessive usage of registers on GPUs.
The following workspace defines the data members used by the
TinyNewtonRaphsonSolverClass as views into a pre-allocated
buffer:
template<unsigned short N, typename NumericType>
struct ExternallyAllocatedWorkspace{
ExternallyAllocatedWorkspace(NumericType* const v)
: fzeros(v), zeros(v + N), delta_zeros(v + 2 * N), jacobian(v + 3 * N){};
//! \brief residual vector
tfel::math::View<tfel::math::tvector<N, NumericType>> fzeros;
//! \brief current estimate of the unknowns
tfel::math::View<tfel::math::tvector<N, NumericType>> zeros;
//! \brief current correction
tfel::math::View<tfel::math::tvector<N, NumericType>> delta_zeros;
//! \brief jacobian matrix
tfel::math::View<tfel::math::tmatrix<N, N, NumericType>> jacobian;
};Note
The use is responsible for properly allocating memory.
MFront
improvementsvalidator DSL
optionThe validator option allows to specify an project or an
institute which assumes assurance quality aspects related to an
MFront file.
The validator is defined as a DSL option for proper
support in the MFrontGallery
project.
The following example declares the validator on the command line:
$ mfront --obuild --interface=generic --dsl-option='validator:BGE Tech' Plasticity.mfrontThe validator can also be defined in the the MFront
file:
@DSL Implicit{
validator: "BGE Tech"
}mtest files in case of integration
failureBy default, mtest files are generated in the current
working directory. This can be inconvenient, in particular for the users
of the code_aster solver, as this solver creates a
temporary directory to perform the calculations and erases this
directory at the end of the execution.
The MTEST_FILE_GENERATOR_OUTPUT_DIRECTORY environment
variable specifies where to put the generated mtest
files.
For more details, see https://github.com/thelfer/tfel/issues/447.
This feature is described in Section 2.1.
For more details, see https://github.com/thelfer/tfel/issues/446.
mtest files in case
of integration failureThis feature is described in Section 2.2.
For more details, see https://github.com/thelfer/tfel/issues/445.
This feature is described in depth in Section 1.1.
For more details, see https://github.com/thelfer/tfel/issues/436.
getMaterialKnowledgeIdentifier and
getMaterial to the OverridableImplementation
classThe getMaterialKnowledgeIdentifier methods returns the
name given to the overridable implementation. Depending on the case,
this can be the name of the material property, the name of the behaviour
or the name of the model.
The getMaterial method returns the name of the material
associated with the overridable implementation.
For more details, see https://github.com/thelfer/tfel/issues/428.
std::tie with nvccFor more details, see https://github.com/thelfer/tfel/issues/435.
When the evolution of the inner radius or the evolution of the outer radius is prescribed, integral tests on the inner pressure (InnerPressure`) can be set.
When the evolution of the axial growth is prescribed, integral tests
on the axial force (AxialForce) can be set.
For more details, see https://github.com/thelfer/tfel/issues/427.
The @Test keyword now supports the function
option, the syntax of which is similar to the @Test keyword
of the mtest scheme.
For example, the following line compares the value of the inner
pressure to the values of an evolution named
InnerPressureReferenceValues:
@Test<function> 'InnerPressure' 'InnerPressureReferenceValues' 1e2;For more details, see https://github.com/thelfer/tfel/issues/426.
mdnx path where an OverridableImplementation
is writtenThe getDestinationPathInMadnexFile returns the
mdnx path where an OverridableImplementation
is written.
For more details, see https://github.com/thelfer/tfel/issues/425.
mdnx
fileFor more details, see https://github.com/thelfer/tfel/issues/424.
For more details, see https://github.com/thelfer/tfel/issues/422
TFEL versionFor more details, see https://github.com/thelfer/tfel/issues/383.
CxxTokenizerFor more details, see https://github.com/thelfer/tfel/issues/369.
For more details, see https://github.com/thelfer/tfel/issues/362
@Profile keyword in
PTestFor more details, see https://github.com/thelfer/tfel/issues/360.
For more details, see https://github.com/thelfer/tfel/issues/356.
MTest filesFor more details, see https://github.com/thelfer/tfel/issues/353.