Ansys Learning Forum › Forums › Discuss Simulation › Photonics › HEAT: Sweeping over geometry gives wrong/same results › Reply To: HEAT: Sweeping over geometry gives wrong/same results
Hi Amrita,
Thanks for your quick feedback. I have already written a script that sweeps the parameter manually, but I want to have a single data set so that I can use the results in MODE. So I would be very grateful if you could write me a sample script for the first option. Perhaps the code I have already written will help me understand the problem better.
Â
Â
deleteall;
deletesweep("spacing_sweep");
clear; clc;
# Material erstellen ########################
# Silizium
addmodelmaterial;
set("name","Silicon");
set("color",[0.5;0.5;0.5;1]);
addhtmaterialproperty("Solid");
set("name","Silicon");
select("::model::materials::Silicon::Silicon");
set("mass density.constant", 2330);
set("specific heat.constant", 711);
set("thermal conductivity.constant", 148);
Â
# Gold Â
addmodelmaterial;Â Â
set("name","Gold");
set("color",[1;1;0;1]);
addhtmaterialproperty("Solid");
set("name","Gold");
select("::model::materials::Gold::Gold");
set("mass density.constant", 19300);
set("specific heat.constant", 129);
set("thermal conductivity.constant", 0.317);
Â
# Polymer Â
addmodelmaterial;
set("name","Polymer");
set("color",[0.5;1;1;0.33]);
addhtmaterialproperty("Solid");
set("name","Polymer");
select("::model::materials::Polymer::Polymer");
set("mass density.constant", 1200);
set("specific heat.constant", 1300);
set("thermal conductivity.constant", 0.2);
Â
# Luft
addmodelmaterial;Â Â
set("name","Air");
set("color",[0.5;0.5;1;0.2]);
addhtmaterialproperty("Fluid");
set("name","Air");
select("::model::materials::Air::Air");
set("mass density.constant", 1.17659);
set("specific heat.constant", 1006.43);
set("thermal conductivity.constant", 0.0263);
set("dynamic viscosity.constant", 1.85e-05);
set("thermal expansivity.constant", 1/300);
set("thermal expansivity.active model","Ideal Gas");
set("thermal expansivity.ideal gas.alpha", 1);
Â
# Geometrie erstellen ########################
# Substrat
addrect;
set("name","substrate");
set("material","Silicon");
set("x span", 260e-6);
set("y span", 20e-6);
set("y", -30e-6);
set("z span", 1e-6);
set("mesh order", 2);
Â
# Polymer
addrect;
set("name","polymer");
set("material","Polymer");
set("x span", 260e-6);
set("y span", 60e-6);
set("y", 10e-6);
set("z span", 1e-6);
set("mesh order", 4);
Â
# Gas
addrect;
set("name","gas");
set("material","Air");
set("x span", 260e-6);
set("y span", 20e-6);
set("y", 50e-6);
set("z span", 1e-6);
set("mesh order", 2);
Â
# Waveguide
for(i=0:11){
   x_position = -90e-6 + (i-1) * 20e-6;
   waveguide_name = "WG" + num2str(i);
   addrect;
   set("name", waveguide_name);
   set("material", "Polymer");
   set("x", x_position);
   set("y", 20e-6);
   set("x span", 3.2e-6);
   set("y span", 3.2e-6);
   set("y", 20e-6);
   set("z span", 1e-6);
   set("mesh order", 2);
}
   Â
# Simulations-Setup ########################
# Simulationsregion festlegen
select("simulation region");
set("dimension", "2D Z-Normal");
set("x span", 250e-6);
set("y span", 40e-6);
set("y", 15e-6);
Â
# Solver hinzufügen
addheatsolver;
set("norm length", 200e-6);
set("max refine steps", 800000);
Â
# Monitore setzen Â
addtemperaturemonitor("HEAT");
set("name", "wg_monitor");
set("monitor type", "2D z-normal");
set("x span", 5e-6);
set("x", 30e-6);
set("y span", 5e-6);
set("y", 20e-6);
Â
# Randbedingungen setzen
addtemperaturebc("HEAT");
set("surface type","solid");
set("temperature", 300);
set("surface type", "simulation region");
set("y min", true);
Â
addconvectionbc("HEAT");
set("convection model", "constant");
set("ambient temperature", 300);
set("h convection", 10);
set("surface type", "material:material");
set("material 1", "Polymer");
set("material 2", "Air");
Â
length_electrodes = linspace(5e-6, 40e-6, 7);
for(j=1:length(length_electrodes)){
   switchtolayout;
   # Daten Speichern
   file_name = "01_T_" + num2str(j);
   select("HEAT::wg_monitor");
   set("save data", true);
   set("filename", file_name);
   for(i=0:5){
       # Elektroden
       x_position = -60e-6 + (i-1) * 40e-6;
       electrode_name = "EL" + num2str(i);
       addrect;
       set("name", electrode_name);
       set("material", "Gold");
       set("x", x_position);
       set("y", 20e-6);
       set("x span", length_electrodes(j));
       set("y span", 0.2e-6);
       set("y", 30e-6);
       set("z span", 2e-6);
       set("mesh order", 2);
       if (j == 1){       Â
           # Heizquelle
           adduniformheat;
           name = "uniform_heat_EL" + num2str(i);
           set("name", name);
           set("geometry type", "volume");
           set("volume solid", electrode_name);
           set("total power", 0.00421);
           set("use solver norm length", true);
       }
   }
   run;
}