Properties |
Methods |
Physical properties of a block for problems of stress analysis.
The LabelBlockSA object represents physical data applicable to the block label for stress analysis problems.
When you need to set or modify some 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.
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 isotropic material you can use a simplified version of elasticity properties.
Young property
as Double | 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 object. 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. |
Poisson property
as Double | 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 |
Shear property
as Double | Gets and sets a Shear 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.
Elasticity | Gets and sets all seven elasticity constants as the Elast structure. |
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.
ThermalExpansion property
as Double | 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 |
ThermalExpansionAniz property
as Vector3D | Gets and sets three thermal expansion coefficients a modulus for an anisotropic material as the Vector3D user-defined type. |
Temperature property
as Double | 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. |
BodyForceX and
BodyForceY properties as LinFunc | Gets and sets the body force density in form of a linear function of coordinates. |
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.
AllowableStress (which) | Gets and sets the allowable stresses as the HMatrix object.
Use an optional which parameter that can be qfTensile or 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
' Elasticity 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
' Elasticity 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