Complete Python API Documentation for DUV Lithography Simulation Suite
{
"num_particles": 100000,
"wavelength": 193,
"na": 0.85,
"feature_size": 50.0,
"dose": 30.0,
"simulation_speed": "medium"
}
{
"success": true,
"simulation_results": {
"energy_deposition": [...],
"particle_distribution": [...],
"statistics": {
"total_energy": 1.23e-15,
"peak_intensity": 2.45e-12,
"simulation_time": 1.23
}
},
"timestamp": "2024-01-15T10:30:00Z"
}
{
"sigma1": 30.0,
"sigma2": 100.0,
"amplitude1": 0.8,
"amplitude2": 0.2,
"grid_size": 128,
"feature_size": 200.0
}
{
"na": 0.85,
"sigma": 0.3,
"wavelength": 193,
"spectral_width": 0.5,
"pupil_cutoff": 0.9,
"illumination_type": "circular"
}
{
"flare_level": 0.02,
"flare_sigma": 10.0,
"main_sigma": 50.0,
"decay_rate": 0.5,
"scattering_angle": 30.0,
"feature_size": 1.0
}
{
"wavelength": 193,
"na": 0.85,
"sigma": 0.3,
"resist_thickness": 200.0,
"refractive_index": 1.7,
"analysis_type": "pitch"
}
{
"feature_size": 50.0,
"wavelength": 193,
"na": 0.85,
"num_particles": 100000,
"comparison_metric": "accuracy",
"validation_method": "experimental"
}
import duv_simulator as duv
# Initialize simulator
simulator = duv.DUVSimulator()
# Run Monte Carlo simulation
mc_results = simulator.run_monte_carlo(
num_particles=100000,
wavelength=193,
na=0.85,
feature_size=50.0,
dose=30.0
)
# Calculate Double Gaussian PSF
psf_results = simulator.calculate_double_gaussian(
sigma1=30.0,
sigma2=100.0,
amplitude1=0.8,
amplitude2=0.2
)
# Analyze partial coherence
coherence_results = simulator.analyze_partial_coherence(
na=0.85,
sigma=0.3,
wavelength=193
)
# Model flare effects
flare_results = simulator.model_flare(
flare_level=0.02,
flare_sigma=10.0,
main_sigma=50.0
)
# Calculate swing curves
swing_results = simulator.calculate_swing_curves(
wavelength=193,
na=0.85,
analysis_type="pitch"
)
# Advanced configuration
config = duv.SimulationConfig(
wavelength=193,
na=0.85,
coherence_factor=0.3,
resist_thickness=200.0,
refractive_index=1.7
)
# Run comprehensive analysis
analysis = duv.ComprehensiveAnalysis(config)
# Monte Carlo with custom parameters
mc_config = duv.MonteCarloConfig(
num_particles=1000000,
simulation_speed="high",
include_statistics=True
)
mc_results = analysis.run_monte_carlo(mc_config)
# Double Gaussian with FFT optimization
psf_config = duv.PSFConfig(
sigma1=30.0,
sigma2=100.0,
grid_size=256,
fft_optimization=True
)
psf_results = analysis.calculate_psf(psf_config)
# Partial coherence with multiple illumination types
coherence_config = duv.CoherenceConfig(
illumination_types=["circular", "annular", "quadrupole"],
pupil_cutoff=0.9,
spectral_width=0.5
)
coherence_results = analysis.analyze_coherence(coherence_config)
# Generate comprehensive report
report = analysis.generate_report(
include_plots=True,
include_statistics=True,
export_format="pdf"
)
# Batch processing for multiple parameters
parameter_sets = [
{"wavelength": 193, "na": 0.85, "feature_size": 50.0},
{"wavelength": 193, "na": 0.90, "feature_size": 50.0},
{"wavelength": 193, "na": 0.85, "feature_size": 100.0},
{"wavelength": 248, "na": 0.85, "feature_size": 50.0}
]
batch_results = []
for params in parameter_sets:
result = simulator.run_comprehensive_analysis(**params)
batch_results.append(result)
# Analyze batch results
batch_analysis = duv.BatchAnalysis(batch_results)
summary = batch_analysis.generate_summary()
comparison = batch_analysis.compare_results()