Physical properties of a block for problems of stress analysis.
Details
The LabelBlockSA object represents physical data applicable to the block label for stress
analysis problems.
When you need to set or modify physical parameters for the block label, you have to get the LabelBlockSA
object using the Content property of the Label object, modify the LabelBlockSA object using its
properties, and then put it back in the Label object assigning your LabelBlockSA
to the Content property of your Label object.
The LabelBlockSA object inherits methods and properties from its base class LabelBlock. In addition, it provides properties specific for
stress analysis. Because of the rather large number of the block parameters, some of them are
accessible by more than one property.
Elasticity Constants
In the most general case a block label can have up to seven independent elasticity constants.
There are Young's moduli (three directions), Poisson ratios (three directions) and a Shear
modulus. If the material is isotropic, there are only three different parameters (Young's
modulus, Poisson ration and shear modulus) and only two of them are independent.
For the block label describing an anisotropic material you can use a simplified version of
elasticity properties.
Get and set the Young's modulus for an isotropic material in (N/m2).
Alternatively you use the Elasticity
property (see below) to set and get all of elasticity constants as an Elast record.
When you set a Young property to the LabelBlockSA object, all three
Young moduli becomes equal to the same value and the material is marked as
isotropic.
The Young value must be non-negative. A zero value excludes the block from
the analysis.
Gets and sets a Poisson ratio for an isotropic material.
When you set a Poisson property to the LabelBlockSA object, all three
Poisson ratios becomes equal to the same value and the material is marked as
isotropic.
For an anisotropic material use the Elasticity
property instead.
The Poisson ratio should be in range 0 < Poisson <= 0.5
Gets and sets a modulus for an isotropic material in (N/m2).
When you set a Shear property to the LabelBlockSA object, the material
is marked as isotropic.
For an anisotropic material use the Elasticity
property instead.
The Shear modulus must be positive. The upper boundary of the range is also limited
and depends upon Young and Poisson values.
Please note that when you set the Young, Poisson or shear property, you also implicitly change
another property of this group, because only two of them are independent for an isotropic
material.
For anisotropic materials, you have to use the Elasticity
property.
Gets and sets all seven elasticity constants as the Elast
user-defined type (known as a struct in the C language)
Loadings
There are two kinds of loadings that can be applied to the block: thermal strain and distributed
body force.
The thermal strain is described by the set of thermal expansion coefficients and the predefined
temperature value. If your material is isotropic you can use the ThermalExpansion property that sets all three
coefficient to the same value. In the case of anisotropic materials, use the ThermalExpansionAniz property.
Two components of the body force density are described by the BodyForceX and BodyForceY
properties. They get and set a LinFunc user-defined type,
which contains three numbers describing a body force density as a linear function of
coordinates.
Gets and sets a coefficient of thermal expansion for an isotropic material.
For an anisotropic material, use the ThermalExpansionAniz
property instead.
The coefficient of thermal expansion should be non-negative
Gets and sets the temperature value in Celsius degrees.
The Temperature property is normally used to specify the temperature
difference between strained and strainless states. With coupled problems, where the
temperature of strained state is obtained from thermal analysis, you should specify
the temperature of the unstrained state.
Gets and sets the body force density in form of a linear function of coordinates.
Allowable Stresses
Allowable stresses are only used in the postprocessing stage to calculate the Mohr-Coulomb, Drucker-Prager,
and Hill criteria. You don't need to define allowable
stresses, if these criteria are of no interest to you.
Gets and sets the allowable stresses as the HMatrix
object.
Use an optional which parameter that can be qfTensileor qfCompressive
if tensile and compressive allowable stresses are different.
The fragment below in Visual Basic sets the isotropic properties to the label "Metal"
and then creates a new label "Lamination" and sets it to anisotropic elastic
properties and thermal expansion coefficients.
Dim lb As QuickField.Label
Dim lbSA As QuickField.LabelBlockSA
' Set data for isotropic material
Set lb = prb.Labels(qfBlock).Item("Metal")
Set lbSA = lb.Content
With lbSA
' Elastisity constants
.Young = 200000000000#
.Poisson = 0.3
' Thermal strains
.ThermalExpansion = 0.0000115
.Temperature = 100
' Body force density
Dim lf As LinFunc
lf.a = 10000#
lf.b = 0
lf.c = 0
.BodyForceX = lf
lf.a = 20000#
.BodyForceY = lf
' Allowable stresses
Dim hm As QuickField.HMatrix
Set hm = .AllowableStress
hm.xx = 300000000#
hm.yy = 300000000#
hm.yx = 300000000#
.AllowableStress = hm
End With
lb.Content = lbSA
' Set data for anisotropic material
Set lb = prb.Labels(qfBlock).Add
lb.Name = "Lamination"
Set lbSA = lb.Content
With lbSA
' Elastisity constants
Dim el As Elast
el.E.X = 200000000000#
el.E.Y = 250000000000#
el.E.Z = 150000000000#
el.Nu.X = 0.3
el.Nu.Y = 0.25
el.Nu.Z = 0.25
el.Gxy = 100000000000#
.Elasticity = el
' Thermal strains
Dim v As Vector3D
v.X = 0.000011
v.Y = 0.0000055
v.Z = 0.000008
.ThermalExpansionAniz = v
.Temperature = 100
End With
lb.Content = lbSA