Add scripts and inp files.
This commit is contained in:
parent
ad937f2602
commit
e19f869a1e
390 changed files with 6580687 additions and 10 deletions
215
Unpublished/PeriodicBoundary/3d_PBC_Pre.py
Normal file
215
Unpublished/PeriodicBoundary/3d_PBC_Pre.py
Normal file
|
@ -0,0 +1,215 @@
|
|||
# 3D PCBs - JGrogan - V1.0
|
||||
# V1.0 - Ceated: 18-02-12
|
||||
from abaqus import *
|
||||
from abaqusConstants import *
|
||||
#
|
||||
zModel=mdb.models['Model-1']
|
||||
zAssembly=zModel.rootAssembly
|
||||
zInstance=zAssembly.instances['Part-1-1']
|
||||
#
|
||||
# Enter Node Selection Tolerance and a 'Big' Number
|
||||
Toler=1.e-6
|
||||
BigNum=1.e6
|
||||
# Characterize Part
|
||||
XMax=-BigNum
|
||||
YMax=-BigNum
|
||||
ZMax=-BigNum
|
||||
XMin=BigNum
|
||||
YMin=BigNum
|
||||
ZMin=BigNum
|
||||
for eachNode in zInstance.nodes:
|
||||
XCor=eachNode.coordinates[0]
|
||||
YCor=eachNode.coordinates[1]
|
||||
ZCor=eachNode.coordinates[2]
|
||||
if XCor>XMax:
|
||||
XMax=XCor
|
||||
elif XCor<XMin:
|
||||
XMin=XCor
|
||||
if YCor>YMax:
|
||||
YMax=YCor
|
||||
elif YCor<YMin:
|
||||
YMin=YCor
|
||||
if ZCor>ZMax:
|
||||
ZMax=ZCor
|
||||
elif ZCor<ZMin:
|
||||
ZMin=ZCor
|
||||
#
|
||||
# Distribute Nodes into Sets
|
||||
for eachNode in zInstance.nodes:
|
||||
XCor=eachNode.coordinates[0]
|
||||
YCor=eachNode.coordinates[1]
|
||||
ZCor=eachNode.coordinates[2]
|
||||
# Front Face, Edges and Nodes
|
||||
if(XCor<XMax+Toler)and(XCor>XMax-Toler):
|
||||
if(YCor<YMax+Toler)and(YCor>YMax-Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='B',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='C',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeBC', sets=(zAssembly.sets['EdgeBC'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeBC',nodes=Node)
|
||||
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='B1',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='C1',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeB1C1', sets=(zAssembly.sets['EdgeB1C1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeB1C1',nodes=Node)
|
||||
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeBB1', sets=(zAssembly.sets['EdgeBB1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeBB1',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeCC1', sets=(zAssembly.sets['EdgeCC1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeCC1',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceFront', sets=(zAssembly.sets['FaceFront'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceFront',nodes=Node)
|
||||
# Back Face, Edges and Nodes
|
||||
elif(XCor<XMin+Toler)and(XCor>XMin-Toler):
|
||||
if(YCor<YMax+Toler)and(YCor>YMax-Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='A',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='D',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeAD', sets=(zAssembly.sets['EdgeAD'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeAD',nodes=Node)
|
||||
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='A1',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='D1',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeA1D1', sets=(zAssembly.sets['EdgeA1D1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeA1D1',nodes=Node)
|
||||
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeAA1', sets=(zAssembly.sets['EdgeAA1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeAA1',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
if(YCor<YMax-Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeDD1', sets=(zAssembly.sets['EdgeDD1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeDD1',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceRear', sets=(zAssembly.sets['FaceRear'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceRear',nodes=Node)
|
||||
# Top Face and Edges
|
||||
elif(YCor<YMax+Toler)and(YCor>YMax-Toler):
|
||||
if(XCor<XMax-Toler)and(XCor>XMin+Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeAB', sets=(zAssembly.sets['EdgeAB'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeAB',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeCD', sets=(zAssembly.sets['EdgeCD'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeCD',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceTop', sets=(zAssembly.sets['FaceTop'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceTop',nodes=Node)
|
||||
# Bottom Face and Edges
|
||||
elif(YCor<YMin+Toler)and(YCor>YMin-Toler):
|
||||
if(XCor<XMax-Toler)and(XCor>XMin+Toler):
|
||||
if(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeA1B1', sets=(zAssembly.sets['EdgeA1B1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeA1B1',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='EdgeC1D1', sets=(zAssembly.sets['EdgeC1D1'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='EdgeC1D1',nodes=Node)
|
||||
else:
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceBottom', sets=(zAssembly.sets['FaceBottom'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceBottom',nodes=Node)
|
||||
# Left Face
|
||||
elif(ZCor<ZMax+Toler)and(ZCor>ZMax-Toler):
|
||||
if(XCor<XMax-Toler)and(XCor>XMin+Toler)and(YCor>YMin+Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceLeft', sets=(zAssembly.sets['FaceLeft'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceLeft',nodes=Node)
|
||||
elif(ZCor<ZMin+Toler)and(ZCor>ZMin-Toler):
|
||||
if(XCor<XMax-Toler)and(XCor>XMin+Toler)and(YCor>YMin+Toler)and(YCor>YMin+Toler):
|
||||
Node=zInstance.nodes.sequenceFromLabels(labels=(eachNode.label,))
|
||||
zAssembly.Set(name='Temp',nodes=Node)
|
||||
try:
|
||||
zAssembly.SetByMerge(name='FaceRight', sets=(zAssembly.sets['FaceRight'],zAssembly.sets['Temp']))
|
||||
except:
|
||||
zAssembly.Set(name='FaceRight',nodes=Node)
|
||||
# Clean Up
|
||||
del zAssembly.sets['Temp']
|
||||
|
261
Unpublished/PeriodicBoundary/PBC3D.py
Normal file
261
Unpublished/PeriodicBoundary/PBC3D.py
Normal file
|
@ -0,0 +1,261 @@
|
|||
# 3D PCBs - JGrogan - V1.0
|
||||
# V1.0 - Ceated: 18-02-12
|
||||
from abaqus import *
|
||||
from abaqusConstants import *
|
||||
#
|
||||
# Define Tolerance for Node Matching:
|
||||
Toler = 0.0001
|
||||
#
|
||||
zModel=mdb.models['Model-1']
|
||||
zAssembly=zModel.rootAssembly
|
||||
#
|
||||
# Constraints
|
||||
for j in range(0,3):
|
||||
if j == 0:
|
||||
Name1='FaceBottom'
|
||||
Name2='FaceTop'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=-1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 1:
|
||||
Name1='FaceFront'
|
||||
Name2='FaceRear'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 2:
|
||||
Name1='FaceLeft'
|
||||
Name2='FaceRight'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 3:
|
||||
Name1='EdgeCC1'
|
||||
Name2='EdgeBB1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 4:
|
||||
Name1='EdgeBB1'
|
||||
Name2='EdgeAA1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 5:
|
||||
Name1='EdgeAA1'
|
||||
Name2='EdgeDD1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 6:
|
||||
Name1='EdgeCD'
|
||||
Name2='EdgeAB'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 6:
|
||||
Name1='EdgeAB'
|
||||
Name2='EdgeA1B1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=-1.
|
||||
Coeff31=-1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 7:
|
||||
Name1='EdgeA1B1'
|
||||
Name2='EdgeC1D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 7:
|
||||
Name1='EdgeAD'
|
||||
Name2='EdgeBC'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=-1.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 8:
|
||||
Name1='EdgeBC'
|
||||
Name2='EdgeB1C1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=-1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 8:
|
||||
Name1='EdgeB1C1'
|
||||
Name2='EdgeA1D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 9:
|
||||
Name1='B'
|
||||
Name2='C'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 10:
|
||||
Name1='A'
|
||||
Name2='D'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 11:
|
||||
Name1='C'
|
||||
Name2='C1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-0.
|
||||
elif j == 12:
|
||||
Name1='D'
|
||||
Name2='D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-0.
|
||||
elif j == 13:
|
||||
Name1='C1'
|
||||
Name2='B1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 14:
|
||||
Name1='D1'
|
||||
Name2='A1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 15:
|
||||
Name1='A1'
|
||||
Name2='B1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=-1.
|
||||
Coeff21=-1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
i=1
|
||||
entity1=zAssembly.sets[Name1].nodes
|
||||
entity2=zAssembly.sets[Name2].nodes
|
||||
for eachNode1 in entity1:
|
||||
cor1x=eachNode1.coordinates[0]
|
||||
cor1y=eachNode1.coordinates[1]
|
||||
cor1z=eachNode1.coordinates[2]
|
||||
for eachNode2 in entity2:
|
||||
distx=abs(cor1x-eachNode2.coordinates[0])
|
||||
disty=abs(cor1y-eachNode2.coordinates[1])
|
||||
distz=abs(cor1z-eachNode2.coordinates[2])
|
||||
if (distx<Toler and disty<Toler)or(disty<Toler and distz<Toler)or(distx<Toler and distz<Toler) :
|
||||
Node1=entity1.sequenceFromLabels(labels=(eachNode1.label,))
|
||||
Node2=entity2.sequenceFromLabels(labels=(eachNode2.label,))
|
||||
ZAssembly.Set(name=Name1+str(i),nodes=Node1)
|
||||
ZAssembly.Set(name=Name2+str(i),nodes=Node2)
|
||||
ZModel.Equation(name=Name1+Name2+'1'+str(i),terms=((Coeff11,Name1+str(i),1),(Coeff12,Name2+str(i),1),(Coeff13,'Dummy',1)))
|
||||
ZModel.Equation(name=Name1+Name2+'2'+str(i),terms=((Coeff21,Name1+str(i),2),(Coeff22,Name2+str(i),2),(Coeff23,'Dummy',2)))
|
||||
ZModel.Equation(name=Name1+Name2+'3'+str(i),terms=((Coeff31,Name1+str(i),3),(Coeff32,Name2+str(i),3),(Coeff33,'Dummy',3)))
|
||||
i=i+1
|
261
Unpublished/PeriodicBoundary/PBC3D_V1_0.py
Normal file
261
Unpublished/PeriodicBoundary/PBC3D_V1_0.py
Normal file
|
@ -0,0 +1,261 @@
|
|||
# 3D PCBs - JGrogan - V1.0
|
||||
# V1.0 - Ceated: 18-02-12
|
||||
from abaqus import *
|
||||
from abaqusConstants import *
|
||||
#
|
||||
# Define Tolerance for Node Matching:
|
||||
Toler = 0.0001
|
||||
#
|
||||
zModel=mdb.models['Model-1']
|
||||
zAssembly=zModel.rootAssembly
|
||||
#
|
||||
# Constraints
|
||||
for j in range(0,19):
|
||||
if j == 0:
|
||||
Name1='FaceBottom'
|
||||
Name2='FaceTop'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=-1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 1:
|
||||
Name1='FaceFront'
|
||||
Name2='FaceRear'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 2:
|
||||
Name1='FaceLeft'
|
||||
Name2='FaceRight'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 3:
|
||||
Name1='EdgeCC1'
|
||||
Name2='EdgeBB1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 4:
|
||||
Name1='EdgeBB1'
|
||||
Name2='EdgeAA1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 5:
|
||||
Name1='EdgeAA1'
|
||||
Name2='EdgeDD1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 6:
|
||||
Name1='EdgeCD'
|
||||
Name2='EdgeAB'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 7:
|
||||
Name1='EdgeAB'
|
||||
Name2='EdgeA1B1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=-1.
|
||||
Coeff31=-1. #
|
||||
Coeff32=1.
|
||||
Coeff33=0.
|
||||
elif j == 8:
|
||||
Name1='EdgeA1B1'
|
||||
Name2='EdgeC1D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 9:
|
||||
Name1='EdgeAD'
|
||||
Name2='EdgeBC'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=-1.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 10:
|
||||
Name1='EdgeBC'
|
||||
Name2='EdgeB1C1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=-1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 11:
|
||||
Name1='EdgeB1C1'
|
||||
Name2='EdgeA1D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=-1.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
elif j == 12:
|
||||
Name1='B'
|
||||
Name2='C'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 13:
|
||||
Name1='A'
|
||||
Name2='D'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-1.
|
||||
elif j == 14:
|
||||
Name1='C'
|
||||
Name2='C1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-0.
|
||||
elif j == 15:
|
||||
Name1='D'
|
||||
Name2='D1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=1.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=-0.
|
||||
elif j == 16:
|
||||
Name1='C1'
|
||||
Name2='B1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 17:
|
||||
Name1='D1'
|
||||
Name2='A1'
|
||||
Coeff11=1.
|
||||
Coeff12=-1.
|
||||
Coeff13=0.
|
||||
Coeff21=1. #
|
||||
Coeff22=-1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=1.
|
||||
elif j == 18:
|
||||
Name1='A1'
|
||||
Name2='B1'
|
||||
Coeff11=-1.
|
||||
Coeff12=1.
|
||||
Coeff13=-1.
|
||||
Coeff21=-1. #
|
||||
Coeff22=1.
|
||||
Coeff23=0.
|
||||
Coeff31=1. #
|
||||
Coeff32=-1.
|
||||
Coeff33=0.
|
||||
i=1
|
||||
entity1=zAssembly.sets[Name1].nodes
|
||||
entity2=zAssembly.sets[Name2].nodes
|
||||
for eachNode1 in entity1:
|
||||
cor1x=eachNode1.coordinates[0]
|
||||
cor1y=eachNode1.coordinates[1]
|
||||
cor1z=eachNode1.coordinates[2]
|
||||
for eachNode2 in entity2:
|
||||
distx=abs(cor1x-eachNode2.coordinates[0])
|
||||
disty=abs(cor1y-eachNode2.coordinates[1])
|
||||
distz=abs(cor1z-eachNode2.coordinates[2])
|
||||
if (distx<Toler and disty<Toler)or(disty<Toler and distz<Toler)or(distx<Toler and distz<Toler):
|
||||
Node1=entity1.sequenceFromLabels(labels=(eachNode1.label,))
|
||||
Node2=entity2.sequenceFromLabels(labels=(eachNode2.label,))
|
||||
zAssembly.Set(name='S'+Name1+str(i),nodes=Node1)
|
||||
zAssembly.Set(name='S'+Name2+str(i),nodes=Node2)
|
||||
zModel.Equation(name=Name1+Name2+'1'+str(i),terms=((Coeff11,'S'+Name1+str(i),1),(Coeff12,'S'+Name2+str(i),1),(Coeff13,'Dummy',1)))
|
||||
zModel.Equation(name=Name1+Name2+'2'+str(i),terms=((Coeff21,'S'+Name1+str(i),2),(Coeff22,'S'+Name2+str(i),2),(Coeff23,'Dummy',2)))
|
||||
zModel.Equation(name=Name1+Name2+'3'+str(i),terms=((Coeff31,'S'+Name1+str(i),3),(Coeff32,'S'+Name2+str(i),3),(Coeff33,'Dummy',3)))
|
||||
i=i+1
|
14
Unpublished/PeriodicBoundary/periodic.py
Normal file
14
Unpublished/PeriodicBoundary/periodic.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
from abaqusConstants import *
|
||||
from abaqus import *
|
||||
aModel=mdb.models['3D_Rad']
|
||||
aAss=aMode.rootAsembly
|
||||
aPart=aModel.parts['Mesh']
|
||||
aSet=aAss.sets['Set-1']
|
||||
aInst=aAss.instances['Mesh-1']
|
||||
for eachnode in aSet.nodes:
|
||||
theta=eachnode.coordinates[1]/Radius
|
||||
newcoord1=eachnode.coordinates[0]
|
||||
newcoord2=(Radius-eachnode.coordinates[2])*cos(theta)
|
||||
newcoord3=(Radius-eachnode.coordinates[2])*sin(theta)
|
||||
aPart.editNode(nodes=eachnode,coordinate1=newcoord1,coordinate2=newcoord2,
|
||||
coordinate3=newcoord3)
|
Loading…
Add table
Add a link
Reference in a new issue