How to start using this program. Please go to the following link


(For MAC & Linux Users, if you have Matlab installed you can also download this windows version. Execute ddcc_1d.m in Matlab command terminal. (video tutorial to used ddcc in linux)

(For the zip file version, please extract the zip file in the folder. Install MCR first and find the file “ddcc_1d.exe” and execute it.

Windows version is Compiled with Matlab 2017b. 64 bit 2017b MCR link here

Release Note: 4.71 version 03/11/2023
  •      Add new functions for the effective mass of different directions for the Schrodinger solver, and landscape solver.
  •    The explanation of the new function in affective mass, band shift can be found in the manual here
  •    1D can now use affinity to align the band offset. This is easier for the case where the bandgap is the same, but the electron affinity is not the same.
  •   Electron 2nd valley is added to the program for consideration of X/L valley in III-V materials. This feature goes with the landscape where the landscape can add solve Ec Ec_2nd, Ev_lst(hh), Ev_st (LH). In addition, HH and LH do not need to be Ev. It can have additional shifts to the Ev. The Ec and Ec2 do not need to be Ec also. Note, the energy shift of Ec and Ev does not need to couple with the landscape solver.
  • Note this is a new add-in function to couple with the landscape solver. Hence, please come back to check if any bugs was found after this version was released.
Release Note: 4.67 version 12/26/2021
  •      Add new functions for time-dependent exciton diffusion, quenching, fusion in the code.
Release Note: 4.61  version 09/29/2021
  • Fix a bug for PL calculation for the new code
Release Note: 4.60  version 09/17/2021
  • Fix the output format error of  *.iv file due to one more column (T) was added.
Release Note: 4.57 version 06/18/2021:
  • Add ZincBlende structure k.p module
  • Add the module for simplified thermal model (With command mode)
  • A Slightly modification in convergence criteria.
  • Compile the matlab GUI with Matlab 2017b
Release Note: 4.35 version 09/07/2020:
  • Improvement in Stimulate emission module.
  • Modify the output file name in stimulate emission.
  • A Slightly modification in convergence criteria.
  • Compile the matlab GUI with Matlab 2017b
Release Note: 4.27 version 04/05/2020:
  • 04/05/2020
  • Continue Modification of VCSEL simulation module
  • CV output and modified high frequency CV approximation
  • Compile the matlab GUI with Matlab 2017b
Release Note: 4.06 version 02/19/2020:
  • 02/19/2020
  • Modify Laser and VCSEL simulation module
  • Bug fixes
  • Compile the matlab GUI with Matlab 2017b
Release Note: 3.87 version 12/26/2019:
  • Older version (Matlab 2012b)
  • Modify the bug for ouput raw data
  • Modify the bug for AlAs database
Release Note: 3.86 version 12/02/2019:
  •   Small bug fixes for user using matlab 2012a or older version for the GUI interface, resultopen may not work.
Release Note: 3.86 version 10/23/2019:
  •   Bug fixes
  •   Stimulated emission
  • Modification of 1D RCWA
Release Note: 3.61 version 04/07/2019:
  • Fixed a bug in impact ionization rate for APD simulation. This bug will create a negative sign if beta is odd number.
  • Fixed some bugs for RCWA simulation.
Release Note: 3.58 version 02/12/2019:
  • 1. Modified a string bug in GUI interface , which cause the resultopen.m file cannot be openned in older Matlab version.
Release Note: 3.56 version 01/03/2019:
  • 1. 1D RCWA’s GUI interface was release for this version.
Release Note: 3.40 version 10/10/2018:
  • 1. Modifying the problem of time dependent solver when Fermi-dirac distribution is used. For low carrier density case, it would be faster to use Boltzmann approximation
  • 2. Improve the interface of solving laser cavity. Now the program will plot cavity gain and cavity loss at the same time
  • 3. Using RCWA to solve the cavity mode for laser diode. GUI is not available. The command line is enabled
  • 4. Linux version of ddcc.exe is included. However, to use GUI, user needs to have linux version matlab. Same as Mac version
Release Note: 3.34 version 07/06/2018:
  • Modifying AlGaInN piezoelectric polarization errors since moving the y component table.
Release Note: 3.31 version 05/13/2018:
  • Fix bug in time dependent simulation
Release Note: 3.27 version 01/29/2018:
  • A bug fixed in the program for not showing carrier density and NDA at zero voltage. This is a new bug which exsit for solver from 07/01/2017 to 01/29/2018
Release Note: 3.25 version 12/20/2017:
  • A bug fixed in the program for dynamically finding ohmic contact barrier to improve the stability
Release Note: 3.23 version 11/22/2017:
  • Rearrange the table, showing up the A_xB_yC_1-x-yD material
  • Correct the material parameter errors for indirect bandgap material in quaternary compound such as AlGaInP
  • Now the setting file’s subman is changed from *.mat file to 1Dset file to avoid some blocking from outlook
  • When you start to run simulation, the program will automatical save the setting file as *.tmp.1Dset. It will be overrided if you run another case with the same project name. This is just for user who may forget to save the latest setting
  • Some testing functions for time dependent problem
  • remove some output error in Fortran. If number is smaller than 1.0e-100, the fortran will output as 1.0-100 which cannot be read by matlab
  • Now the program will decide the bandoffset ratio by electron affinity in default. But user still can modify according to your needs.
Release Note: 3.22 version 07/04/2017:
  • Fix a bug when output the result of Schrodinger solver which will cause access violation error.
Release Note: 3.21 version 06/20/2017:
  • Improve the support of OLED material
  • Now the program can choose to decide the contact barrier according to the doping density near the contact position
  • Fixes some bugs in GUI program (field dependent mobility
  • Localized lanscape model now can include both light hole and heavy holes effective potential to decide the carrier density
  • Release Note: 3.20 version 06/20/2017: (compiled wuth matlab 2012a)
  • Modify bugs in Schrodinger solver generated after last modification, where the large effective mass difference at the interface may cause the simulation problem.

Release Note: 3.09 version 03/26/2017: (compiled wuth matlab 2012a)

  • Modify bugs on Exciton Diffuson solver.

Release Note: 3.08 version 03/05/2017: (compiled wuth matlab 2012a)

  • Fix some issues in k.p program for finding the confined eigen values
  • Add a input page in GUI for Exciton diffusion solver.
Release Note: 3.03 version 01/08/2017: (compiled wuth matlab 2012a)
  • Improve the stability issues when the bandgap is too wide and carrier density is too low to cause numerical error in floating points.

Linux 64 bit version (GUI compiled, source code included)

Linux GUI compiled version 09072020 (Matlab 2017a) Download here)  
Linux GUI compiled version 09072020 with MCR Linux Matlab 2017a (Download here) 

To use the GUI compile version. Please install MCR. If the MCR is installed in /home/userID/MATLAB/MATLAB_Runtime/v92

Find ./ in DDCC installed folder

type ./ $MCRROOT
For example:
./ /home/userID/MATLAB/MATLAB_Runtime/v92


09/07/2020 MAC 64 bit version (GUI compiled, source code included)

Linux GUI compiled version 09072020 with MCR (Matlab 2020a) Download here)  
After extract the file. Install the Program into default folder (ex: /Applications/DDCC_1D_NTU_MAC). And install MCR into /Applications/MATLAB/.  You can find MCR in /Applications/MATLAB/MATLAB_Runtime/v98. In the applications folder, you can find DDCC_1D_NTU_MAC/application.

And you can run DDCC_1D_NTU_MAC to make it work.

Warning: If you cannot run DDCC after setting the input file, please check GUI’s [file]->[Set DDCC directory]-> assign to the location of DDCC_1D_NTU_MAC/application. Also assign a proper [file]->[Set Project Directory]


If you install in your personal folder (/Users/yourID/installedfolder), please open the terminal. Go to /Users/yourID/installfolder/DDCC_1D_NTU_MAC/application

You can Find ./ in DDCC installed folder

type ./ $MCRROOT
For example:
./ /Users/userID/MATLAB/MATLAB_Runtime/v98


./ /Users/userID/MATLAB/MATLAB_Runtime/v98

(Other way is to set in the terminal. If your terminal is tcsh, then open terminal. (nano .cshrc) or edit .cshrc

setenv DYLD_LIBRARY_PATH /Applications/MATLAB/MATLAB_Runtime/v98/runtime/maci64:/Applications/MATLAB/MATLAB_Runtime/v98/bin/maci64:/Applications/MATLAB/MATLAB_Runtime/v98/version/sys/os/maci64:./

If your terminal is zsh, then open terminal. (nano .zshrc) or edit .zshrc

export DYLD_LIBRARY_PATH=”/Applications/MATLAB/MATLAB_Runtime/v98/runtime/maci64:/Applications/MATLAB/MATLAB_Runtime/v98/bin/maci64:/Applications/MATLAB/MATLAB_Runtime/v98/version/sys/os/maci64:./”