Main Page | Directories | File List | File Members

read_input_file.h

Go to the documentation of this file.
00001 /*
00002    This file belongs to Aeneas. Aeneas is a GNU package released under GPL 3.
00003    This code is a simulator for Submicron 3D Semiconductor Devices. 
00004    It implements the Monte Carlo transport in 3D tetrahedra meshes
00005    for the simulation of the semiclassical Boltzmann equation for both electrons.
00006    It also includes all the relevant quantum effects for nanodevices.
00007 
00008    Copyright (C) 2007 Jean Michel Sellier <sellier@dmi.unict.it>
00009                                           <aeneas@southnovel.eu>
00010  
00011    This program is free software; you can redistribute it and/or modify
00012    it under the terms of the GNU General Public License as published by
00013    the Free Software Foundation; either version 3, or (at your option)
00014    any later version.
00015 
00016    This program is distributed in the hope that it will be useful,
00017    but WITHOUT ANY WARRANTY; without even the implied warranty of
00018    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019    GNU General Public License for more details.
00020 
00021    You should have received a copy of the GNU General Public License
00022    along with this program. If not, see <http://www.gnu.org/licenses/>.
00023 */
00024 
00025 // Created on : 18 june 2007, Siracusa, Jean Michel Sellier
00026 // Last modified : 16 september 2007, Siracusa, Jean Michel Sellier
00027 
00028 // This subroutine opens the user specified file where
00029 // the simulated device is described.
00030 
00031 void read_input_file(void)
00032 {
00033   int index;
00034   double dum;
00035   char s[200];
00036     
00037 // some resets before we load the input file...
00038   TEMPO=0.;
00039   DDMAX=0.;
00040   IIFLAG=NO; // no impact ionization as default
00041   Quantum_Flag=0; // no quantum effects taken into account (standard)
00042   NHTFLAG=WRITE; // compute and save the neighbourhood table as default
00043   POISSONUPDATEFLAG=YES; // the Poisson equation is updated as default
00044   SAVEPARTICLESFLAG=YES; // save particles as default
00045   SAVEPARTICLESFORMAT=ALL; // save all particles output format as default
00046   SAVEFIELDSFLAG=YES; // save fields as default
00047   SAVEFIELDSFORMAT=ALL; // save all format as default
00048 
00049 //  RELATIVEDISTANCESFLAG=WRITE; // compute and save relative distances as default
00050   for(index=0;index<Ng;index++) VIC[index]=0.;
00051   for(index=0;index<Ng;index++) i_front[index]=NOCONTACT;
00052   for(index=0;index<Ne;index++) i_dom[index]=SILICON;
00053   for(index=0;index<Ne;index++) ND[index]=NA[index]=0.;
00054 
00055   for(index=0;index<NOAMTIA;index++) XVAL[index]=0.2;
00056 
00057   if(fp==NULL){
00058     printf("read_input_file error : problems in opening file.inp!\n");
00059     exit(0);
00060   }
00061   
00062   printf("\nProcessing the input file...\n");
00063   printf("******************************\n");
00064   while(!feof(fp)){
00065 // read the current row
00066     fscanf(fp,"%s",s);
00067 // if row is a comment then read it and ignore it
00068     if(strcmp(s,"#")==0){
00069       fgets(s,80,fp);
00070       printf("COMMENT ---> %s",s);
00071     } else if(strcmp(s,"TIMESTEP")==0){
00072       fscanf(fp,"%lf",&dum);
00073       DT=dum;
00074       if(DT<=0.){
00075         printf("read_input_file error : negative time step!\n");
00076         exit(0);
00077       }
00078       printf("TIMESTEP ---> %g",DT);
00079     } else if(strcmp(s,"FINALTIME")==0){
00080       fscanf(fp,"%lf",&dum);
00081       TF=dum;
00082       if(TF<=0.){
00083         printf("read_input_file error : negative final time!\n");
00084         exit(0);
00085       } 
00086       printf("FINAL TIME = %lg ---> Ok\n",TF);      
00087     } else if(strcmp(s,"MEDIA")==0){
00088       fscanf(fp,"%d",&MEAN);
00089       if(MEAN<0){
00090         printf("read_input_file error : number of media is negative!\n");
00091         exit(0);
00092       }
00093       printf("MEDIA = %d ---> Ok\n",MEAN);
00094       } else if(strcmp(s,"LATTICETEMPERATURE")==0){
00095         fscanf(fp,"%lf",&TL);
00096         if(TL<=0.){
00097           printf("read_input_file error : not valid lattice temperature!\n");
00098           exit(0);
00099         }
00100         printf("LATTICE TEMPERATURE = %g ---> Ok\n",TL);
00101       } else if(strcmp(s,"SAVEEVERYNUMSTEPS")==0){
00102         fscanf(fp,"%d",&every_num_steps);
00103         printf("SAVE EVERY %d STEPS ---> Ok\n",every_num_steps);
00104       }  else if(strcmp(s,"CIMP")==0){
00105         fscanf(fp,"%lf",&CIMP);
00106         if(CIMP<0.){
00107           printf("read_input_file error : not valid impurity concentration\n");
00108           exit(0);
00109         }
00110         printf("CIMP = %g ---> Ok\n",CIMP);
00111       } else if(strcmp(s,"CONTACT")==0){
00112         int type;
00113         double xi,xf;
00114         double yi,yf;
00115         double zi,zf;
00116         double volt;
00117         fscanf(fp,"%s",s);
00118         if(strcmp(s,"X")==0) fscanf(fp,"%lf %lf",&xi,&xf);
00119         else{
00120           printf("read_input_file error : X contact not specified!\n");
00121           exit(0);            
00122         }
00123         fscanf(fp,"%s",s);
00124         if(strcmp(s,"Y")==0) fscanf(fp,"%lf %lf",&yi,&yf);
00125         else{
00126           printf("read_input_file error : Y contact not specified!\n");
00127           exit(0);
00128         }
00129         fscanf(fp,"%s",s);
00130         if(strcmp(s,"Z")==0) fscanf(fp,"%lf %lf",&zi,&zf);
00131         else{
00132           printf("read_input_file error : Z contact not specified!\n");
00133           exit(0);
00134         }
00135         fscanf(fp,"%s",s);
00136         if(strcmp(s,"OHMIC")==0){
00137           type=OHMIC;
00138           fscanf(fp,"%lf",&volt);
00139         }
00140         else if(strcmp(s,"SCHOTTKY")==0){
00141           type=SCHOTTKY;
00142           fscanf(fp,"%lf",&volt);
00143         }
00144         else if(strcmp(s,"INSULATOR")==0) type=INSULATOR;
00145         else{
00146           printf("read_input_file error : unknown specified contact!\n");
00147           printf("contact %s is unknown!\n",s);
00148           exit(0);
00149         }
00150         if(type==OHMIC || type==SCHOTTKY)
00151           printf("CONTACT X=[%g,%g] Y=[%g,%g] Z=[%g,%g] %s %g volts ---> Ok\n",
00152                  xi,xf,yi,yf,zi,zf,s,volt);
00153         if(type==INSULATOR)
00154           printf("CONTACT X=[%g,%g] Y=[%g,%g] Z=[%g,%g] %s ---> Ok\n",
00155                  xi,xf,yi,yf,zi,zf,s);
00156         for(index=0;index<Ng;index++) 
00157            if((xi<=coord[0][index]) &&(coord[0][index]<=xf) &&
00158               (yi<=coord[1][index]) &&(coord[1][index]<=yf) &&
00159               (zi<=coord[2][index]) &&(coord[2][index]<=zf)){
00160              VIC[index]=volt;
00161              i_front[index]=type;
00162            }
00163       } else if(strcmp(s,"STATISTICALWEIGHT")==0){
00164         fscanf(fp,"%d",&NP1);
00165         printf("STATISTICAL WEIGHT = %d ---> Ok\n",NP1);
00166       } else if(strcmp(s,"POISSONSOLVER")==0){
00167         fscanf(fp,"%d",&itol);
00168         printf("POISSONSOLVER %d ---> Ok\n",itol);
00169       } else if(strcmp(s,"POISSONTOLLERANCE")==0){
00170         fscanf(fp,"%lf",&tol);
00171         printf("POISSONTOLLERANCE %g ---> Ok\n",tol);
00172       } else if(strcmp(s,"POISSONITMAX")==0){
00173         fscanf(fp,"%d",&itmax);
00174         printf("POISSONITMAX %d ---> Ok\n",itmax);
00175       } else if(strcmp(s,"MATERIAL")==0){
00176         int type;
00177         double xi,xf;
00178         double yi,yf;
00179         double zi,zf;
00180         fscanf(fp,"%s",s);
00181         if(strcmp(s,"X")==0) fscanf(fp,"%lf %lf",&xi,&xf);
00182         else{
00183           printf("read_input_file error : X material not specified!\n");
00184           exit(0);
00185         }
00186         fscanf(fp,"%s",s);
00187         if(strcmp(s,"Y")==0) fscanf(fp,"%lf %lf",&yi,&yf);
00188         else{
00189           printf("read_input_file error : Y material not specified!\n");
00190           exit(0);
00191         }
00192         fscanf(fp,"%s",s);
00193         if(strcmp(s,"Z")==0) fscanf(fp,"%lf %lf",&zi,&zf);
00194         else{
00195           printf("read_input_file error : Z material not specified!\n");
00196           exit(0);
00197         }
00198         fscanf(fp,"%s",s);
00199         if(strcmp(s,"SILICON")==0)        type=SILICON;
00200         else if(strcmp(s,"GAAS")==0)      type=GAAS;
00201         else if(strcmp(s,"GERMANIUM")==0) type=GERMANIUM;
00202         else if(strcmp(s,"INSB")==0)      type=INSB;
00203         else if(strcmp(s,"ALSB")==0)      type=ALSB;
00204         else if(strcmp(s,"ALAS")==0)      type=ALAS;
00205         else if(strcmp(s,"ALP")==0)       type=ALP;
00206         else if(strcmp(s,"GAP")==0)       type=GAP;
00207         else if(strcmp(s,"GASB")==0)      type=GASB;
00208         else if(strcmp(s,"INAS")==0)      type=INAS;
00209         else if(strcmp(s,"INP")==0)       type=INP;
00210         else if(strcmp(s,"SIO2")==0)      type=SIO2;
00211         else if(strcmp(s,"ALxINxSB")==0){
00212           type=ALXINXSB;
00213           fscanf(fp,"%lf",&dum);
00214           if(XVAL[type]<=0.){printf("read_input_file error : x negative for AlxInxSb!\n");
00215                        exit(0);
00216                       }
00217           if(XVAL[type]>1.){printf("read_input_file error : x greater than 1.0 for AlxInxSb!\n");
00218                        exit(0);
00219                       }
00220           XVAL[type]=dum;
00221           printf("AlxInxSb X = %g\n",XVAL[type]);
00222         }
00223         else if(strcmp(s,"ALxIN1-xSB")==0){
00224           type=ALXIN1XSB;
00225           fscanf(fp,"%lf",&dum);
00226           if(XVAL[type]<=0.){printf("read_input_file error : x negative for AlxIn(1-x)Sb!\n");
00227                        exit(0);
00228                       }
00229           if(XVAL[type]>1.){printf("read_input_file error : x greater than 1.0 for AlxIn(1-x)Sb!\n");
00230                        exit(0);
00231                       }
00232           XVAL[type]=dum;
00233           printf("AlxIn(1-x)Sb X = %g\n",XVAL[type]);
00234         }
00235         else{
00236           printf("read_input_file error : unknown specified material!\n");
00237           printf("material %s is unknown!\n",s);
00238           exit(0);
00239         }
00240         printf("MATERIAL %s X=[%g,%g] Y=[%g,%g] Z=[%g,%g] ---> Ok\n",s,xi,xf,yi,
00241                                                                      yf,zi,zf);
00242         for(index=0;index<Ne;index++){
00243            double xc,yc,zc;
00244            xc=0.25*(coord[0][noeud_geo[0][index]-1]+coord[0][noeud_geo[1][index]-1]
00245              +coord[0][noeud_geo[2][index]-1]+coord[0][noeud_geo[3][index]-1]);
00246            yc=0.25*(coord[1][noeud_geo[0][index]-1]+coord[1][noeud_geo[1][index]-1]
00247              +coord[1][noeud_geo[2][index]-1]+coord[1][noeud_geo[3][index]-1]);
00248            zc=0.25*(coord[2][noeud_geo[0][index]-1]+coord[2][noeud_geo[1][index]-1]
00249              +coord[2][noeud_geo[2][index]-1]+coord[2][noeud_geo[3][index]-1]);
00250            if((xi<=xc) && (xc<=xf) && (yi<=yc) &&(yc<=yf) && (zi<=zc) &&(zc<=zf))
00251              i_dom[index]=type;
00252         }
00253       } else if(strcmp(s,"DONORDENSITY")==0){
00254         double xi,xf;
00255         double yi,yf;
00256         double zi,zf;
00257         double conc;
00258         fscanf(fp,"%s",s);
00259         if(strcmp(s,"X")==0) fscanf(fp,"%lf %lf",&xi,&xf);
00260         else{
00261           printf("read_input_file error : X donordensity not specified!\n");
00262           exit(0);
00263         }
00264         fscanf(fp,"%s",s);
00265         if(strcmp(s,"Y")==0) fscanf(fp,"%lf %lf",&yi,&yf);
00266         else{
00267           printf("read_input_file error : Y donordensity not specified!\n");
00268           exit(0);
00269         }
00270         fscanf(fp,"%s",s);
00271         if(strcmp(s,"Z")==0) fscanf(fp,"%lf %lf",&zi,&zf);
00272         else{
00273           printf("read_input_file error : Z donordensity not specified!\n");
00274           exit(0);
00275         }
00276         fscanf(fp,"%lf",&conc);
00277         if(DDMAX<conc) DDMAX=conc;
00278 //        printf("DDMAX=%g\n",DDMAX);
00279         for(index=0;index<Ne;index++){
00280            double xc,yc,zc;
00281            xc=0.25*(coord[0][noeud_geo[0][index]-1]+coord[0][noeud_geo[1][index]-1]
00282              +coord[0][noeud_geo[2][index]-1]+coord[0][noeud_geo[3][index]-1]);
00283            yc=0.25*(coord[1][noeud_geo[0][index]-1]+coord[1][noeud_geo[1][index]-1]
00284              +coord[1][noeud_geo[2][index]-1]+coord[1][noeud_geo[3][index]-1]);
00285            zc=0.25*(coord[2][noeud_geo[0][index]-1]+coord[2][noeud_geo[1][index]-1]
00286              +coord[2][noeud_geo[2][index]-1]+coord[2][noeud_geo[3][index]-1]);
00287            if((xi<=xc) && (xc<=xf) && (yi<=yc) &&(yc<=yf) && (zi<=zc) &&(zc<=zf)){
00288              ND[index]=conc;
00289              NE[noeud_geo[0][index]-1]=conc;
00290              NE[noeud_geo[1][index]-1]=conc;
00291              NE[noeud_geo[2][index]-1]=conc;
00292              NE[noeud_geo[3][index]-1]=conc;
00293            }
00294         }
00295         printf("DONORDENSITY X=[%g,%g] Y=[%g,%g] Z=[%g,%g] %g ---> Ok\n",
00296                 xi,xf,yi,yf,zi,zf,conc);
00297       } else if(strcmp(s,"ACCEPTORDENSITY")==0){
00298         double xi,xf;
00299         double yi,yf;
00300         double zi,zf;
00301         double conc;
00302         fscanf(fp,"%s",s);
00303         if(strcmp(s,"X")==0) fscanf(fp,"%lf %lf",&xi,&xf);
00304         else{
00305           printf("read_input_file error : X acceptordensity not specified!\n");
00306           exit(0);
00307         }
00308         fscanf(fp,"%s",s);
00309         if(strcmp(s,"Y")==0) fscanf(fp,"%lf %lf",&yi,&yf);
00310         else{
00311           printf("read_input_file error : Y acceptordensity not specified!\n");
00312           exit(0);
00313         }
00314         fscanf(fp,"%s",s);
00315         if(strcmp(s,"Z")==0) fscanf(fp,"%lf %lf",&zi,&zf);
00316         else{
00317           printf("read_input_file error : Z acceptordensity not specified!\n");
00318           exit(0);
00319         }
00320         fscanf(fp,"%lf",&conc);
00321         for(index=0;index<Ne;index++){
00322            double xc,yc,zc;
00323            xc=0.25*(coord[0][noeud_geo[0][index]-1]+coord[0][noeud_geo[1][index]-1]
00324              +coord[0][noeud_geo[2][index]-1]+coord[0][noeud_geo[3][index]-1]);
00325            yc=0.25*(coord[1][noeud_geo[0][index]-1]+coord[1][noeud_geo[1][index]-1]
00326              +coord[1][noeud_geo[2][index]-1]+coord[1][noeud_geo[3][index]-1]);
00327            zc=0.25*(coord[2][noeud_geo[0][index]-1]+coord[2][noeud_geo[1][index]-1]
00328              +coord[2][noeud_geo[2][index]-1]+coord[2][noeud_geo[3][index]-1]);
00329            if((xi<=xc) && (xc<=xf) && (yi<=yc) &&(yc<=yf) && (zi<=zc) &&(zc<=zf)){
00330              NA[index]=conc;
00331 //             NH[noeud_geo[0][index]-1]=conc;
00332 //             NH[noeud_geo[1][index]-1]=conc;
00333 //             NH[noeud_geo[2][index]-1]=conc;
00334 //             NH[noeud_geo[3][index]-1]=conc;
00335            }
00336         }
00337         printf("ACCEPTORDENSITY X=[%g,%g] Y=[%g,%g] Z=[%g,%g] %g ---> Ok\n",
00338                 xi,xf,yi,yf,zi,zf,conc);
00339       } else if(strcmp(s,"NOQUANTUMEFFECTS")==0){
00340          Quantum_Flag=0;
00341          printf("QUANTUM EFFECTS = NO --->Ok\n");
00342       } else if(strcmp(s,"QUANTUMEFFECTS")==0){
00343          Quantum_Flag=1;
00344         printf("QUANTUM EFFECTS = YES --->Ok\n");
00345       } else if(strcmp(s,"LOADMESH")==0){
00346          fscanf(fp,"%s",s);
00347          {int h; for(h=0;h<100;h++) MESHNAME[h]=s[h];}
00348          printf("\n\nLoading the input mesh file...\n");
00349          load_mesh(s); // this row has to be putted before everything calculation!!!
00350          printf("Mesh input file correctly processed...\n\n");
00351       } else if(strcmp(s,"LOADMSH")==0){
00352          printf("\n\nLoading the input msh file...\n");
00353          fscanf(fp,"%s",s);
00354          {int h; for(h=0;h<100;h++) MESHNAME[h]=s[h];}
00355          load_mshV1(s); // this subroutine is recommended only for GMSH experts
00356          printf("msh input file correctly processed...\n\n");
00357       } else if(strcmp(s,"NEIGHBOURHOODTABLE")==0){
00358          fscanf(fp,"%s",s);
00359          if(strcmp(s,"READ")==0){
00360            NHTFLAG=READ;
00361            printf("NEIGHBOURHOOD = READ ---> Ok\n");
00362          }
00363          if(strcmp(s,"WRITE")==0){
00364            NHTFLAG=WRITE;
00365            printf("NEIGHBOURHOOD = WRITE ---> Ok\n");
00366          }
00367       } else if(strcmp(s,"POISSONUPDATE")==0){
00368          fscanf(fp,"%s",s);
00369          if(strcmp(s,"YES")==0){
00370            POISSONUPDATEFLAG=YES;
00371            printf("POISSON UPDATE = YES ---> Ok\n");
00372          }
00373          if(strcmp(s,"NO")==0){
00374            POISSONUPDATEFLAG=NO;
00375            printf("POISSON UPDATE = NO ---> Ok\n");
00376          }
00377       } else if(strcmp(s,"SAVEPARTICLES")==0){
00378          fscanf(fp,"%s",s);
00379          if(strcmp(s,"NO")==0){
00380            SAVEPARTICLESFLAG=NO;
00381            printf("DO NOT SAVE PARTICLES ---> Ok\n");
00382          }
00383          if(strcmp(s,"YES")==0){
00384            SAVEPARTICLESFLAG=YES;
00385            fscanf(fp,"%s",s);
00386            if(strcmp(s,"POINT3D")==0) SAVEPARTICLESFORMAT=POINT3D;
00387            if(strcmp(s,"MESH")==0) SAVEPARTICLESFORMAT=MESH;
00388            if(strcmp(s,"ALL")==0) SAVEPARTICLESFORMAT=ALL;
00389            printf("PARTICLES OUTPUT SELECTED = %s ---> Ok\n",s);
00390         }
00391       } else if(strcmp(s,"SAVEFIELDS")==0){
00392          fscanf(fp,"%s",s);
00393          if(strcmp(s,"NO")==0){
00394            SAVEFIELDSFLAG=NO;
00395            printf("DO NOT SAVE FIELDS ---> Ok\n");
00396          }
00397          if(strcmp(s,"YES")==0){
00398            SAVEFIELDSFLAG=YES;
00399            fscanf(fp,"%s",s);
00400            if(strcmp(s,"VTK")==0) SAVEFIELDSFORMAT=VTK;
00401            if(strcmp(s,"MESH")==0) SAVEFIELDSFORMAT=MESH;
00402            if(strcmp(s,"ALL")==0) SAVEFIELDSFORMAT=ALL;
00403            printf("FIELDS OUTPUT SELECTED = %s ---> Ok\n",s);
00404          }
00405       } else if(strcmp(s,"DONORDENSITYONELEMENTS")==0){
00406          int idum;
00407          fscanf(fp,"%d",&idum);
00408          fscanf(fp,"%lf",&dum);
00409          for(index=0;index<Ne;index++) if(i_dom[index]==idum) ND[index]=dum;
00410          printf("DONORDENSITYONELEMENTS %g %d ---> Ok\n",dum,idum);
00411       } else if(strcmp(s,"IMPACTIONIZATION")==0){
00412          fscanf(fp,"%s",s);
00413          if(strcmp(s,"YES")==0) IIFLAG=YES;
00414          if(strcmp(s,"NO")==0) IIFLAG=NO;
00415          printf("IMPACT IONIZATION = %s ---> Ok\n",s);
00416       }
00417       
00418       /* else if(strcmp(s,"RELATIVEDISTANCES")==0){
00419          fscanf(fp,"%s",s);
00420          if(strcmp(s,"WRITE")==0){
00421            RELATIVEDISTANCESFLAG=WRITE;
00422            printf("RELATIVE DISTANCES = WRITE ---> Ok\n");
00423          }
00424          if(strcmp(s,"READ")==0){
00425            RELATIVEDISTANCESFLAG=READ;
00426            printf("RELATIVEDISTANCES = READ ---> Ok\n");
00427          }
00428       }*/
00429 
00430 
00431 
00432 // no detection of syntax error in the input file...
00433 /*      else{
00434             printf("***********\n");
00435             printf("%s\n",s);
00436             printf("***********\n");
00437             printf("syntax error in input file!\n");
00438             exit(0);
00439         }
00440 */
00441   } // end of while loop
00442   printf("End of input file.\n");
00443   printf("******************\n\n");
00444   
00445 // THE FOLLOWING ROWS HAS TO BE SPECIFIED BY THE USER!!!
00446 // example : a silicon diode...
00447 // ****************************
00448 //  DT=0.015e-12; // 1 femtosecond
00449 //  TF=10.*DT; // 1 picosecond
00450 //  MEAN=500; // Time of Mean Average
00451 //  TL=300.; // Kelvin
00452 //  every_num_steps=2;
00453 //  CIMP=1.e14; // 1/m^3
00454 // applied potential
00455 //  for(index=0;index<Ng;index++) if(coord[2][index]==1.0e-6) VIC[index]=2.0; // Volt
00456 //  DDMAX=1.e23; // maximum doping in the device (1/meter^3)
00457 //  NP1=25;    // number of particles per tetrahedra in the maximum doped elements
00458             // (i.e. statistical weight)
00459 //  itol=4; // for poisson linear solver
00460 //  tol=1.e-16; // for poisson linear solver
00461 //  itmax=1500; // for poisson linear solver
00462 //  for(index=0;index<Ne;index++) i_dom[index]=SILICON;
00463 // definition of the donor density in each element of the mesh
00464 //  for(index=0;index<Ne;index++){
00465 //     double xc,yc,zc;
00466 //     xc=0.25*(coord[0][noeud_geo[0][index]-1]+coord[0][noeud_geo[1][index]-1]
00467 //             +coord[0][noeud_geo[2][index]-1]+coord[0][noeud_geo[3][index]-1]);
00468 //     yc=0.25*(coord[1][noeud_geo[0][index]-1]+coord[1][noeud_geo[1][index]-1]
00469 //             +coord[1][noeud_geo[2][index]-1]+coord[1][noeud_geo[3][index]-1]);
00470 //     zc=0.25*(coord[2][noeud_geo[0][index]-1]+coord[2][noeud_geo[1][index]-1]
00471 //             +coord[2][noeud_geo[2][index]-1]+coord[2][noeud_geo[3][index]-1]);
00472 //     if(zc<=0.3e-6 || zc>=0.7e-6) ND[index]=DDMAX;
00473 //     else ND[index]=1.e22;
00474 //  }
00475 //  ND[19]=DDMAX;
00476 //  for(index=0;index<Ng;index++){
00477 //     i_front[index]=NOCONTACT;
00478 //     if(coord[0][index]==0. || coord[0][index]==0.3e-6) i_front[index]=INSULATOR;
00479 //     if(coord[1][index]==0. || coord[1][index]==0.3e-6) i_front[index]=INSULATOR;
00480 //     if(coord[2][index]==0. || coord[2][index]==1.0e-6) i_front[index]=OHMIC;
00481 //  }
00482 // ******************************************************    
00483 }

© sourcejam.com 2005-2008