| diffDensity1 = nlread(fName, ElectronDifferenceDensity, object_id="diffDensity[vg-0.25000][vds0.50000]")[0] |
| diffDensity2 = nlread(fName, ElectronDifferenceDensity, object_id="diffDensity[vg-0.20000][vds0.50000]")[0] |
| diffDensity3 = nlread(fName, ElectronDifferenceDensity, object_id="diffDensity[vg0.00000][vds0.50000]")[0] |
| |
| s1 = diffDensity1[:, :, :].sum() |
| s2 = diffDensity2[:, :, :].sum() |
| s3 = diffDensity3[:, :, :].sum() |
| print s1, s2, s3, s2-s1, s3-s2 |
| |
| |
| dX1, dY1, dZ1 = diffDensity1.volumeElement() |
| dX2, dY2, dZ2 = diffDensity2.volumeElement() |
| dX3, dY3, dZ3 = diffDensity3.volumeElement() |
| print "unit lengths", dX1,dY1,dZ1 |
| print "unit lengths", dX2,dY2,dZ2 |
| length_unit1 = dX1.unit() |
| length_unit2 = dX2.unit() |
| length_unit3 = dX3.unit() |
| |
| dV1 = numpy.dot(dX1, numpy.cross(dY1,dZ1)) * length_unit1**3 |
| dV2 = numpy.dot(dX2, numpy.cross(dY2,dZ2)) * length_unit2**3 |
| dV3 = numpy.dot(dX3, numpy.cross(dY3,dZ3)) * length_unit3**3 |
| print "volumes", dV1, dV2, dV3 |
| numE1 = s1*dV1 |
| numE2 = s2*dV2 |
| numE3 = s3*dV3 |
| print "Total # electrons: ", numE1, numE2, numE3 |
| |
| |
| numElecDiff1 = (numE2-numE1) |
| numElecDiff2 = (numE3-numE2) |
| print "numElecDiff", numElecDiff1, numElecDiff2 |
| |
| |
| chargeDiff1 = numElecDiff1*1.6e-19 |
| chargeDiff2 = numElecDiff2*1.6e-19 |
| voltDiff1 = 0.05 |
| voltDiff2 = 0.25 |
| capacitance1 = chargeDiff1/voltDiff1 |
| capacitance2 = chargeDiff2/voltDiff2 |
| print "capacitance", (capacitance1), (capacitance2) |
| |
| print "capacitance in fF", (capacitance1)*1e15, (capacitance2)*1e15 |