Figure E1-1 shows a 2m beam, only the left half of which is subjected to a uniform temperature increment from 0oC to 1000oC. The right half of the beam keeps ambient temperature and acts as a translational spring to restrain the displacement of the left part. Two beam elements are used in the model. Material class Steel01Thermal is used and the initial modulus of elasticity at 0oC is 200GPa.
Downloading the Example package Here
This cantilever beam is 2m long. It is made of a rectangual section which is 0.4m in width and 0.1m in thickness.
wipe;
set ANALYSIS "HasPoint";
set TANALYSIS "Has0Thermo";
model BasicBuilder -ndm 3 -ndf 6
source DisplayPlane.tcl
source DisplayModel2D.tcl
source DisplayModel3D.tcl
set nx 30;
set ny 4;
set slabT 0.1;
set slabB 0.4;
set slabL 3.0;
set gt [expr 3.0e6/1.79e10*3.0e6*2];
set gc [expr 30e6/1.79e10*30e6*6];
nDMaterial CDPPlaneStressThermal 100 1.79e10 0.2 3.0e6 30e6 $gt $gc;
nDMaterial PlateFromPlaneStressThermal 4 100 10e9;
nDMaterial ElasticIsotropic3DThermal 23 1.79e10 0.2 0 2.4e-5 -CSoft;
nDMaterial PlateFiberThermal 24 23;
nDMaterial J2PlaneStressThermal 10 2.06e11 0.3 3.45e8 4.45e8 0 0;
nDMaterial PlateFromPlaneStressThermal 44 10 20e10;
section LayeredShellThermal 2 14 4 0.01 4 0.009607301 3 0.000392699 5 0.000392699 4 0.009607301 4 0.01 4 0.01 4 0.01 4 0.01 4 0.009607301 3 0.000392699 5 0.000392699 4 0.009607301 4 0.01 ;
section LayeredShellThermal 3 12 4 0.01 4 0.00980365 44 0.000392699 4 0.00980365 4 0.01 4 0.01 4 0.01 4 0.01 4 0.00980365 44 0.000392699 4 0.00980365 4 0.01;
#ShellNLDKGQThermal ShellMITC4Thermal ShellMITC4GNLThermal#
block2D $nx $ny 1 1 ShellNLDKGQThermal 2 {
1 0. 0. 0.
2 3 0. 0.
3 3 0.4 0.
4 0. 0.4 0.
}
fixX 0 1 1 1 1 1 1 ;
if {$ANALYSIS == "HasPoint"} {
pattern Plain 1 Linear {
set Load -500;
for {set ID 0} {$ID<=$ny} {incr ID} {
set nodeID [expr ($nx+1)*($ID+1)];
load $nodeID 0 0 [expr $Load/($ny+1)] 0 0 0 ;
}
}
puts "Point";
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr 1e-3 300 1;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 10;
loadConst -time 0.0
}
if {$TANALYSIS == "HasThermo"} {
puts "Thermal action to slab"
pattern Plain 3 Linear {
eleLoad -range 1 $NumEles -type -shellThermal 1000 [expr -$slabT/2] 0 [expr $slabT/2];
}
constraints Plain;
numberer Plain;
system BandGeneral;
#test NormUnbalance 1.0e-4 10 1;
test NormDispIncr 1e-3 500 1;
algorithm Newton;
integrator LoadControl 0.01;
analysis Static;
analyze 100;
}
This page is created by Liming Jiang, 2016