NT11 ok
parent
c27d2feeea
commit
f1f1674656
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,337 +1,342 @@
|
||||
# Vector-U,A,V,RF
|
||||
# Vector-U,A,V,RF
|
||||
# Tensors-S
|
||||
# Scalars-PEEQ
|
||||
def U(displacement,outfile,reop_N):
|
||||
#Access Spatial displacement
|
||||
fieldValues = displacement.values
|
||||
for valueX in fieldValues :
|
||||
i = valueX.nodeLabel
|
||||
ux = valueX.data[0]
|
||||
uy = valueX.data[1]
|
||||
uz = valueX.data[2]
|
||||
|
||||
#Spatial displacement, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_displacement"+'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X,Y,Z = ux,uy,uz
|
||||
outfile.write('%11.8e'%X+' '+'%11.8e'%Y+' '+'%11.8e'%Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
#</DataArray>
|
||||
def A(acceleration,outfile,reop_N):
|
||||
#Access Spatial acceleration
|
||||
fieldValues = acceleration.values
|
||||
for valueX in fieldValues :
|
||||
i = valueX.nodeLabel
|
||||
ax = valueX.data[0]
|
||||
ay = valueX.data[1]
|
||||
az = valueX.data[2]
|
||||
#Spatial acceleration, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_acceleration"+'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X,Y,Z = ax,ay,az
|
||||
outfile.write('%11.8e'%X+' '+'%11.8e'%Y+' '+'%11.8e'%Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
#</DataArray>
|
||||
|
||||
def V(velocity,outfile,reop_N):
|
||||
#Access Spatial velocity
|
||||
fieldValues = velocity.values
|
||||
for valueX in fieldValues :
|
||||
i = valueX.nodeLabel
|
||||
vx = valueX.data[0]
|
||||
vy = valueX.data[1]
|
||||
vz = valueX.data[2]
|
||||
#Spatial velocity, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_velocity"+'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X,Y,Z = vx,vy,vz
|
||||
outfile.write('%11.8e'%X+' '+'%11.8e'%Y+' '+'%11.8e'%Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
#</DataArray>
|
||||
|
||||
def RF(Reaction_force,outfile,reop_N):
|
||||
#Access Reaction force
|
||||
fieldValues = Reaction_force.values
|
||||
for valueX in fieldValues :
|
||||
i = valueX.nodeLabel
|
||||
rfx = valueX.data[0]
|
||||
rfy = valueX.data[1]
|
||||
rfz = valueX.data[2]
|
||||
#Reaction force
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Reaction_force"+'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X,Y,Z = rfx,rfy,rfz
|
||||
outfile.write('%11.8e'%X+' '+'%11.8e'%Y+' '+'%11.8e'%Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
#</DataArray>
|
||||
|
||||
def PEEQ(Equivalent_plastic_strain,outfile,reop_N):
|
||||
#Equivalent plastic strain
|
||||
node_Equivalent_plastic_strain = Equivalent_plastic_strain.getSubs(position=ELEMENT_NODAL)
|
||||
fieldValues = node_Equivalent_plastic_strain.values
|
||||
for valueX in fieldValues :
|
||||
PEEQ_data= valueX.data
|
||||
#Equivalent plastic strain, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Equivalent_plastic_strain"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
pd = PEEQ_data
|
||||
outfile.write('%11.8e'%pd+'\n')
|
||||
outfile.write('</DataArray>'+'\n')
|
||||
#</DataArray>
|
||||
|
||||
|
||||
def Stress(Stress,outfile,reop_N):
|
||||
#access Stress components
|
||||
node_Stress = Stress.getSubset(position=ELEMENT_NODAL)
|
||||
fieldValues = node_Stress.values
|
||||
for valueX in fieldValues :
|
||||
s11 = valueX.data[0]
|
||||
s22 = valueX.data[1]
|
||||
s33 = valueX.data[2]
|
||||
s12 = valueX.data[3]
|
||||
s23 = valueX.data[4]
|
||||
s13 = valueX.data[5]
|
||||
|
||||
# L1[valueX.nodeLabel-1][7] += valueX.mises
|
||||
# L1[valueX.nodeLabel-1][8] += valueX.maxPrincipal
|
||||
# L1[valueX.nodeLabel-1][9] += valueX.midPrincipal
|
||||
# L1[valueX.nodeLabel-1][10] += valueX.minPrincipal
|
||||
# L1[valueX.nodeLabel-1][11] += valueX.press
|
||||
# L1[valueX.nodeLabel-1][12] += valueX.tresca
|
||||
# L1[valueX.nodeLabel-1][13] += valueX.inv3
|
||||
#Stress components, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Components"+'"'+" "+"NumberOfComponents="+'"'+"9"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
XX,XY,XZ,YX,YY,YZ,ZX,ZY,ZZ = s11,s12,s13,s12,s22,s23,s13,s23,s33
|
||||
outfile.write('%11.8e'%XX+' '+'%11.8e'%XY+' '+'%11.8e'%XZ+' '+'%11.8e'%YX+' '+'%11.8e'%YY+' '+'%11.8e'%YZ+' '+'%11.8e'%ZX+' '+'%11.8e'%ZY+' '+'%11.8e'%ZZ+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
#</DataArray>
|
||||
|
||||
def NT11(Temperature,outfile,reop_N):
|
||||
#Equivalent plastic strain
|
||||
fieldValues = Temperature.values
|
||||
for valueX in fieldValues :
|
||||
NT11_data= valueX.data
|
||||
#Equivalent plastic strain, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Temperature"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
temp = NT11_data
|
||||
outfile.write('%11.8e'%temp+'\n')
|
||||
outfile.write('</DataArray>'+'\n')
|
||||
#</DataArray>
|
||||
|
||||
|
||||
|
||||
# print "Reading U, A, V, RF ......"
|
||||
# time1 = time()
|
||||
# #Access Spatial displacement
|
||||
# displacement = N_Frame.fieldOutputs['U']
|
||||
# fieldValues = displacement.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][0] = valueX.data[0] ux
|
||||
# L0[i-1][1] = valueX.data[1] uy
|
||||
# L0[i-1][2] = valueX.data[2] uz
|
||||
|
||||
# #Access Spatial acceleration
|
||||
# acceleration = N_Frame.fieldOutputs['A']
|
||||
# fieldValues = acceleration.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][3] = valueX.data[0] ax
|
||||
# L0[i-1][4] = valueX.data[1] ay
|
||||
# L0[i-1][5] = valueX.data[2] az
|
||||
# #Access Spatial velocity
|
||||
# velocity = N_Frame.fieldOutputs['V']
|
||||
# fieldValues = velocity.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][6] = valueX.data[0] vx
|
||||
# L0[i-1][7] = valueX.data[1] vy
|
||||
# L0[i-1][8] = valueX.data[2] vz
|
||||
# #Access Reaction force
|
||||
# Reaction_force = N_Frame.fieldOutputs['RF']
|
||||
# fieldValues = Reaction_force.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][9] = valueX.data[0] rfx
|
||||
# L0[i-1][10] = valueX.data[1] rfy
|
||||
# L0[i-1][11] = valueX.data[2] rfz
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
# print "Reading Stress ......"
|
||||
# time1 = time()
|
||||
# #access Stress components
|
||||
# Stress = N_Frame.fieldOutputs['S']
|
||||
# node_Stress = Stress.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Stress.values
|
||||
# for valueX in fieldValues :
|
||||
# L1[valueX.nodeLabel-1][0] += 1
|
||||
# L1[valueX.nodeLabel-1][1] += valueX.data[0] s11
|
||||
# L1[valueX.nodeLabel-1][2] += valueX.data[1] s22
|
||||
# L1[valueX.nodeLabel-1][3] += valueX.data[2] s33
|
||||
# L1[valueX.nodeLabel-1][4] += valueX.data[3] s12
|
||||
# L1[valueX.nodeLabel-1][5] += valueX.data[4] s23
|
||||
# L1[valueX.nodeLabel-1][6] += valueX.data[5] s13
|
||||
|
||||
# L1[valueX.nodeLabel-1][7] += valueX.mises
|
||||
# L1[valueX.nodeLabel-1][8] += valueX.maxPrincipal
|
||||
# L1[valueX.nodeLabel-1][9] += valueX.midPrincipal
|
||||
# L1[valueX.nodeLabel-1][10] += valueX.minPrincipal
|
||||
# L1[valueX.nodeLabel-1][11] += valueX.press
|
||||
# L1[valueX.nodeLabel-1][12] += valueX.tresca
|
||||
# L1[valueX.nodeLabel-1][13] += valueX.inv3
|
||||
# # can first ave
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
# print "Reading Equivalent plastic strain ......"
|
||||
# time1 = time()
|
||||
# #Equivalent plastic strain
|
||||
# Equivalent_plastic_strain = N_Frame.fieldOutputs['PEEQ']
|
||||
# node_Equivalent_plastic_strain = Equivalent_plastic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Equivalent_plastic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L4[valueX.nodeLabel-1][0] += 1
|
||||
# L4[valueX.nodeLabel-1][1] += valueX.data
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
def U(displacement, outfile, reop_N):
|
||||
# Access Spatial displacement
|
||||
fieldValues = displacement.values
|
||||
for valueX in fieldValues:
|
||||
ux = valueX.data[0]
|
||||
uy = valueX.data[1]
|
||||
uz = valueX.data[2]
|
||||
|
||||
# Spatial displacement, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_displacement" +
|
||||
'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X, Y, Z = ux, uy, uz
|
||||
outfile.write('%11.8e' % X+' '+'%11.8e' % Y+' '+'%11.8e' % Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def A(acceleration, outfile, reop_N):
|
||||
# Access Spatial acceleration
|
||||
fieldValues = acceleration.values
|
||||
for valueX in fieldValues:
|
||||
ax = valueX.data[0]
|
||||
ay = valueX.data[1]
|
||||
az = valueX.data[2]
|
||||
# Spatial acceleration, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_acceleration" +
|
||||
'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X, Y, Z = ax, ay, az
|
||||
outfile.write('%11.8e' % X+' '+'%11.8e' % Y+' '+'%11.8e' % Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def V(velocity, outfile, reop_N):
|
||||
# Access Spatial velocity
|
||||
fieldValues = velocity.values
|
||||
for valueX in fieldValues:
|
||||
vx = valueX.data[0]
|
||||
vy = valueX.data[1]
|
||||
vz = valueX.data[2]
|
||||
# Spatial velocity, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Spatial_velocity" +
|
||||
'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X, Y, Z = vx, vy, vz
|
||||
outfile.write('%11.8e' % X+' '+'%11.8e' % Y+' '+'%11.8e' % Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def RF(Reaction_force, outfile, reop_N):
|
||||
# Access Reaction force
|
||||
fieldValues = Reaction_force.values
|
||||
for valueX in fieldValues:
|
||||
rfx = valueX.data[0]
|
||||
rfy = valueX.data[1]
|
||||
rfz = valueX.data[2]
|
||||
# Reaction force
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Reaction_force" +
|
||||
'"'+" "+"NumberOfComponents="+'"'+"3"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
X, Y, Z = rfx, rfy, rfz
|
||||
outfile.write('%11.8e' % X+' '+'%11.8e' % Y+' '+'%11.8e' % Z+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def PEEQ(Equivalent_plastic_strain, outfile, reop_N):
|
||||
# Equivalent plastic strain
|
||||
node_Equivalent_plastic_strain = Equivalent_plastic_strain.getSubs(
|
||||
position=ELEMENT_NODAL)
|
||||
fieldValues = node_Equivalent_plastic_strain.values
|
||||
for valueX in fieldValues:
|
||||
PEEQ_data = valueX.data
|
||||
# Equivalent plastic strain, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name=" +
|
||||
'"'+"Equivalent_plastic_strain"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
pd = PEEQ_data
|
||||
outfile.write('%11.8e' % pd+'\n')
|
||||
outfile.write('</DataArray>'+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def Stress(Stress, outfile, reop_N):
|
||||
# access Stress components
|
||||
node_Stress = Stress.getSubset(position=ELEMENT_NODAL)
|
||||
fieldValues = node_Stress.values
|
||||
for valueX in fieldValues:
|
||||
s11 = valueX.data[0]
|
||||
s22 = valueX.data[1]
|
||||
s33 = valueX.data[2]
|
||||
s12 = valueX.data[3]
|
||||
s23 = valueX.data[4]
|
||||
s13 = valueX.data[5]
|
||||
|
||||
# L1[valueX.nodeLabel-1][7] += valueX.mises
|
||||
# L1[valueX.nodeLabel-1][8] += valueX.maxPrincipal
|
||||
# L1[valueX.nodeLabel-1][9] += valueX.midPrincipal
|
||||
# L1[valueX.nodeLabel-1][10] += valueX.minPrincipal
|
||||
# L1[valueX.nodeLabel-1][11] += valueX.press
|
||||
# L1[valueX.nodeLabel-1][12] += valueX.tresca
|
||||
# L1[valueX.nodeLabel-1][13] += valueX.inv3
|
||||
# Stress components, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Components" +
|
||||
'"'+" "+"NumberOfComponents="+'"'+"9"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
XX, XY, XZ, YX, YY, YZ, ZX, ZY, ZZ = s11, s12, s13, s12, s22, s23, s13, s23, s33
|
||||
outfile.write('%11.8e' % XX+' '+'%11.8e' % XY+' '+'%11.8e' % XZ+' '+'%11.8e' % YX+' '+'%11.8e' %
|
||||
YY+' '+'%11.8e' % YZ+' '+'%11.8e' % ZX+' '+'%11.8e' % ZY+' '+'%11.8e' % ZZ+'\n')
|
||||
outfile.write("</DataArray>"+'\n')
|
||||
# </DataArray>
|
||||
|
||||
|
||||
def NT11(Temperature, outfile, reop_N):
|
||||
# Equivalent plastic strain
|
||||
fieldValues = Temperature.values
|
||||
for valueX in fieldValues:
|
||||
NT11_data = valueX.data
|
||||
# Equivalent plastic strain, <DataArray>
|
||||
outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" " +
|
||||
"Name="+'"'+"Temperature"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
for i in reop_N:
|
||||
temp = NT11_data
|
||||
outfile.write('%11.8e' % temp+'\n')
|
||||
outfile.write('</DataArray>'+'\n')
|
||||
# </DataArray>
|
||||
|
||||
# print "Reading U, A, V, RF ......"
|
||||
# time1 = time()
|
||||
# #Access Spatial displacement
|
||||
# displacement = N_Frame.fieldOutputs['U']
|
||||
# fieldValues = displacement.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][0] = valueX.data[0] ux
|
||||
# L0[i-1][1] = valueX.data[1] uy
|
||||
# L0[i-1][2] = valueX.data[2] uz
|
||||
|
||||
# #Access Spatial acceleration
|
||||
# acceleration = N_Frame.fieldOutputs['A']
|
||||
# fieldValues = acceleration.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][3] = valueX.data[0] ax
|
||||
# L0[i-1][4] = valueX.data[1] ay
|
||||
# L0[i-1][5] = valueX.data[2] az
|
||||
# #Access Spatial velocity
|
||||
# velocity = N_Frame.fieldOutputs['V']
|
||||
# fieldValues = velocity.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][6] = valueX.data[0] vx
|
||||
# L0[i-1][7] = valueX.data[1] vy
|
||||
# L0[i-1][8] = valueX.data[2] vz
|
||||
# #Access Reaction force
|
||||
# Reaction_force = N_Frame.fieldOutputs['RF']
|
||||
# fieldValues = Reaction_force.values
|
||||
# for valueX in fieldValues :
|
||||
# i = valueX.nodeLabel
|
||||
# L0[i-1][9] = valueX.data[0] rfx
|
||||
# L0[i-1][10] = valueX.data[1] rfy
|
||||
# L0[i-1][11] = valueX.data[2] rfz
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
# print "Reading Stress ......"
|
||||
# time1 = time()
|
||||
# #access Stress components
|
||||
# Stress = N_Frame.fieldOutputs['S']
|
||||
# node_Stress = Stress.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Stress.values
|
||||
# for valueX in fieldValues :
|
||||
# L1[valueX.nodeLabel-1][0] += 1
|
||||
# L1[valueX.nodeLabel-1][1] += valueX.data[0] s11
|
||||
# L1[valueX.nodeLabel-1][2] += valueX.data[1] s22
|
||||
# L1[valueX.nodeLabel-1][3] += valueX.data[2] s33
|
||||
# L1[valueX.nodeLabel-1][4] += valueX.data[3] s12
|
||||
# L1[valueX.nodeLabel-1][5] += valueX.data[4] s23
|
||||
# L1[valueX.nodeLabel-1][6] += valueX.data[5] s13
|
||||
|
||||
# L1[valueX.nodeLabel-1][7] += valueX.mises
|
||||
# L1[valueX.nodeLabel-1][8] += valueX.maxPrincipal
|
||||
# L1[valueX.nodeLabel-1][9] += valueX.midPrincipal
|
||||
# L1[valueX.nodeLabel-1][10] += valueX.minPrincipal
|
||||
# L1[valueX.nodeLabel-1][11] += valueX.press
|
||||
# L1[valueX.nodeLabel-1][12] += valueX.tresca
|
||||
# L1[valueX.nodeLabel-1][13] += valueX.inv3
|
||||
# # can first ave
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
# print "Reading Equivalent plastic strain ......"
|
||||
# time1 = time()
|
||||
# #Equivalent plastic strain
|
||||
# Equivalent_plastic_strain = N_Frame.fieldOutputs['PEEQ']
|
||||
# node_Equivalent_plastic_strain = Equivalent_plastic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Equivalent_plastic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L4[valueX.nodeLabel-1][0] += 1
|
||||
# L4[valueX.nodeLabel-1][1] += valueX.data
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
|
||||
# print "Reading Logarithmic strain ......"
|
||||
# time1 = time()
|
||||
# #Logarithmic strain components
|
||||
# Logarithmic_strain = N_Frame.fieldOutputs['LE']
|
||||
# node_Logarithmic_strain = Logarithmic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Logarithmic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L2[valueX.nodeLabel-1][0] += 1
|
||||
# L2[valueX.nodeLabel-1][1] += valueX.data[0]
|
||||
# L2[valueX.nodeLabel-1][2] += valueX.data[1]
|
||||
# L2[valueX.nodeLabel-1][3] += valueX.data[2]
|
||||
# L2[valueX.nodeLabel-1][4] += valueX.data[3]
|
||||
# L2[valueX.nodeLabel-1][5] += valueX.data[4]
|
||||
# L2[valueX.nodeLabel-1][6] += valueX.data[5]
|
||||
|
||||
# L2[valueX.nodeLabel-1][7] += valueX.maxPrincipal
|
||||
# L2[valueX.nodeLabel-1][8] += valueX.minPrincipal
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
# print "Reading Plastic strain ......"
|
||||
# time1 = time()
|
||||
# #Plastic strain components
|
||||
# Plastic_strain = N_Frame.fieldOutputs['PE']
|
||||
# node_Plastic_strain = Plastic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Plastic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L3[valueX.nodeLabel-1][0] += 1
|
||||
# L3[valueX.nodeLabel-1][1] += valueX.data[0]
|
||||
# L3[valueX.nodeLabel-1][2] += valueX.data[1]
|
||||
# L3[valueX.nodeLabel-1][3] += valueX.data[2]
|
||||
# L3[valueX.nodeLabel-1][4] += valueX.data[3]
|
||||
# L3[valueX.nodeLabel-1][5] += valueX.data[4]
|
||||
# L3[valueX.nodeLabel-1][6] += valueX.data[5]
|
||||
|
||||
# L3[valueX.nodeLabel-1][7] += valueX.maxPrincipal
|
||||
# L3[valueX.nodeLabel-1][8] += valueX.minPrincipal
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
|
||||
#Logarithmic_strain_Max_Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Logarithmic_strain_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L2[k][7]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Logarithmic strain Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Logarithmic_strain_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L2[k][8]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>'''
|
||||
|
||||
|
||||
#Plastic strain Max.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Plastic_strain_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L3[k][7]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Plastic strain Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Plastic_strain_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L3[k][8]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
|
||||
# #Stress Mises, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Mises"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = smises
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Max.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = maxPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Mid.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Mid_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = midPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = minPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Pressure, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Pressure"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = press
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Tresca, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Tresca"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = tresca
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Third_Invariant, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Third_Invariant"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = inv3
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
# time1 = time()
|
||||
# #Logarithmic strain components
|
||||
# Logarithmic_strain = N_Frame.fieldOutputs['LE']
|
||||
# node_Logarithmic_strain = Logarithmic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Logarithmic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L2[valueX.nodeLabel-1][0] += 1
|
||||
# L2[valueX.nodeLabel-1][1] += valueX.data[0]
|
||||
# L2[valueX.nodeLabel-1][2] += valueX.data[1]
|
||||
# L2[valueX.nodeLabel-1][3] += valueX.data[2]
|
||||
# L2[valueX.nodeLabel-1][4] += valueX.data[3]
|
||||
# L2[valueX.nodeLabel-1][5] += valueX.data[4]
|
||||
# L2[valueX.nodeLabel-1][6] += valueX.data[5]
|
||||
|
||||
# L2[valueX.nodeLabel-1][7] += valueX.maxPrincipal
|
||||
# L2[valueX.nodeLabel-1][8] += valueX.minPrincipal
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
# print "Reading Plastic strain ......"
|
||||
# time1 = time()
|
||||
# #Plastic strain components
|
||||
# Plastic_strain = N_Frame.fieldOutputs['PE']
|
||||
# node_Plastic_strain = Plastic_strain.getSubset(position=ELEMENT_NODAL)
|
||||
# fieldValues = node_Plastic_strain.values
|
||||
# for valueX in fieldValues :
|
||||
# L3[valueX.nodeLabel-1][0] += 1
|
||||
# L3[valueX.nodeLabel-1][1] += valueX.data[0]
|
||||
# L3[valueX.nodeLabel-1][2] += valueX.data[1]
|
||||
# L3[valueX.nodeLabel-1][3] += valueX.data[2]
|
||||
# L3[valueX.nodeLabel-1][4] += valueX.data[3]
|
||||
# L3[valueX.nodeLabel-1][5] += valueX.data[4]
|
||||
# L3[valueX.nodeLabel-1][6] += valueX.data[5]
|
||||
|
||||
# L3[valueX.nodeLabel-1][7] += valueX.maxPrincipal
|
||||
# L3[valueX.nodeLabel-1][8] += valueX.minPrincipal
|
||||
# print "Time elapsed: ", time() - time1, "s"
|
||||
|
||||
# Logarithmic_strain_Max_Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Logarithmic_strain_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L2[k][7]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Logarithmic strain Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Logarithmic_strain_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L2[k][8]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>'''
|
||||
|
||||
# Plastic strain Max.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Plastic_strain_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L3[k][7]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Plastic strain Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Plastic_strain_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = L3[k][8]
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Mises, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Mises"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = smises
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Max.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Max_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = maxPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Mid.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Mid_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = midPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Min.Principal, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Min_Principal"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = minPrincipal
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Pressure, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Pressure"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = press
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Tresca, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Tresca"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = tresca
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
||||
# #Stress Third_Invariant, <DataArray>
|
||||
# outfile.write("<"+"DataArray"+" "+"type="+'"'+"Float32"+'"'+" "+"Name="+'"'+"Stress_Third_Invariant"+'"'+" "+"format="+'"'+"ascii"+'"'+">"+'\n')
|
||||
# for i in reop_N:
|
||||
# k = node[stg_n[i]].label-1
|
||||
# X = inv3
|
||||
# outfile.write('%11.8e'%X+'\n')
|
||||
# outfile.write('</DataArray>'+'\n')
|
||||
# #</DataArray>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,27 +0,0 @@
|
||||
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,JLTYP, TEMP, PRESS, SNAME)
|
||||
INCLUDE 'ABA_PARAM.INC'
|
||||
|
||||
DIMENSION COORDS(3),FLUX(2),TIME(2)
|
||||
CHARACTER*80 SNAME
|
||||
real U,AI,v,yita,R0,qm
|
||||
|
||||
U=16.5
|
||||
AI=60.
|
||||
v=250./60.
|
||||
yita=0.75
|
||||
R0=5.
|
||||
|
||||
qm=yita*U*AI*1000./3.14/R0/R0
|
||||
dx=v*TIME(1)
|
||||
dy=0.
|
||||
|
||||
rr= (COORDS(1)-dx)**2 + (COORDS(2)-dy)**2
|
||||
FLUX(1)=3.*qm*exp(-3.*rr/R0/R0)
|
||||
|
||||
! write(*,*) time,dx
|
||||
! write(*,*) COORDS,rr
|
||||
! write(*,*) FLUX
|
||||
! write(*,*)
|
||||
|
||||
RETURN
|
||||
END
|
@ -1,145 +0,0 @@
|
||||
from odbAccess import openOdb
|
||||
from abaqus import *
|
||||
from abaqusConstants import *
|
||||
from utils_odb2vtk import Physical_Quantity
|
||||
|
||||
|
||||
class CAE_Model(Physical_Quantity, object):
|
||||
def __init__(self):
|
||||
super(CAE_Model, self).__init__()
|
||||
# print('self.var_type', self.var_type)
|
||||
self.nodes = {}
|
||||
self.elements = {}
|
||||
self.physical_quantity = {}
|
||||
|
||||
def read_inp(self, INPPATH):
|
||||
# 0 - nothing
|
||||
# 1 - node
|
||||
# 2 - hexahedron
|
||||
state = 0
|
||||
# read input file
|
||||
with open(INPPATH, 'r') as input_file:
|
||||
for line in input_file:
|
||||
if line.strip() == '*Node':
|
||||
state = 1
|
||||
elif line.startswith('*Element, type=C3D8R'):
|
||||
state = 2
|
||||
else:
|
||||
if line.startswith("*") and (not line.startswith("**")):
|
||||
state = 0
|
||||
elif state == 1:
|
||||
nid, x, y, z = line.strip().split(',')
|
||||
# insertNode(uid, x, y, z)
|
||||
self.nodes[int(nid)] = [float(x), float(y), float(z)]
|
||||
elif state == 2:
|
||||
eid, n0, n1, n2, n3, n4, n5, n6, n7 = line.strip().split(',')
|
||||
# insertHexa(el, n0, n1, n2, n3, n4, n5, n6, n7)
|
||||
self.elements[int(eid)] = [int(n0), int(n1), int(
|
||||
n2), int(n3), int(n4), int(n5), int(n6), int(n7)]
|
||||
else:
|
||||
pass
|
||||
|
||||
def read_odb(self, ODBPATH):
|
||||
# Open the odb
|
||||
myodb = openOdb(ODBPATH)
|
||||
|
||||
# Get the frame repository for the step, find number of frames (starts at frame 0)
|
||||
stepName = myodb.steps.keys()[0]
|
||||
frames = myodb.steps[stepName].frames
|
||||
numFrames = len(frames)
|
||||
print("num Frame %d" % (numFrames))
|
||||
|
||||
# Isolate the instance, get the number of nodes and elements
|
||||
instanceName = myodb.rootAssembly.instances.keys()[0]
|
||||
myInstance = myodb.rootAssembly.instances[instanceName]
|
||||
numNodes = len(myInstance.nodes)
|
||||
numElements = len(myInstance.elements)
|
||||
print("num Element %d, num Node %d" % (numElements, numNodes))
|
||||
|
||||
for var_id in ['U', 'A', 'V', 'RF', 'S', 'LE', 'PE', 'PEEQ', 'NT11', 'HFL', 'RFL11']:
|
||||
# try:
|
||||
if var_id == 'NT11':
|
||||
# S=myodb.steps[stepName].frames[-1].fieldOutputs['S'].getSubset(position=INTEGRATION_POINT)
|
||||
var_data = myodb.steps[stepName].frames[-1].fieldOutputs[var_id].values
|
||||
print(var_id+": %d" % (len(var_data)))
|
||||
|
||||
self.pq_update(var_id)
|
||||
self.physical_quantity[var_id] = self.insert(var_data)
|
||||
# except:
|
||||
# print('jump ', var_id)
|
||||
|
||||
def write_vtk(self, OUTPATH, var_ids):
|
||||
self.nids = sorted(self.nodes.keys())
|
||||
self.eids = sorted(self.elements.keys())
|
||||
with open(OUTPATH, 'w') as ofs:
|
||||
ofs.write('<?xml version="1.0"?>')
|
||||
ofs.write(
|
||||
'<VTKFile type="StructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32">')
|
||||
ofs.write(
|
||||
'<StructuredGrid> WholeExtent="x1 x2 x3 y1 y2 y3 z1 z2 z3">')
|
||||
ofs.write('<Piece Extent="x1 x2 x3 y1 y2 y3 z1 z2 z3">')
|
||||
|
||||
### define Points element ###
|
||||
ofs.write('<Points>')
|
||||
ofs.write(
|
||||
'<DataArray type="Float32" Name="Points" NumberOfComponents="3" format="ascii">')
|
||||
for key in self.nids:
|
||||
x, y, z = self.nodes[key]
|
||||
ofs.write("%f %f %f " % (x, y, z))
|
||||
ofs.write('</DataArray>')
|
||||
ofs.write('</Points>')
|
||||
|
||||
### define Cells element ###
|
||||
ofs.write('<Cells>')
|
||||
ofs.write(
|
||||
'<DataArray type="Int64" Name="connectivity" format="ascii">')
|
||||
for key in self.eids:
|
||||
ns = self.elements[key]
|
||||
nns = map(lambda x: str(x - 1), ns)
|
||||
cons = " ".join(nns)
|
||||
ofs.write(cons + ' ')
|
||||
ofs.write('</DataArray>')
|
||||
ofs.write('<DataArray type="Int64" Name="offsets" format="ascii">')
|
||||
for key in self.eids:
|
||||
ofs.write("%d " % (key * 8))
|
||||
ofs.write('</DataArray>')
|
||||
ofs.write('<DataArray type="UInt8" Name="types" format="ascii">')
|
||||
for key in self.eids:
|
||||
ofs.write("10 ")
|
||||
ofs.write('</DataArray>')
|
||||
ofs.write('</Cells>')
|
||||
|
||||
# node data/element data
|
||||
for var_id in var_ids:
|
||||
self.pq_update(var_id)
|
||||
|
||||
# var_name = var_stress.__name__
|
||||
var_name = var_id
|
||||
var_type = self.var_type
|
||||
NumberOfComponents = str(self.NumberOfComponents)
|
||||
|
||||
ofs.write('<'+var_type+'Data '+var_type+'="' + var_name + '">')
|
||||
ofs.write('<DataArray type="Float32" format="ascii" Name="' +
|
||||
var_name+'" NumberOfComponents="'+NumberOfComponents+'" >')
|
||||
self.write(self.physical_quantity[var_id], ofs)
|
||||
ofs.write('</DataArray>')
|
||||
ofs.write('</'+var_type+'Data>')
|
||||
|
||||
# finshed
|
||||
ofs.write('</Piece>')
|
||||
ofs.write('</StructuredGrid>')
|
||||
ofs.write('</VTKFile>')
|
||||
ofs.close()
|
||||
|
||||
|
||||
INPPATH = 'C:/Users/Harvo/Downloads/Digital-Twin/thermal/Thermal.inp'
|
||||
ODBPATH = 'C:/Users/Harvo/Downloads/Digital-Twin/thermal/Thermal.odb'
|
||||
OUTPATH = 'C:/Users/Harvo/Downloads/Digital-Twin/thermal/Thermal.vtk'
|
||||
|
||||
my_model = CAE_Model()
|
||||
my_model.read_inp(INPPATH)
|
||||
print('finish read_inp')
|
||||
my_model.read_odb(ODBPATH)
|
||||
print('finish read_odb')
|
||||
my_model.write_vtk(OUTPATH, var_ids=['NT11'])
|
||||
print('finish write_vtk')
|
Binary file not shown.
Binary file not shown.
@ -1,117 +0,0 @@
|
||||
class Physical_Quantity(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
# Scalars NT11,RFL11
|
||||
# Vectors displacement,HFL
|
||||
# Tensors Stress,spstress
|
||||
|
||||
def pq_update(self, var_id):
|
||||
if var_id == 'S':
|
||||
self.pq_class = Stress()
|
||||
if var_id == 'SPS':
|
||||
self.pq_class = Spstress()
|
||||
if var_id == 'DISP':
|
||||
self.pq_class = Displacement()
|
||||
if var_id == 'NT11':
|
||||
self.pq_class = Temperature()
|
||||
self.var_type = self.pq_class.var_type
|
||||
self.NumberOfComponents = self.pq_class.NumberOfComponents
|
||||
|
||||
def insert(self, var_data):
|
||||
return self.pq_class.insertData(var_data)
|
||||
|
||||
def write(self, *args):
|
||||
# print(args)
|
||||
self.pq_class.writeData(self.nids, self.eids, args)
|
||||
|
||||
|
||||
class Stress:
|
||||
def __init__(self):
|
||||
self.var_type = 'Tensors'
|
||||
self.NumberOfComponents = 9
|
||||
|
||||
def insertData(self, var_data):
|
||||
this_pq = {}
|
||||
for var_line in var_data:
|
||||
eid = var_line.elementLabel
|
||||
sxx = var_line.data[0]
|
||||
syy = var_line.data[1]
|
||||
szz = var_line.data[2]
|
||||
sxy = var_line.data[3]
|
||||
sxz = var_line.data[4]
|
||||
syz = var_line.data[5]
|
||||
this_pq[int(eid)] = [float(sxx), float(syy), float(
|
||||
szz), float(sxy), float(sxz), float(syz)]
|
||||
return this_pq
|
||||
|
||||
def writeData(self, stress, ofs):
|
||||
for key in self.eids:
|
||||
s11, s22, s33, s12, s13, s23 = stress[key][0:]
|
||||
ofs.write("%f %f %f %f %f %f %f %f %f " %
|
||||
(s11, s12, s13, s12, s22, s23, s13, s23, s33))
|
||||
|
||||
|
||||
class Spstress:
|
||||
def __init__(self):
|
||||
self.var_type = 'Vectors'
|
||||
self.NumberOfComponents = 3
|
||||
|
||||
def insertData(self, var_data):
|
||||
this_pq = {}
|
||||
for var_line in var_data:
|
||||
eid = var_line.elementLabel
|
||||
smin = var_line.maxPrincipal
|
||||
smin = var_line.midPrincipal
|
||||
smin = var_line.minPrincipal
|
||||
this_pq[int(eid)] = [float(smin), float(smin), float(smin)]
|
||||
return this_pq
|
||||
|
||||
def writeData(self, nids, eids, args):
|
||||
spstress, ofs = args
|
||||
for key in eids:
|
||||
sp1, sp2, sp3 = spstress[key][0:]
|
||||
ofs.write("%f %f %f " % (sp1, sp2, sp3))
|
||||
|
||||
|
||||
class Displacement:
|
||||
def __init__(self):
|
||||
self.var_type = 'Vectors'
|
||||
self.NumberOfComponents = 3
|
||||
|
||||
def insertData(self, var_data):
|
||||
this_pq = {}
|
||||
for var_line in var_data:
|
||||
nid = var_line.nodeLabel
|
||||
ux = var_line.data[0]
|
||||
uy = var_line.data[1]
|
||||
uz = var_line.data[2]
|
||||
this_pq[int(nid)] = [float(ux), float(uy), float(uz)]
|
||||
return this_pq
|
||||
|
||||
def writeData(self, nids, eids, args):
|
||||
displacement, ofs = args
|
||||
for key in nids:
|
||||
ux, uy, uz = displacement[key]
|
||||
ofs.write("%f %f %f " % (ux, uy, uz))
|
||||
|
||||
|
||||
class Temperature(object):
|
||||
def __init__(self):
|
||||
self.var_type = 'Scalars'
|
||||
self.NumberOfComponents = 1
|
||||
|
||||
def insertData(self, var_data):
|
||||
this_pq = {}
|
||||
for var_line in var_data:
|
||||
nid = var_line.nodeLabel
|
||||
temp = var_line.data
|
||||
this_pq[int(nid)] = [float(temp)]
|
||||
return this_pq
|
||||
|
||||
def writeData(self, nids, eids, args):
|
||||
temperature, ofs = args
|
||||
for key in nids:
|
||||
temp = temperature[key][0]
|
||||
# print(temp)
|
||||
ofs.write("%f " % (temp,))
|
||||
|
Loading…
Reference in New Issue