next up previous contents
Next: 6.1.1.1 Control Parameters Up: 6.1 Preprocessing Previous: 6.1 Preprocessing   Contents

6.1.1 User Interface

The user interface of MINIMOS-NT consists of two different parts, one containing geometry and basic material properties like doping, the other one the control structure.

The control concept of MINIMOS-NT, the so called input deck [BDG$^+$98], is very elaborate, which is especially useful for the development of any new code. This includes iteration schemes, damping schemes, several model parameters, arbitrary signal shapes for the input voltage and much more. The concept itself is modular and allows to hide well tested parameters from inexperienced users, thus securing easy handling.

Basically, three different types of input deck data can be distinguished:

The resulting scheme is outlined in Fig. 6.1. A typical input deck for the simulation of ferroelectrics is plotted following this paragraph. It was used for the simulation of one of the hysteresis curves of Fig. 5.13. The first subsection of the inputdeck, the Solve section holds all the relevant information concerning the ferroelectric material, the respective keywords will be explained throughout this chapter. Since the geometry is split into different segments it has to be specified which of them contain ferroelectric materials. This is done in the Phys section.

#include <defaults.ipd>
Solve
{
   RelaxFerro = 8e9;          
   RelaxFerroEf = 6.4e5;
   RelaxFerroExp = 0.6e8;
   ShapeFerro = 0.006;  
   PsatFerro  = 0.18;  
   ECoercFerro = 165;  
   FerroHysteresisModel = 1;
   AxesNumber = 1;
   FerroAxisI = 0;
   Anisotropy = no;
   Ferro1d = yes;	
   FerroTrans = yes;
   transient = 	yes;
   startTime   = 0.0 s;
   endTime = 8e-5s;
   maxStepSize = endTime/800 ;
   minStepSize = maxStepSize ;
}
FCAP : DeviceDefaults
{
   Input  { file = "pzt"; }
   Output { 
        attributes = "";
        file = "pzt_out"; 
	}
   +LeftContact = 0.0 V;
   +RightContact = 0.0 V;	
    Phys 
    { 
        ferro = "Insulator1";
        +Insulator1  { permittivity = "Pure";
        Permittivity
        {
	  Pure
	  {
	     epsr = 400;
	  }
        }
    }
   +LeftContact{ Contact { Ohmic { Ew = -0.55 eV; }}}
   +RightContact{ Contact { Ohmic { Ew = -0.55 eV; }}}
 }
}
Iterate { Scheme  : SchemeDefaults.DD_Ferro;}
Curve 
{
   file = "mix_100khz";  
   Response
   {
       +Vin = V("in");	
       +VFCAP =  V("A");
   }
}
Log 
{
   deviceInfo = if ( yes, "*", "");
   iterationInfo = no;
}	
Grid
{
   gridRefinement = 1.0;
}	
IterateConfig 
{  
   maxDamp = 1.0;			
   minDamp = 0.0000000008;		
   iterationLimit = 350;		
   iterationLimitStep = 150;		
                                        
   finalNorm = 1e-5;			
   transform = yes;		        
}
Num
{
   directSolver = yes;			
}
Geometry
{
   deviceWidth = 1 um;		        
}	
Circuit
{
R1  : ~Devices.R {N1 = "A"  ; N2 ="gnd"; R = 1 MOhm; }
C1  : ~Devices.C {N1 = "gnd"  ; N2 ="A"; C = 10nF;    }
F   : ~FCAP      { RightContact = "in"  ; LeftContact = "A" ;} 
R2  : ~Devices.R { N1 = "in"  ; N2 ="A" ; R = 10000 MOhm; }  
Vin : ~Devices.V { P= "in"; M= "gnd"; 
      V0 = crv("contact_100khz.crv","t","Volt",~Extern.t);}
}



Subsections
next up previous contents
Next: 6.1.1.1 Control Parameters Up: 6.1 Preprocessing Previous: 6.1 Preprocessing   Contents
Klaus Dragosits
2001-02-27