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.
Zsamcef script activates a non-standard MECANO executable with
name:$Z7PATH/Zsamcef/mecano_zmat_$Z7MACHINEPlease 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
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
YTandNT) 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 filefor 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
Acoefficient 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
***debugThis 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_debugipThis 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 reset to zero at the beginning of each newton global iteration. Note that the
OVMAXXSAMCEF 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 output files and may dramatically slow down the calculation.***automatic_timeThis 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
.SUBcommand 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) ...*limitnamei vmaxiThis 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
*limitcommands acting on different material variables may be added if necessary. The material error returned by Z-mat to SAMCEF will be calculated as follows:\[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
*limitcommand. ThisERRLOCvalue will then be compared by SAMCEF to thePRCVparameter of the.SUBcommand in order to estimate the appropriate time step size. Note thatPRCVshould always be set to 1.0 in this particular context.
***save_tensor tname
***save_scalarsnameOutput of user-behavior material variables to the SAMCEF results files is restricted to one tensor and/or scalar only. Corresponding FAC codes are
1399and1499that should be requested by an appropriate.SAIcommand in the SAMCEF input file:.SAI ... ARCHIVE ALL_ELEMENTS STYPE 1399 ! user scalar 1499 ! user tensor ...The
***save_tensorand***save_scalarcommands then allow to specify which Z-mat variable will be saved in the results files.***needs_temperatureZ-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_strainobject will always be zero.The
***needs_temperaturecommand may then be used to force storage of the temperature and allow thermal strain calculation even if no coefficients are temperature-dependent.***materialAs described 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 (***behaviorcommands) by using the*filecommand. 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***behaviordefinition in the interface file.*dimensiondimSecond 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. Theoretically, the particular kinematic hypothesis used in the calculation (3D, axisymmetric, plane strain, plane stress …), can be known at the level of the
OVMAXXroutine by means of theIHYPargument.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 2command 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_stressmodifier to the behavior, or a**plane_stressswitch in thegen_evpassembly, in order to properly take into account the plane stress hypothesis.