Z-mat SAMCEF interface#

Description#

The command described in this chapter allows to use a Z-mat behavior within a SAMCEF-MECANO analysis. The interface makes use of the OVMAXX user subroutine that allows to implement user-defined behavior within SAMCEF.

Syntax#

% Zsamcef problem   \(\hookleftarrow\)

where problem.dat is the name of a SAMCEF input data file.

The Zsamcef script activates a non-standard MECANO executable with name:
$Z7PATH/Zsamcef/mecano_zmat_$Z7MACHINE

Please verify that this file is indeed included in your Zset distribution.

A new user module (module "mecano_zmat" associated to module Id "zm") should be declared in the SAMCEF environment by means of the samrc.ini configuration file.

The samrc.ini file in the user home directory is automatically updated by the Zsamcef script with the command required to declare this new user module:

module*zm.me: mecano_zmat $Z7PATH/Zsamcef/mecano_zmat_$Z7MACHINE
Note that a MECANO calculation with a Z-mat behavior can alternatively be launched by the following standard SAMCEF command, that chains the bacon mesher with the mecano_zmat user module:
% samcef ba,zm problem n 1   \(\hookleftarrow\)

MECANO Input#

The main Z-mat modification needed in a standard MECANO input file concerns the .MAT command used to define material properties.

Syntax is the following, where the BEHA parameter that usually allows to specify the name of a standard MECANO material behavior is replaced by a ROUTIN parameter followed by the name of the Zmat material file :

.MAT NOM "MATERIAU"
     ROUTIN "zmat_fname"
!    Elastic parameters definition is needed
!    but values are not meaningful
     YT 10.
     NT 0.3
!    For anisothermal problems thermal expansion
!    coef A should be set to 0. and defined
!    in the Z-mat file by means of a **thermal_strain object
     A  0.

where zmat_fname is the name of a Z-mat material file. Note that:

  • definition of some elastic properties (coefficients YT and NT) is required in the SAMCEF input file. However, values given for those coefficients have no incidence on the results, since the actual definition of the elasticity coefficients is given in the Z-mat material file

  • for anisothermal problems the value of the thermal expansion coefficient needed to calculate thermal strains should be given in the Z-mat file, and it is safer to set the A coefficient to zero in the SAMCEF input file.

Z-mat interface file#

Most of the commands are common to the various Z-mat interfaces and are described in the Z-mat interface file section. However, some commands are not supported by the SAMCEF interface, while others are specific to this port. Hence, the various commands allowed in the Zsamcef interface file are summarized hereafter. Only options that are indeed specific to SAMCEF will be described in detail.

Syntax#

[ ***debug ] \(~\,~\,\) [ *local_debug ip ] [ ***automatic_time ] \(~\,~\,\) [ *limit name1 vmax1 ] \(~\,~\,\)\(~\,~\,\) [ *limit namei vmaxi ] [ ***save_tensor tname ] [ ***save_scalar sname ] [ ***needs_temperature ] ***material \(~\,~\,\) [ *file fname ] \(~\,~\,\) [ *integration … ] \(~\,~\,\) [ *rotation … ] \(~\,~\,\) [ *initialize_variable … ] \(~\,~\,\) [ *dim dim ] ***behavior***return

***debug

This command indicates that debug output will be generated during MECANO execution. Output will be stored in a file named “fname.msg”, where “fname” is the name of the Z-mat interface file.

*local_debug ip

This subcommand restricts debug output to the integration point number ip given as argument. ip is an integration point counter managed internally by Zsamcef, incremented during the loop on the elements and resetted to zero at the beginning of each newton global iteration. Note that the OVMAXX SAMCEF user subroutine doesn’t provide any information on the element/integration point number that could allow a more meaningful selection mechanism. By default debug output will be generated for all integration point of the FE mesh, which will result in huge ouput files and may dramatically slow down the calculation.

***automatic_time

This command may be used in conjunction with the SAMCEF automatic time step procedure based upon material integration error. To enable this option the following parameters must be given as arguments of the .SUB command in the SAMCEF input file:

.SUB ...
 VISC 1  ! activates material automatic time step
 PRCV 1. ! material allowable error. note that default value
         ! of 0.1 is not compatible with the Z-mat mechanism
 SREF 1. ! material ref norm (default value)
...
*limit namei   vmaxi

This command indicates that, during a loading increment, the increase of the namei material variable should not be greater than a given value of vmaxi. Several *limit commands acting on different material variables may be added if necessary. The material error returned by Z-mat to SAMCEF will be calculated as follows:

(220)#\[ERRLOC = \max_i \left\{ \frac{\Delta v_i}{vmax_i} \ \right\}\]

where \(\Delta v_i\) is the increase of variable number \(i\), and the max is taken over all material variables \(v_i\) specified by a *limit command. This ERRLOC value will then be compared by SAMCEF to the PRCV parameter of the .SUB command in order to estimate the appropriate time step size. Note that PRCV should always be set to 1.0 in this particular context.

***save_tensor tname

***save_scalar sname

Output of user-behavior material variables to the SAMCEF results files is restricted to one tensor and/or scalar only. Corresponding FAC codes are 1399 and 1499 that should be requested by an appropriate .SAI command in the SAMCEF input file:

.SAI ...
 ARCHIVE ALL_ELEMENTS STYPE 1399 ! user scalar
                            1499 ! user tensor
...

The ***save_tensor and ***save_scalar commands then allow to specify which Z-mat variable will be saved in the results files.

***needs_temperature

Z-mat automatically detects that the temperature should be stored in the state variables when a material coefficient dependence on this parameter is defined in the behavior. However, if all material coefficients are constant, temperature is removed from the state vars management to cut down storage requirements. In this case the thermal strains calculated by the **thermal_strain object will always be zero.

The ***needs_temperature command may then be used to force storage of the temperature and allow thermal strain calculation even if no coefficients are temperature-dependent.

***material

As decribed in the Interface file section (see material), this bloc of commands is used to set integration methods parameter (command *integration), define local axis for the calculation of material quantities (command *rotation), initialize material variables, etc… A different file may also be specified that will contain the actual behavior definition (***behavior commands) by using the *file command. This allows to separate the interface commands, that may be specific to the FEA code, and the material coefficients. Default is to look for the ***behavior definition in the interface file.

*dimension dim

Second order tensors passed in by SAMCEF as arguments of the user-material subroutine OVMAXX always have 6 components (storage of a 3D symmetric second order tensor in a vector), regardless of the problem dimension. Theorically, the particular kinematic hypothesis used in the calculation (3D, axisymetric, plane strain, plane stress …), can be known at the level of the OVMAXX routine by means of the IHYP argument.

Unfortunately, in the current SAMCEF version (SAMCEF v10.1), this argument is not correctly initialized during the loading phase of the Z-mat behavior. Therefore, by default, all Z-mat objects will be initialized with a 3D size. A *dimension 2 command may then be used to bypass this problem and cut-down material state variables storage requirements for 2D problems.

Note also that for the same reason, it is currently necessary to add an explicit plane_stress modifier to the behavior, or a **plane_stress switch in the gen_evp assembly, in order to properly take into account the plane stress hypothesis.