Materials
The different material types provided by OptiStruct are: isotropic, orthotropic, and anisotropic materials. The material property definition cards are used to define the properties for each of the materials used in a structural model.
The MAT1 Bulk Data Entry is used to define the properties for isotropic elastic materials. It can be referenced by any of the structural elements and can also be referenced by any property card.
The MAT2 entry is used to define the properties for anisotropic materials. It applies only to triangular or quadrilateral membrane and bending elements, and can only be referenced by PSHELL, PCOMP, and PCOMPG property cards. This material type specifies the relationship between the inplane stresses and strains. The angle between the material coordinate system and the element coordinate system is specified on the connection cards.
The MAT3 entry is used to define the material properties for axisymmetric and planestrain elements. It can be referenced by CTRIAX6 elements and can also be referenced by any PAXI property card which is in turn referenced on CTAXI or CQAXI elements. Similarly, it can be referenced by the PPLANE property which is referenced by planestrain CQPSTN and CTPSTN elements.
The MAT4 entry is used to define the isotropic thermal material properties. It can be referenced by any of the structural elements, and can also be referenced by any property card.
The MAT5 entry is used to define the anisotropic thermal material properties. It can be referenced by any of the structural elements and can also be referenced by any property card.
The MAT8 card is used to define the properties for planar orthotropic elastic materials in two dimensions. Individual plys of a layered composite layup typically possess such orthotropic properties. Since layered composite laminates are modeled using shell elements, MAT8 property data can only be referenced by PSHELL, PCOMP, and PCOMPG property cards.
The MAT9 Bulk Data Entry can be used to define the properties for anisotropic elastic materials for three dimensional solid elements. The general anisotropic stressstrain relationship linking the six independent stress components of the stress tensor at a point and the six independent strain components of the tensor at the point contain 21 independent constants in the elasticity matrix. These values are supplied using the MAT9 Bulk Data card. The MAT9 Bulk Data card is used with the CHEXA, CPENTA, CPYRA, and CTETRA solid elements, and can only be referenced on the PSOLID property card. The optional coordinate system in which MAT9 data are specified is supplied via the PSOLID Bulk Data Entry.
The MAT10 Bulk Data Entry is used to define material properties for fluid elements in coupled fluidstructural (acoustic) analysis. It may only be referenced on PSOLID entries with FCTN=PFLUID.
Biot (poroelastic) material is defined using MATPE1 entry.
Temperature dependent material properties are defined using MATT1, MATT2, MATT8, and MATT9. All four have the same characteristics as described above. The temperature dependency of each property is defined through TABLEM1, TABLEM2, TABLEM3, or TABLEM4 table entries.
Composite Laminates are defined using the PCOMP, PCOMPP and PCOMPG properties. They are not material types; each ply in the laminate layup can reference a different material.
Elastoplastic material properties are defined using MATS1. The nonlinear material characteristics may need the table input TABLES1. MATS1 is defined as an extension to a MAT1 with the same MID. MATS1 is applicable to all nonlinear solutions.
Hyperelastic material properties are defined using MATHE. Various Hyperelastic material models are available, such are Ogden, ArrudaBoyce, and so on.
Viscoelastic material properties are defined using MATVE, MATTVE (temperaturedependent) or MATFVE (frequencydependent).
Creep material properties are defined using MATVP.
Cohesive Zone Modeling can be defined using MCOHE or MCOHED entries.
Cast Iron Plasticity material can be defined using MCIRON Bulk Data Entry.
Userdefined structural material properties are available using MATUSR. .dll or .so libraries can be referenced via the LOADLIB entry. For more information, refer to UserDefined Structural Material in the User Guide.
Userdefined thermal material properties are available using MATUSHT. .dll or .so libraries can be referenced via the LOADLIB entry.
Material models can also be defined using Multiscale Designer and used via the MATMDS entry.
A Brittle Damage material model is available via the MATBRT entry.
Material Property  Nonlinearity  Timedependency  Temperaturedependency  Frequencydependency  Material Entry 

Isotropic          MAT1 
      Yes  MAT1 + MATF1  
    Yes    MAT1 + MATT1  
Elastoplasticity        MAT1 + MATS1  
  Yes    MAT1 + MATS1 (referencing TABLEST)  
Hyperelasticity        MATHE  
  Yes    MATTHE  
Viscoelasticity        MAT1 + MATVE  
  Yes    MAT1 + MATVE + MATTVE  
    Yes  MAT1 + MATVE + MATFVE  
Viscoelasticity, Hyperelasticity        MATHE + MATVE  
Creep        MAT1 + MATVP  
Creep, Elastoplasticity        MAT1 + MATVP + MATS1  
Creep    Yes    MAT1 + MATVP + MATTVP  
Anisotropic          MAT9 (solid
elements) MAT2 (shell elements) 
      Yes  MAT9 + MATF9 (solid
elements) MAT2 + MATF2 (shell elements) 

    Yes    MAT9 + MATT9 (solid
elements) MAT2 + MATT2 (shell elements) 

Viscoelasticity        MAT9 + MATVE  
    Yes  MAT9 + MATFVE  
Orthotropic          MAT9OR (solid
elements) MAT8 (shell elements) MAT3 (axisymmetric and plane strain elements) 
      Yes  MAT8 + MATF8 (shell
elements) MAT3 + MATF3 (axisymmetric and plane strain elements) 

    Yes    MAT9OR + MATT9OR (solid
elements) MAT8 + MATT8 (shell elements) MAT3 + MATT3 (axisymmetric and plane strain elements) 

Fluid          MAT10 
      Yes  MAT10 + MATF10  
Thermal          MAT4 (Isotropic) MAT5 (Anisotropic) 
Yes (Temperature)    Yes    MAT4 + MATT4 (Isotropic)  
Gasket      Yes    MGASK 
Fatigue          MATFAT 
Biot (Poroelasticity)          MATPE1 
UserDefined Structural Material Subroutines  Yes  Yes  Yes    MATUSR (Fortran and C for subroutines) 
UserDefined Thermal Material Subroutines  Yes (Temperature)  Yes  Yes    MATUSHT (Fortran and C for subroutines) 
Multiscale Designerbased Material  Yes        MATMDS (using Altair Multiscale Designer). 
Failure Criteria          Criteria and Allowables on
MATF Criteria/Allowables can also be defined on MAT1, MAT2, MAT8, PCOMP, PCOMPP, PCOMPG 
Material Property  Nonlinearity  Timedependency  Temperaturedependency  Frequencydependency  Material Card 

Isotropic          MAT1 
Elastoplasticity        MAT1 + MATS1  
Hyperelasticity        MATHE  
Viscoelasticity        MAT1 + MATVE  
Viscoelasticity, Hyperelasticity        MATHE + MATVE  
Anisotropic          MAT2 (shell elements) 
Viscoelasticity        MAT9 + MATVE  
Orthotropic          MAT8 (shell elements) 
Brittle Damage  MATBRT 
UserDefined Structural Material
The MATUSR Bulk Data Entry, in combination with the LOADLIB I/O Option Entry, allows for the definition of structural material through userdefined external functions.
The external functions may be written in Fortran, C or C++. The resulting libraries and files should be accessible by OptiStruct regardless of the coding language, provided that consistent function prototyping is respected, and adequate compiling and linking options are used.
Write External Functions
Two Fortran subroutines are required to define user material in OptiStruct. First, a Nonlinear subroutine for the nonlinear large displacement solution, and another subroutine for the linear and nonlinear small displacement solution. Both subroutines are mandatory, and the same argument order should be followed as:
subroutine usermaterial(idu,stress,
$ strain,dstrain,dfgrOld,dfgrNew,
$ stater,state,nstate,
$ drot,
$ props,nprops,ndi,nshear,ntens,temp,dtemp,
$ ieuid,
$ kinc,dt,t_step,t_total,
$ cdev,cbulk)
integer idu, nstate, nprops, kinc, ieuid, ndi, nshear, ntens, ierr
double precision stress(6),stater(*),state(*),
$ cdev(6,6),cbulk, drot(3,3), temp, dtemp, dt,
$ t_step, t_total,
$ strain(6), dstrain(6), props(nprops)
$ dfgrOld(3,3),dfgrNew(3,3)
character*32000 userdata
subroutine smatusr(idu, nprop, prop, ndi, nshear, ntens, smat, userdata, ierr)
integer idu, nprop, ndi, nshear, ntens, ierr
double precision prop(nprop), smat(*)
character*32000 userdata
initusr
subroutine:subroutine initusr(idu,nstate,cstate)
implicit none
integer idu,nstate
character*64 cstate(nstate)
The strings in the initusr
subroutine should always be declared as
follows: character*64 cstate(nstate)
The declaration
should always use 64character size.cstate
variable can be assigned the label to
print in the userdefined results with 1
being the index for the
first variable in the example
below: cstate(1) = “Variable Name for State(1)”
Subroutine Arguments
Argument  Type  Input / Output  Description 

idu 
integer  Input  This is defined via the USUBID parameter
on the MATUSR Bulk Data Entry. This argument
can be used to define and choose between different types of
materials within the same user subroutine. optional use 
stress 
double (table)  Input/Output  This is the Stress tensor. The initial stress is considered to be input and the stress, tensor calculated during the nonlinear solution are output from the user subroutine to OptiStruct. 
strain 
double (table)  Input  Strain tensor. The initial strain is considered to be input. 
dstrain 
double (table)  Input  Incremental strain table. The incremental strain is input from OptiStruct to the user subroutine. 
dfgrOld 
double (table)  Input  Deformation gradient tensor of the previous increment. This argument is currently supported for solid elements (PSOLID) or continuum shells (PCOMPLS). 
dfgrNew 
double (table)  Input  Deformation gradient tensor of the current increment. This argument is currently supported for solid elements (PSOLID) or continuum shells (PCOMPLS). 
stater 
double (table)  Input/Output  Table of State variables at the previous increment. 
state 
double (table)  Input/Output  Table of State variables at the current increment. See
stater for more information. State
variables are variables that can be requested as output in the
H3D file. Any variable (for example, plastic strain, equivalent
plastic strain, and so on) calculated within the solution
process in the subroutine can be output by defining it as a
state variable. The number of state variables can be specified
via nstate . 
nstate 
integer  Input/Output  Number of State Variables that the user requires in the
subroutine. These state variables are output in the H3D file.
See stater for more information. This is
specified via the NDEPVAR field of the
MATUSR Bulk Data Entry. 
cstate 
string  Output  Output in the form of a string from initusr
subroutine to OptiStruct. In the
usermaterial or smatusr
subroutines the state variable outputs any variable in the
H3D file. The cstate
variable provides the name of the state variable declared in
that subroutine to display in the H3D
file. 
props 
double (table)  Input  This table contains all the userdefined material property information from the PROPERTY continuation line of the MATUSR entry. 
nprops 
Integer  Input  This is the total number of material properties defined on the PROPERTY continuation line of the MATUSR entry. 
ndi 
Integer  Input  The number of normal stress components (3 for solid elements, 2 for shell elements). 
nshear 
Integer  Input  The number of shear stress components (3 for solid elements, 1 for shell elements). 
ntens 
Integer  Input  The number of tensor components (ntens =
ndi + nshear ). 
temp 
double  Input  This is the temperature at the previous converged increment. 
dtemp 
double  Input  This is the temperature increment. 
ieuid 
integer  Input  Element ID. This subroutine is called for every integration point for every element. 
kinc 
integer  Input  Current increment. 
dt 
double  Input  Current Time increment 
t_step 
double  Input  Subcase time. 
t_total 
double  Input  Total time (if CNTNLSUB is used) 
cdev 
double (table)  Output  Full material modulus matrix of size (6x6). These are calculated during the solution and are output to OptiStruct to form the stiffness matrix. 
cbulk 
double (table)  Output  (Optional) Bulk material modulus Matrix. 
smat 
Double (table)  Output  1D array (21 terms). This is the symmetric part of
cdev . These are calculated during the
solution and are output to OptiStruct to form the stiffness matrix. 
userdata 
Character  Output  Userdefined message that is output based on the value of
ierr argument. 
ierr 
Integer  Input/Output  Flag that activates/deactivates Output message for an
OptiStruct run from the user
subroutine.

Build External Libraries for Userdefined Materials
Allows building shared libraries on Windows or Linux.
Refer to Build External Libraries for more information.
UserDefined Thermal Material
The MATUSHT Bulk Data Entry, in combination with the LOADLIB I/O Option Entry, allows for the definition of thermal material through userdefined external functions.
Write External Functions
subroutine usrmatht(idu, matID, ieuid,
Integration_Point, Layer, Simpson_Point,
Stater, State,
nState, drot, props, nprops, temp,
dtemp, kinc, dt, t_step, t_total, hgen, smat
userdata, ierr)
character*32000 userdata
integer*8 i, idu, matID, ieuid, nState, nprops, kinc, ierr
integer Integration_Point, Layer, Simpson_Point
double precision Stater(nState), State(nState)
double precision drot(3,3), rmat(nprops)
double precision etempmat, dtemp, dt, t_step, t_total
double precision hgen, smat(9)
initusr
subroutine:subroutine initusr(idu,nstate,cstate)
implicit none
integer idu,nstate
character*64 cstate(nstate)
The strings in the initusr
subroutine should always be declared as
follows: character*64 cstate(nstate)
The declaration
should always use 64character size.cstate
variable can be assigned the label to
print in the userdefined results with 1
being the index for the
first variable in the example
below: cstate(1) = “Variable Name for State(1)”
Subroutine Arguments
Argument  Type  Input / Output  Description 

idu 
integer  Input  This is defined via the USUBID parameter
on the MATUSHT Bulk Data Entry. This argument
can be used to define and choose between different types of
materials within the same user subroutine. optional use 
matID 
Integer  Input  Material ID. 
ieuid 
integer  Input  Element ID. 

Integer  Input  Gauss Integration Point. 
Layer 
Integer  Input  Laminate Layer. 
Simpson Point 
Integer  Input  Throughthickness Simpson Integration Point. 
drot(3,3) 
Double (table)  Input  Transformation matrix. 
props 
double (table)  Input  This table contains all the userdefined thermal material property information from the PROPERTY continuation line of the MATUSHT entry. 
nprops 
Integer  Input  This is the total number of thermal material properties defined on the PROPERTY continuation line of the MATUSHT entry. 
temp 
double  Input  This is the temperature at the end of the current increment. 
dtemp 
double  Input  This is the temperature increment of the current increment. 
kinc 
integer  Input  Current nonlinear increment. 
dt 
double  Input  Current time step increment 
t_step 
double  Input  Current subcase time of the current time step. 
t_total 
double  Input  Total time (if IC is used). This is effective when the IC case control entry of a nonlinear transient thermal subcase points to a previous nonlinear transient thermal subcase. 
Stater 
double (table)  Input  Table of State variables at the last converged timestep. They are constant between iterations of the same time step. 
State 
double (table)  Input/Output  Table of State variables at the current timestep. They are updated and passed between iterations of the same timestep. State variables are variables that can be requested as output in the H3D file. Any variable calculated within the solution process in the subroutine can be output by defining it as a state variable. 
nState 
integer  Input  Number of State Variables that the user requires in the
subroutine. See Stater for more
information. 
cstate 
string  Output  A characterbased label from initusr
subroutine to OptiStruct. In the
usermaterial or smatusr
subroutines the state variables can be assigned userdefined
labels which can be displayed in the H3D
file when imported in HyperView. The
cstate variable provides the name for the
state variable declared in the subroutines to display in the
H3D file. 
hgen 
double (table)  Output  Generated heat. 
smat 
Double (table)  Output  Material matrix. These are calculated during the solution and
are output to OptiStruct. Format for
smat matrix is provided below.

userdata 
Character  Output  Userdefined message that is output based on the value of
ierr argument. 
ierr 
Integer  Input/Output  Flag that activates/deactivates Output message for an
OptiStruct run from the user
subroutine.

Output
Regular Builtin OptiStruct output, like Grid
Temperatures, Element Fluxes, and so on can be requested for any thermal material
usersubroutine based model. Additionally, userdefined output can also be requested
via the State(*)
variable in the usersubroutine. The number of
such State(*)
variables should be identified on the
NDEPVAR field.
This State variable can be assigned to any output variable that is required to be output from the subroutine, and it can then be visualized in HyperView after loading the H3D file.
Build External Libraries for Userdefined Materials
You can build shared libraries on Windows or Linux.
Refer to Build External Libraries for more information.
Combined Hardening of von Mises Plasticity
Combining hardening can be used for analysis with cyclic loading, in order to capture shakedown, ratcheting effect, and so on.
It consists of two nonlinear hardening rules, the nonlinear kinematic (NLKIN) and nonlinear isotropic (NLISO) hardening methods.
Generally, the isotropic part is closely related to the von Mises criteria, and the kinematic part is described by the evolution law of back stress.
Combined hardening can be activated by setting HR=6 on the MATS1 Bulk Data.
Isotropic Hardening (NLISO): Nonlinear Yield Function
The yield function of von Mises plasticity can be expressed in a general form as:
 $S$
 Deviatoric stress tensor.
 $\alpha $
 Back stress tensor.
 ${\sigma}_{y}$
 Yield stress as a function of equivalent plastic strain ${\overline{\epsilon}}_{p}$ .
The flow rule is defined as change of plastic strain, expressed in rate form as:
Where, $\lambda $ is the rate of plastic multiplier, which is also the rate of equivalent plastic strain.
The flow direction, $N$ can be introduced which is the derivative of the yield function with respect to the stress tensor,
Where, $\eta $ is the relative stress tensor, which is the difference between deviatoric stress and back stress.
For the nonlinear isotropic hardening, the yield stress is assumed to be a power law function of equivalent plastic strain:
Where, $Q$ and $b$ are two parameters which can be directly input via the Q and B fields on the MATS1 data (HR=6, TYPISO=PARAM) or these parameters are computed by parameter fitting algorithms, based on the stressstrain curve from experiment. The isotropic part of the yield stress and the equivalent plastic stress are provided via the SIG and EPS fields on the MATS1 data (HR=6, TYPISO=TABLE).
Nonlinear isotropic hardening is based on the von Mises plasticity criteria and; therefore, is associated with the flow rule.
Kinematic Hardening (NLKIN): Evolution Law of Back Stress
Compared with traditional linear hardening (HR=1 or 2), or the mixed hardening (HR=3), the main difference of NLKIN via HR=6 is the extended evolution law of back stress, which consists of a set of evolution equations for each back stress component:
and
 $k$
 Denotes the component number of the back stresses.
 $m$
 Total number of back stress components.
 ${C}_{k}$ and ${\gamma}_{k}$
 Corresponding parameter pair of component $k$ .
As the evolution of back stress ${\dot{\alpha}}_{k}$ depends both on the flow direction that is parallel to ${\dot{\epsilon}}_{p}$ and the back stress component ${\alpha}_{k}$ itself; thus, the evolution law of back stress is nonassociated. This leads to the unsymmetric elastoplastic consistent tangent modulus. The unsymmetric solver is always turned on as long as combined hardening is active.
Time Integration Scheme
The plasticity problem is usually solved using the return mapping method, which means it is first assumed to be an elastic trial stage, and then the stress is pulled back onto the yield surface if plastic flow occurs. BackwardEuler algorithm is used during the return mapping process.
Parameter Fitting
If the stressstrain curve is provided (TYPKIN=HALFCYCL or TYPISO=TABLE), the data points provided are used to compute the optimal parameters for combined hardening. For parameter fitting, the LevenbergMarquardt method is used, which is an extension of Newton method. The fitted parameters are printed in the .out file.
For NLISO with TYPISO=TABLE, the provided data in the continuation line is the yield stress versus equivalent plastic strain. This curve is usually generated based on the cyclic experiment with constant strain. The same curve is used for isotropic hardening (HR=1) for example, with TABLES1/TABLEG or TABLEST input.
Temperaturedependent combined hardening
If temperaturedependent combined hardening is active, then all the parameters are temperature dependent, for example,
$\begin{array}{l}{C}_{k}(T)\\ {\gamma}_{k}(T)\\ {\sigma}_{y0}(T)\\ Q(T)\\ b(T)\end{array}$
From experiment is only possible to test a limited number of temperatures. Interpolation is used to solving for plasticity at a temperature in between the test temperatures.
Using isotropic hardening NLISO as an example, if the parameters are provided at two temperatures ${T}_{1}$ and ${T}_{2}$ , then there are two yield stress functions for interpolation:
The interpolated yield stress at the current temperature ${T}_{curr}$ in [ ${T}_{1}$ , ${T}_{2}$ ] is then,
with two factors for different temperatures ${f}_{1}=\frac{{T}_{2}{T}_{curr}}{{T}_{2}{T}_{1}}$ , ${f}_{2}=\frac{{T}_{curr}{T}_{1}}{{T}_{2}{T}_{1}}$ .
As an example, Figure 2 illustrates the principle of interpolation.
If the temperature, $T$ is beyond the available temperature range [ ${T}_{1}$ , ${T}_{2}$ ], then closest temperature will be selected. In other words, no extrapolation of temperature is performed. Furthermore, it is suggested to provide the material parameter of NLKIN and NLISO at the same temperature.
Cast Iron Plasticity
Cast iron material model is used to describe the yield behavior of grey cast iron, in which tension and compression behavior are different.
In this material model, rate form is used for strain evolution and the strain rate is decomposed into two parts (elastic and plastic parts) in an additive way.
Yield Function
The yielding criteria is defined as:
Where,
$f=\{\begin{array}{c}\frac{2}{3}q\mathrm{cos}\theta +p{\sigma}_{t}\text{}p\frac{{\sigma}_{c}}{3}\\ q{\sigma}_{c}\text{}p\le \frac{{\sigma}_{c}}{3}\end{array}$
The first criterion is Rankine criterion (max. Principal stress criterion) for tensile yielding, and the second criterion is von Mises criterion for compressive yielding. Together they form a composite yield surface.
 ${\sigma}_{t}$
 Yield stress in uniaxial tension.
 ${\sigma}_{c}$
 Yield stress in uniaxial compression.
Since the material is assumed to be isotropic, the yield surface can be expressed with a function of three invariant measure of the stress tensor, $p$ , $q$ , and $r$ .
Where, $q$ is von Mises stress of a given stress state.
Where, $p$ is mean stress given by:
The invariant $r$ can be expressed as:
Where, $S$ is the tensor form of deviatoric stress.
The quantity $\theta $ is Lode’s Angle that is defined by $q$ and $r$ as shown below, which identifies the meridional plane for a given stress state.
In the principal stress space, the yield function is a von Mises cylinder intersected with Rankine planes (Figure 3). The yield surface is illustrated in $\pi $ plane in Figure 4 and Figure 5, and in meridional plane in Figure 6.
Where, $S$ is the tensor form of deviatoric stress.
Flow Rule
The flow rule is expressed as:
Hardening Rule
In this material model, only isotropic hardening is considered. The yield strength is increasing as the equivalent plastic strain grows. It is noted that as tension and the compression have different flow rules, the equivalent plastic strain is different for tension and compression. Hence, the tensile yield strength and the compressive yield strength are looked up from the tensile and the compressive table separately.
The compressive equivalent plastic strain is expressed as:
Where, $S\left({\dot{\epsilon}}^{p}\right)$ is the tensor of deviatoric part of plastic strain rate.
The tensile equivalent plastic strain is:
Where, ${\dot{\epsilon}}_{vol}^{p}={\dot{\epsilon}}_{xx}^{p}+{\dot{\epsilon}}_{yy}^{p}+{\dot{\epsilon}}_{zz}^{p}$ .
In the above expressions, the subscript index $n$ implies the physical quantity is at time $t=n$ , and $n1$ means the physical quantity is at the last converged time $t=n1$ .
Input
Cast iron plasticity material data can be specified by using the MCIRON Bulk Data Entry which has the same identification number as an existing MAT1 Bulk Data Entry. The Tensile and Compressive stressstrain curves can be defined using the TABLE_T and TABLE_C fields on the MCIRON entry.
Cast iron material via MCIRON is supported for Small and Large Displacement Nonlinear Static Analysis and Nonlinear Transient Analysis. It is supported for CHEXA, CTETRA, CPENTA, and CPYRA elements (both first and second order).
In addition to regular result output, additional results from this material model are output if STRAIN(PLASTIC) I/O Option is specified. These results include, 6 plastic strain components, equivalent compressive plastic strain, equivalent tensile plastic strain, nodal results, and integration results are also available.
Multiscale Modeling
OptiStruct (OS) and Multiscale Designer (MDS) can be combined to perform multiscaling analysis on structural components utilizing both linear and nonlinear materials.
Heterogeneous materials such as composites, soil, solid foams, and polycrystals consist of one or more distinguishable constituents that have different mechanical properties. ^{12} For example, it is known that fiberreinforced composite materials have a stiffer and stronger phase known as the reinforcement and, a less stiff and weaker phase known as the matrix. The governing equations are well understood in one of the scales, either the microscale or the macroscale. While general constitutive equations are applicable to solids under deformation in the macroscale, continuum models are required in the microscale. In order to bridge the gap between the two scales, you need to consider models at different scales simultaneously. This can be achieved by multiscaling techniques.
Classical laminate theory can predict the overall properties of heterogeneous laminates; whereas, homogenization theory provides information on the individual phase properties and phase geometries. Knowledge of individual phases is important to characterize material damage and failure. Hence, multiscaling techniques open unique opportunities for modeling by focusing the material behavior on different levels of physical laws.
 Unit cell geometry and mesh definition
 Linear material characterization
 Reducedorder homogenization
 Nonlinear material characterization
Singlescale Model
The basic steps required to construct a singlescale material model.
Cast iron plasticity is interesting to study because it has different yielding and hardening behavior when subjected to tensile and compressive loads. The first two sections explain the input data required from the Multiscale Designer (MDS). The next two sections explain the procedure to integrate the material in OptiStruct (OS) and perform structural analysis.
Linear Material Characterization
 isotropic
 transisotopic
 orthotropic
 anisotropic material
Here a homogeneous material with the properties of cast iron is utilized for characterization in the linear regime. The input elastic properties/parameters and values of the material are:
 Tensile Young’s modulus (GPa), ${E}_{t}$
 95.5
 Compressive Young’s modulus (GPa), ${E}_{c}$
 95.5
 Poisson's ratio, $\nu $
 0.26
Nonlinear Material Characterization
Various constitutive laws are available in Multiscale Designer, such as rateindependent plasticity, viscoelasticity, damage laws. Here isotropic damage – 3piecewise Linear Evolution is used to simulate the nonlinear behavior of the material. The damage model formulation within Multiscale Designer follows the continuum damage mechanics framework. The elastic stiffness matrix is degraded by using a damage state variable which is a function of principal strains. Only for compressive loads, the principal strains are multiplied by a compression factor to alleviate the damage in compression. The compression factor is calculated internally, based on the input properties of the material.
 Stress at damage initiation – tension (MPa), ${\sigma}^{0}$
 126.0
 Ultimate stress – tension (MPa), ${\sigma}^{1}$
 210.3
 Strain at ultimate stress  tension, ${\epsilon}^{1}$
 0.008
 Strain to failure – tension, ${\epsilon}^{2}$
 0.008
 Stress at damage initiation – compression (MPa), ${\sigma}_{c}^{0}$
 303.0
 Ultimate stress  compression (MPa), ${\sigma}_{c}^{1}$
 443.3
 Strain at ultimate stress  compression, ${\epsilon}_{c}^{1}$
 0.010
 Strain to failure – compression, ${\epsilon}_{c}^{2}$
 0.010
Nonlinear material characterization is done with a Unnotched Tensile/Compression builtin macro simulation model. Two simulations are defined conforming to ASTM D3039, D3518 and D6641. One to simulate tensile behavior and one for compressive behavior. In the process, a unit mesh – solid cube is fixed on one end and subjected to xdirection displacement on the other end. The stresses are computed by extracting, the reaction forces divided by unit area.
 Loading rate – Tension (/s)
 0.008
 Maximum strain  Tension
 0.008
 Loading rate – Compression (/s)
 0.01
 Maximum strain  Compression
 0.01
The loading rate is the strain rate for the test. For allrate independent laws (this includes isotropic damage law – 3 piecewise Linear evolution), it is typical to set the loading rate equal to the maximum strain. The minimum number of increments for mechanical loads is defined to be 20. This means that the initial timestep is set as the total step time divided by minimum mechanical increments.
The output data files are generated in the material model directory. The file path can be changed in the Multiscale Designer settings. The corresponding file names and descriptions are available in ‘Unit Cell Data Files’ of the Multiscale Designer User Manual.
Structural Analysis
Integrate Multiscale Designer Files with OptiStruct
 In Multiscale Designer, select the input file (.mic).
 Select the Solver Interfaces tab.

In the option for OptiStruct, click the
Multiscale Materials tab.
The Multiscale Designer solver interface for OptiStruct opens.

Make sure that the plugin “dll” and multiscale material
data files are pointing to the material subroutine and Multiscale Designer model, respectively.
Example directory to the material subroutine and Multiscale Designer model are <hwinstallation_directory\hwsolvers\MultiscaleDesigner\win64\plugins\optiStruct\umat.dll> and <working_directory\MultiscaleDesigner\model_name\Mechanical\model_name_mdsMAT.dat>, respectively.
The number of userdefined variables computed for isotropic damage law is 8, which the terms from damage state variable, equivalent strain, total strain, and Eigen strain.

Change the output folder directory for the plugin data to the model file path,
<working_directory\model_name\Mechanical>.
The generated plugin data file (OptiStruct_plugin_data.fem) contains the LOADLIB I/O and MATUSR cards for running the structural analysis. The LOADLIB I/O Entry is used to implement external subroutines and MATUSR is used to defined user material parameters and properties. These cards are later inserted into OptiStruct input model files (*.fem).
Note: The input model file should be in the same folder as the multiscale material. The material subroutines are called into this database through LOADLIB.
 The USUBID number in the MATUSR should refer to the multiscale material model ID.
Singlescale Results
Sample cards are generated for Multiscale DesignerOptiStruct integration, with the results of tension and compression test in OptiStruct with the userdefined material.
Elastic properties from homogenization and stressstrain curve from damage law are presented.
Linear Material Characterization
 Tensile Young’s modulus (GPa), ${E}_{t}$
 95.5
 Compressive Young’s modulus (GPa), ${E}_{c}$
 95.5
 Poisson's value, $\nu $
 0.26
Nonlinear Material Characterization
Multiscale DesignerOptiStruct Integration
Structural Analysis
Multiscale Model
The basic steps required to construct a multiscale material model.
Unidirectional fiberreinforced polymer composite is subjected to tensile load in fiberaxial and fibertransverse directions. The response of the material is output and validated with experimental data. The first two sections explain the input data required from the Multiscale Designer (MDS). The next two sections explain the procedure to integrate the material in OptiStruct (OS).
Unit Cell Model and Linear Material Characterization
The matrix is modeled with homogeneous elastic properties and the fiber is assumed to be transversely isotropic. Periodic boundary conditions are applied to the unit cell to obtain the homogenized stiffness matrix of the composite.
 Young’s modulus of the matrix (GPa), ${E}^{m}$
 3.8
 Poisson’s ratio of the matrix, ${\nu}^{m}$
 0.32
 Longitudinal Young’s modulus of fiber (GPa), ${E}_{1}^{f}$
 252.25
 Transverse Young’s modulus of fiber (GPa), ${E}_{2}^{f}$
 13.45
 Longitudinal Poisson’s ratio, ${\nu}_{12}$
 0.02
 Transverse Poisson’s ratio, ${\nu}_{23}$
 0.3
Nonlinear Material Characterization
The matrix is assumed to obey isotropic damage – bilinear evolution model and the fiber is assumed to follow orthotropic damage – bilinear evolution, for simulating the nonlinear behavior of the material.
 Stress at damage initiation (MPa), ${\sigma}^{0m}$
 126.0
 Strain at ultimate stress, ${\epsilon}^{1m}$
 0.1
 Stress at damage initiation – longitudinal direction (GPa), ${\sigma}_{1}^{0f}$
 4.2
 Strain at ultimate stress – longitudinal direction, ${\epsilon}_{1}^{1f}$
 0.017
 Stress at damage initiation – transverse direction (MPa), ${\sigma}_{2}^{0f}$
 75.0
 Strain at ultimate stress – transverse direction, ${\epsilon}_{2}^{1f}$
 0.05
For nonlinear material characterization in fiberaxial and fibertransverse direction, two laminate layups with unit thickness are created with orientations 0° and 90°, respectively. Each laminate is subjected to Unnotched Tensile/Compression macro simulation with different loading rates.
 Loading rate – Fiber axial direction test (/s)
 0.05
 Maximum strain  Fiber axial direction test
 0.05
 Loading rate – Fiber transverse direction test (/s)
 0.017
 Maximum strain  Fiber transverse direction test
 0.017
The output data files are generated in the material model directory and the stressstrain curve data will export to an Excel spreadsheet file in <material_model_directory\model_name\mechanical\model_name_NLmatl.xlsx>.
Integrate Multiscale Designer Files with Multiscale DesignerOptiStruct
 In Multiscale Designer solver interface for OptiStruct, click the Homogenized Materials tab.
 Set the card images to MAT2, MAT8, MAT9 or MAT9ORT.
 Click the Multiscale Materials tab and set the output file path for the OptiStruct plugin “dll”.

In the multiscale material data file, browse the file path to
<material_model_directory\model_name\mechanical\model_name_mdsMAT.dat>.
The number of userdefined variables computed for orthotropic damage law is 8, which involves the terms from the damage state variable, equivalent strain, total strain, and eigen strain.
 By default, the OptiStruct plugin data files are output to <material_model_directory\Macro\Mechanical\optiStruct_plugin_data.fem>.
Multiscale Results
Sample cards are generated for Multiscale DesignerOptiStruct integration with OptiStruct test results.
Elastic properties from homogenization and stressstrain curve from damage law are presented.
Unit Cell Model and Linear Material Characterization
 Longitudinal Young’s modulus (GPa), ${E}_{1}^{c}$
 165.4
 Transverse Young’s modulus (GPa), ${E}_{1}^{t}$
 8.8
 Longitudinal Poisson’s ratio, ${\nu}_{12}^{c}$
 0.11
 Transverse Poisson’s ratio, ${\nu}_{23}^{c}$
 0.34