3.1.6.15. Series3D Material Wrapper
This command is used to construct a Series3D material object. It is a wrapper that imposes an iso-stress condition to an arbitrary number of previously-defined 3D nDMaterial objects
3.1.6.15.1. Theory
This model imposes a minimal kinematic constraint on the sub-materials such that the macro-scopic strain tensor \(\varepsilon_{m}\) (i.e. the strain tensor of the wrapper Series3D material) is equal to the volumetric average of the micro-scopic strain tensors \(\varepsilon_{i}\) (i.e. the strain tensors of each sub-material)
The above equation can be rewritten as a weighted sum
where the weight \(w_{i}\) is the volume fraction of the ith sub-material. Imposing the constraint in (3.1.6.2) is equivalent to impose forces on each sub-material proportional to each material’s volume fraction:
But the force acting on each volume fraction (with its own sub-material) is
therefore, the following equality can be written
which shows that (3.1.6.2) actually imposes an iso-stress condition on each sum-material
- nDMaterial Series3D $matTag $tag1 $tag2 ... $tagN <-weights $w1 $w2 ... $wN> <-maxIter $maxIter> <-relTol $relTol> <-absTol $absTol> <-verbose>
Argument |
Type |
Description |
---|---|---|
$matTag |
integer |
unique tag identifying this series material wrapper |
$tag1 $tag2 … $tagN |
N integer |
unique tags identifying previously defined nD materials |
$w1 $w2 … $wN |
N float |
weight factors, optional. If not defined, they will be assumed all equal to 1 |
-maxIter |
string |
string keyword to specify a user-defined maximum number of iterations |
$maxIter |
integer |
maximum number of iterations to impose the iso-stress condition, optional, default = 10 |
-relTol |
string |
string keyword to specify a user-defined relative stress tolerance for the iso-stress condition |
$relTol |
float |
relative stress tolerance for the iso-stress condition, optional, default = 1.0e-4 |
-absTol |
string |
string keyword to specify a user-defined absolute stress tolerance for the iso-stress condition |
$absTol |
float |
absolute stress tolerance for the iso-stress condition, optional, default = 1.0e-8 |
-verbose |
string |
string keyword to activate print of debug information |
3.1.6.15.2. Usage Notes
Limitations
The only material formulation for the Series3D material object is “ThreeDimensional”.
The only material formulation allowed for the sub-material objects is “ThreeDimensional”.
Responses
All responses available for the nDMaterial object: stress (or stresses), strain (or strains), tangent (or Tangent), TempAndElong.
material $matId … : use the material keyword followed by the 1-based index of the sub-material (and followed by the desired response) to forward the request to the matId sub-material.
homogenized … : use the homogenized keyword followed by the desired response to forward the request to all sub-materials, and to compute its weighted average.
Example 1 - Simple Linear Validation
equal stress
additive strain
strain in the soft material twice as large as the strain in the stiff material
Tcl Code
# the 2D model
wipe
model basic -ndm 2 -ndf 2
# 2 young's moduli
set E1 30000.0
set E2 [expr $E1*0.5]
# 2 elastic materials
nDMaterial ElasticIsotropic 1 $E1 0.2
nDMaterial ElasticIsotropic 2 $E2 0.2
# the Series3D wrapper using all weights = 1
nDMaterial Series3D 3 1 2
# a triangle
node 1 0 0
node 2 1 0
node 3 0 1
nDMaterial PlaneStress 100 3
element tri31 1 1 2 3 1.0 "PlaneStress" 100
# fixity
fix 1 1 1
fix 2 0 1
fix 3 1 0
# a simple ramp
timeSeries Linear 1
# imposed macroscopic strain in XX component
set em 0.01
pattern Plain 1 1 {
sp 2 1 $em
}
# solve
constraints Transformation
numberer Plain
system FullGeneral
test NormDispIncr 1.0e-6 10 0
algorithm Newton
integrator LoadControl 1.0
analysis Static
analyze 1
# check responses
puts "Checking responses"
set Sm [expr [lindex [eleResponse 1 material 1 stress] 0]]
set S1 [expr [lindex [eleResponse 1 material 1 material 1 stress] 0]]
set S2 [expr [lindex [eleResponse 1 material 1 material 2 stress] 0]]
set SmHom [expr [lindex [eleResponse 1 material 1 homogenized stress] 0]]
puts "Sm = S1 = S2 = SmHom -> [format {%6.3f = %6.3f = %6.3f = %6.3f} $Sm $S1 $S2 $SmHom] (stresses are equal)"
set Em [expr [lindex [eleResponse 1 material 1 strain] 0]]
set E1 [expr [lindex [eleResponse 1 material 1 material 1 strain] 0]]
set E2 [expr [lindex [eleResponse 1 material 1 material 2 strain] 0]]
puts "Em = E1 + E2 -> [format {%6.5f = %6.5f + %6.5f} $Em $E1 $E2] (strains are additive since w1=w2=1)"
Code Developed by: Massimo Petracca at ASDEA Software, Italy.