4import matplotlib.pyplot
as plt
5plt.rcParams[
'text.usetex'] =
True
6sys.path.insert(0,
'../../python')
7from modlibUtils
import *
10periodicImageMatrix=np.array([[0,0,0],[1,1,1],[2,2,2],[4,4,4]])
18 microstrucureFile=
getStringInFile(
'inputFiles/initialMicrostructure.txt',
'microstructureFile')
19 microstrucureFileName=curDir+
'/inputFiles/'+microstrucureFile
20 ddFileName=curDir+
'/inputFiles/DD.txt'
22 for k
in range(0,np.size(periodicImageMatrix,0)):
23 periodicImageSize=periodicImageMatrix[k]
27 EwaldLengthFactors=np.linspace(0.0, 1.0, num=EwaldLengthDivisions)
28 print(
"periodicImageSize="+str(periodicImageSize))
29 print(
"EwaldLengthFactors="+str(EwaldLengthFactors))
32 for c
in range(0,np.size(EwaldLengthFactors)):
34 EwaldLengthFactor=EwaldLengthFactors[c];
36 setInputVector(ddFileName,
'periodicImageSize',periodicImageSize,
'number of periodic images along each period vector')
38 if microstrucureFile==
'periodicDipoleIndividual.txt':
41 X=np.linspace(0, 110, num=20)
51 for k
in range(0,len(X)):
53 os.system(
'rm -r F/*.*')
54 os.system(
'rm -r config/*.*')
56 os.system(
'../../build/tools/MicrostructureGenerator/microstructureGenerator '+ curDir)
57 os.system(
'../../build/tools/DDomp/DDomp '+ curDir)
59 E[k]=
getFarray(F,Flabels,
'dislocation elastic energy [mu b^3]')
61 S11[k]=np.mean(aux.gaussPoints[:,10])
62 S12[k]=np.mean(aux.gaussPoints[:,11])
63 S13[k]=np.mean(aux.gaussPoints[:,12])
64 S22[k]=np.mean(aux.gaussPoints[:,14])
65 S23[k]=np.mean(aux.gaussPoints[:,15])
66 S33[k]=np.mean(aux.gaussPoints[:,18])
68 print(
'unsupported option')
70 data=np.empty([np.size(X),8])
86 outFileName=
'data'+
'_'+str(periodicImageSize[0])+
'_'+str(periodicImageSize[1])+
'_'+str(periodicImageSize[2])+
'_'+str(EwaldLengthFactor)+
'.txt'
87 np.savetxt(outFileName, data)
91for k
in range(0,np.size(periodicImageMatrix,0)):
92 periodicImageSize=periodicImageMatrix[k]
96 EwaldLengthFactors=np.linspace(0.0, 1.0, num=EwaldLengthDivisions)
99 for c
in range(0,np.size(EwaldLengthFactors)):
100 EwaldLengthFactor=EwaldLengthFactors[c];
101 key=str(periodicImageSize[0])+
'_'+str(periodicImageSize[1])+
'_'+str(periodicImageSize[2])+
'_'+str(EwaldLengthFactor)
103 FileName=
'data_'+key+
'.txt'
105 dataDict[key]=np.loadtxt(FileName);
109fields=[
'energy',
'sigma11',
'sigma22',
'sigma33',
'sigma23',
'sigma13',
'sigma12']
110fieldLabels=[
'elastic energy $[\mu b^3]$',
'$\sigma_{11}$ $[\mu]$',
'$\sigma_{22}$ $[\mu]$',
'$\sigma_{33}$ $[\mu]$',
'$\sigma_{23}$ $[\mu]$',
'$\sigma_{13}$ $[\mu]$',
'$\sigma_{12}$ $[\mu]$']
111for k
in range(0,len(fields)):
114 ax1=plt.subplot(1,1,1)
117 ax1.plot(data[:,0], data[:,k+1],label=key)
120 plt.xlabel(
'dipole distance $[b]$')
121 plt.ylabel(fieldLabels[k])
122 fig1.savefig(fields[k], bbox_inches=
'tight')
setInputVector(fileName, variable, newVal, newCom)
setInputVariable(fileName, variable, newVal)
getStringInFile(fileName, variable)
getFarray(F, Flabels, label)