⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 twodest.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1991 Regents of the University of California.  All rights reserved.Author:	1991 David A. Gates, U. C. Berkeley CAD Group**********/#include <math.h>#include "numglobs.h"#include "numenum.h"#include "nummacs.h"#include "twodev.h"#include "twomesh.h"#include "spmatrix.h"voidTWOdestroy( pDevice )TWOdevice *pDevice;{  int index, eIndex;   TWOelem *pElem;  TWOnode *pNode;  TWOedge *pEdge;  if ( !pDevice ) return;  switch ( pDevice->solverType ) {  case SLV_SMSIG:  case SLV_BIAS:    /* free up memory allocated for the bias solution */    FREE( pDevice->dcSolution );    FREE( pDevice->dcDeltaSolution );    FREE( pDevice->copiedSolution );    FREE( pDevice->rhs );    FREE( pDevice->rhsImag );    spDestroy( pDevice->matrix );    break;  case SLV_EQUIL:    /* free up the vectors allocated in the equilibrium solution */    FREE( pDevice->dcSolution );    FREE( pDevice->dcDeltaSolution );    FREE( pDevice->copiedSolution );    FREE( pDevice->rhs );    spDestroy( pDevice->matrix );    break;  case SLV_NONE:    break;  default:    fprintf( stderr, "Panic: Unknown solver type in TWOdestroy.\n" );    exit( -1 );    break;  }    /* destroy the mesh */  if ( pDevice->elements ) {    for ( eIndex = 1; eIndex <= pDevice->numElems; eIndex++ ) {      pElem = pDevice->elements[ eIndex ];      for ( index = 0; index <= 3; index++ ) {	if ( pElem->evalNodes[ index ] ) {	  pNode = pElem->pNodes[ index ];	  FREE( pNode );	}	if ( pElem->evalEdges[ index ] ) {	  pEdge = pElem->pEdges[ index ];	  FREE( pEdge );	}      }      FREE( pElem );    }    FREE( pDevice->elements );    FREE( pDevice->elemArray );  }  /* destroy the contacts & channels */  /* NOT IMPLEMENTED */  FREE( pDevice );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -