카테고리 없음
Lode Phase Difference 분석을 위한 해석 결과
이센
2025. 6. 10. 01:18
[ 분석 결과 ]
[ EMW ]
#setdep @node|tensor_mesh@
##define BARL 0.164
#define WIDTH 1.0
#define DEPTH 1.2
Globals {
GridFile = "n@node|tensor_mesh@_msh.tdr"
ParameterFile = "sdevice.par"
LogFile = "n@node@_eml.log"
TotalTimeSteps = 50000
NumberOfThreads = 4
InspectFile = "n@node@_eml.plt"
Oversampling = 1.2 ** if any convergence problems appear, or dispersive materials are present, use Oversampling between 1.1-2.0
}
ComplexRefractiveIndex {
WavelengthDep = {Real, Imag}
}
Boundary {
Type = PeriodicOblique
Sides = {X,Y}
}
Boundary {
Type = CPML
Sides = {Z}
Thickness= 90
}
PlaneWaveExcitation{
## Exciatation distance from device is 0.3 um (60 cells).
## Area of box does not affect the results. (Always full to domain size)
BoxCorner1 = (0, 0, 3.8) # um
BoxCorner2 = (WIDTH, WIDTH, 3.8) # um
## The wave with Theta=90 & Phi=180 is perpendicular to device, from X- to X+ direction.
## <Z+ means wave propagates to the Z=A -> Z=wB direction (A < B) with constant Y
## Theta -> 80 & Phi=180 has incident angle <Z+ = 10 degree
## Theta -> 100 & Phi=180 has incident angle <Z- = 10 degree
## Theta=90 & Phi -> 170 has incident angle <Y+ = 10 degree
## Theta=90 & Phi -> 190 has incident angle <Y- = 10 degree
Signal = harmonic
Theta = @theta@
Phi = @phi@
Psi = 45
Wavelength = @wavelength@ # nm
Intensity = 1e-5 # W/cm2
## & 1 lux = 0.0079 W/m2 & bright sunlight = 120000 lux = 948 W/m2
# Global solar spectrum sunlight => 109880 lux = 1000 W/m2
Nrise = 5 # number of signal periodeds until full power
Delay = 0
}
Plot {
Name = "n@node@_Eabs_DFISE"
GridFile = "n@node|full_mesh@_msh.tdr"
Quantity = {AbsElectricField, AbsMagneticField, RealElectricField, realelectricfieldX, realelectricfieldy, realelectricfieldz, ImagElectricField, ImagElectricFieldX, ImagElectricFieldY, ImagElectricFieldZ, Region}
FinalPlot = yes
TickStep= 5000
}
Extractor {
Quantity = {absorbedPhotonDensity, PowerFluxDensity,OpticalGeneration, Region}
Name = "n@node@_emw_g_full"
GridFile = "n@node|full_mesh@_msh.tdr"
}
## R: PhotonFluxDensity
## T: PhotonFluxDensity
## A: AbsorbedPhotonDensity
## RTA { StartTick = 0 Log = { Rnorm, Tnorm, Anorm }
Sensor {
Name = "reflected"
Quantity = PowerFluxDensity
BoxCorner1 = (0, 0, 3.9)
BoxCorner2 = (WIDTH, WIDTH, 3.9}
Mode = {Integrate}
}
Sensor {
Name = "total"
Quantity = PowerFluxDensity
BoxCorner1 = (0, 0, 3.7)
BoxCorner2 = (WIDTH, WIDTH, 3.7)
Mode = {Integrate}
}
Sensor {
Name = "transmitted"
Quantity = PowerFluxDensity
BoxCorner1 = (0, 0, -1.5)
BoxCorner2 = (WIDTH, WIDTH, -1.5}
Mode = {Integrate}
}
Sensor {
Name = "absorbedPower"
Quantity = AbsorbedPowerDensity
## Region = {"Substrate"}
BoxCorner1 = (0, 0, 0)
BoxCorner2 = (WIDTH, WIDTH, 1.2)
Mode = {Integrate}
}
#if @Array@ == 3
Sensor {
Name = "absorbed_PD22"
Quantity = AbsorbedPowerDensity
Region = "region22_Si"
Mode = {Integrate}
}
#endif
#if @Array@ == 4
Sensor {
Name = "absorbed_PD22"
Quantity = AbsorbedPowerDensity
Region = "region22_Si"
Mode = {Integrate}
}
Sensor {
Name = "absorbed_PD33"
Quantity = AbsorbedPowerDensity
Region = "region33_Si"
Mode = {Integrate}
}
#endif
[ PYTHON ]
import os
import subprocess
import numpy as np
tdr_file = "n@node|emw@_Eabs_DFISE_eml.tdr"
dat_file = "n@node@_Eabs_DFISE_eml.dat"
grd_file = "n@node@_Eabs_DFISE_eml.grd"
vtk_file = "n@node@_Eabs_DFISE_eml.vtk"
basename = os.path.splitext(tdr_file)[0]
field = "Eabs"
print(" tdr_file :", tdr_file)
print(" dat_file :", dat_file)
print(" grd_file :", grd_file)
print(" tdx running... ")
subprocess.run(["tdx", "-dd", tdr_file, dat_file, grd_file], check=True)
##subprocess.run(["tdx", "-i",tdr_file,"-grd","-dat","-all"], check=True)
print(" tdr -> grd/dat trasnsition is completed")
파일 크기 한계 때문에 알집 egg file 을 통해 올림. 결과 파일은 n652_Eabs_DFISE_eml.tdr 이며 tdx 명령을 통해 grd, dat 파일로 변환해서 사용해야 함.
n652_Eabs_DFISE_eml.vol1.egg
10.00MB
n652_Eabs_DFISE_eml.vol2.egg
10.00MB
n652_Eabs_DFISE_eml.vol3.egg
10.00MB
n652_Eabs_DFISE_eml.vol4.egg
6.00MB