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_$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
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
andNT
) 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
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
ipThis 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 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
*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. ThisERRLOC
value will then be compared by SAMCEF to thePRCV
parameter of the.SUB
command in order to estimate the appropriate time step size. Note thatPRCV
should always be set to 1.0 in this particular context.
***save_tensor
tname
***save_scalar
snameOutput of user-behavior material variables to the SAMCEF results files is restricted to one tensor and/or scalar only. Corresponding FAC codes are
1399
and1499
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
dimSecond 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 theIHYP
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 thegen_evp
assembly, in order to properly take into account the plane stress hypothesis.