4import matplotlib.pyplot
as plt
6sys.path.append(
"../build/tools/pyMoDELib")
9simulationDir=os.path.abspath(
"../tutorials/crossSlip")
10ddBase=pyMoDELib.DefectiveCrystalBase(simulationDir)
13microstructureGenerator=pyMoDELib.MicrostructureGenerator(ddBase)
15spec=pyMoDELib.ShearLoopDensitySpecification()
16spec.targetDensity=5.0e12
17spec.radiusDistributionMean=1.0e-07
18spec.radiusDistributionStd=0.0e-8
20spec.allowedGrainIDs=np.array([-1]);
21allowedSlipSystemIDs=np.array([-1]);
24spec=pyMoDELib.ShearLoopIndividualSpecification()
25spec.slipSystemIDs=[0,-1]
26spec.loopRadii=[27.0e-8,27.0e-8]
27spec.loopCenters=np.array([[200.0,0.0,0.0],[0.0,0.0,0.0]])
31spec=pyMoDELib.PeriodicDipoleDensitySpecification()
32spec.targetDensity=5.0e13
35spec=pyMoDELib.PeriodicDipoleIndividualSpecification()
36spec.slipSystemIDs=[0,-1]
38spec.dipoleCenters=np.array([[200.0,0.0,0.0],[0.0,0.0,0.0]])
39spec.dipoleHeights=[100.,100.]
40spec.nodesPerLine=[4,4]
41spec.glideSteps=[10.,10.]
44spec=pyMoDELib.PrismaticLoopDensitySpecification()
45spec.targetDensity=5.0e13
46spec.radiusDistributionMean=3e-08
47spec.radiusDistributionStd=0e-08
48spec.allowedGrainIDs=np.array([-1]);
49allowedSlipSystemIDs=np.array([-1]);
50microstructureGenerator.addPrismaticLoopDensity(spec)
52spec=pyMoDELib.PrismaticLoopIndividualSpecification()
53spec.slipSystemIDs=[0,7,13]
54spec.loopRadii=[5e-8,2e-7,2e-8]
55spec.loopCenters=np.array([[0,0,0],[500,600,500],[500,500,500]])
56spec.glideSteps=[10.,10.,300.]
59spec=pyMoDELib.FrankLoopsDensitySpecification()
60spec.targetDensity=5.0e12
61spec.radiusDistributionMean=1.0e-07
62spec.radiusDistributionStd=0.0e-8
65microstructureGenerator.addFrankLoopsDensity(spec)
67spec=pyMoDELib.FrankLoopsIndividualSpecification()
69spec.loopRadii=[27.0e-8,27.0e-8]
70spec.loopCenters=np.array([[200.0,0.0,0.0],[0.0,0.0,0.0]])
72spec.isVacancyLoop=[1,0]
75spec=pyMoDELib.StackingFaultTetrahedraDensitySpecification()
76spec.targetDensity=1.0e21
77spec.sizeDistributionMean=2.5e-08
78spec.sizeDistributionStd=1.0e-9
81spec=pyMoDELib.StackingFaultTetrahedraIndividualSpecification()
84spec.sizes=[2.5e-08,2.5e-08]
85spec.basePoints=np.array([[0.0,0.0,0.0],[100.0,0.0,0.0]])
88spec=pyMoDELib.SphericalInclusionDensitySpecification()
89spec.targetDensity=1e20;
90spec.diameterLognormalDistribution_M=3.11e-8;
91spec.diameterLognormalDistribution_S=0.38;
92spec.diameterLognormalDistribution_A=1.05e-8;
93spec.crystalEigenDistortion=[0.003,0.0,0.0,0.0,0.003,0.0,0.0,0.0,0.003]
94spec.patternVector_SI=[0.0,0.0,0.0e-7];
97spec.velocityReductionFactor=1.0;
101spec=pyMoDELib.SphericalInclusionIndividualSpecification()
102spec.radii_SI=[27.0e-9,27.0e-9]
103spec.centers=np.array([[200.0,0.0,0.0],[-200.0,0.0,0.0]])
104spec.crystalEigenDistortions=np.array([[1.0e-3,0.0,0.0,0.0,1.0e-3,0.0,0.0,0.0,1.0e-3],[2.0e-3,0.0,0.0,0.0,2.0e-3,0.0,0.0,0.0,2.0e-3]])
105spec.velocityReductionFactors=[1.0,1.0]
111spec=pyMoDELib.PolyhedronInclusionIndividualSpecification()
112spec.mshFile=
"../Library/Meshes/unitCube8_2D.msh"
113spec.X0=np.array([[300.0,100.0,0.0],[-200.0,0.0,0.0]])
114spec.F=np.array([[200.0,0.0,0.0],[0.0,200.0,0.0],[0.0,0.0,200.0]])
115spec.crystalEigenDistortion=np.array([[1.0e-3,0.0,0.0,0.0,1.0e-3,0.0,0.0,0.0,1.0e-3]])
116spec.velocityReductionFactor=1.0
118microstructureGenerator.addPolyhedronInclusionIndividual(spec)
120microstructureGenerator.writeConfigFiles(1)
123defectiveCrystal=pyMoDELib.DefectiveCrystal(ddBase)
124defectiveCrystal.initializeConfiguration(microstructureGenerator.configIO)
126points=np.array([[0.0,0.0,0.0],[1.0,0.0,0.0],[2.0,0.0,0.0]])
128disp=defectiveCrystal.displacement(points)
132DN=defectiveCrystal.dislocationNetwork()
133print(len(DN.loops()))
134print(len(DN.loopNodes()))
137for loopID
in DN.loops():
138 loop=DN.loops().getRef(loopID)