Xyce  6.1
Xyce::Device::PDE_2DMesh Class Reference

#include <N_DEV_PDE_2DMesh.h>

Inheritance diagram for Xyce::Device::PDE_2DMesh:
Collaboration diagram for Xyce::Device::PDE_2DMesh:

Public Member Functions

 PDE_2DMesh (const DeviceOptions &do1, int sgplotLevel1)
 
 PDE_2DMesh (const PDE_2DMesh &right)
 
 ~PDE_2DMesh ()
 
PDE_2DMeshoperator= (PDE_2DMesh const &rhsMesh)
 
bool initializeMesh (const std::string &meshFileName_tmp)
 
bool initializeInternalMesh (int nx, int ny, double xlength, double ylength, int numElectrodes, std::string &outputMeshFileName, std::map< std::string, PDE_2DElectrode * > &elMap, bool cylFlag)
 
bool resizeMesh (double xlength, double ylength)
 
void dumpMesh ()
 
void printLabels ()
 
void outputMeshInfo ()
 
int getNumNodes ()
 
int getNumEdges ()
 
int getNumCells ()
 
int getNumLabels ()
 
int getMaxNodeNN ()
 
double getMaxSize ()
 
double getXMax ()
 
double getXMin ()
 
double getYMax ()
 
double getYMin ()
 
double interp (double *F, double r, double z)
 
bool interpVector (double *F, double r, double z, double &xvec, double &yvec)
 
void findCell (double r, double z, int &isuccess, int &inode, int &iCell, int iStartCell=0)
 
double findMinDist (int iCell, double r, double z)
 
double compAngle (double x1, double y1, double x2, double y2, double x3, double y3)
 
bool scaleMesh (double xScale)
 
bool labelNameExist (std::string &labelName)
 
bool labelEdgeType (std::string &labelName)
 
bool dopingVectorExist ()
 
bool getDopingVector (std::vector< double > &cvec_tmp)
 
bool getXVector (std::vector< double > &xvec_tmp)
 
bool getYVector (std::vector< double > &yvec_tmp)
 
double * getDopingVector ()
 
double * getXVector ()
 
double * getYVector ()
 
mNodegetNode (int i)
 
mEdgegetEdge (int i)
 
mCellgetCell (int i)
 
mLabelgetLabel (int i)
 
mLabelgetLabel (std::string &name)
 
double lengthAdjust (double x1, double y1, double x2, double y2)
 
int ** getNodeIndexVector ()
 
- Public Member Functions inherited from Xyce::Device::PDEMeshContainer
 PDEMeshContainer ()
 
 ~PDEMeshContainer ()
 

Public Attributes

bool cylGeom
 

Private Member Functions

bool readSGFMeshFile (const std::string &meshFileName_tmp)
 
bool writeSGFMeshFile (const std::string &meshFileName_tmp)
 
bool setupInternalMesh (int nx, int ny, double xlength, double ylength)
 
bool setupInternalAdjacencyInfo ()
 
bool errorCheckElectrodes (int numElectrodes, std::map< std::string, PDE_2DElectrode * > &elMap)
 
bool setupDefaultLabels (int numberElectrodes)
 
bool setupInternalLabels (int numberElectrodes, std::map< std::string, PDE_2DElectrode * > &elMap)
 
bool setupGeometry ()
 
bool computeIntPB (double &x, double &y, int inodeA, int inodeB, int inodeC)
 
double areaAdjust (double x1, double y1, double x2, double y2, double x3, double y3)
 
double computeAngle (int inode1, int inode2, int inode3)
 
bool cellNodes ()
 
bool fCCWorder (int inode1, int inode2, int inode3)
 
void calcAdjacencyInfo ()
 
void initNodeAdjStructure (NADJ &nadj, int itri, int iVertex, int uIntLabel, bool fCW)
 
void getElementInfo (int itri, int *ainode, int *aiedge, int *aitri, int *auLabel)
 
void elementNodes (int itri, int *ainode)
 
 PDE_2DMesh ()
 

Private Attributes

std::string meshFileName
 
bool externalMeshFlag
 
double xMax
 
double yMax
 
double xMin
 
double yMin
 
double dx
 
double dy
 
double xRatio
 
double yRatio
 
double x0
 
bool meshScaledFlag
 
double vol
 
double invVol
 
double surfArea
 
double circum
 
double invCircum
 
double depth
 
int numAdj
 
int numNodes
 
int numEdges
 
int numCells
 
int numLabels
 
int numRegLabels
 
int numBndryNodes
 
int maxNodeNN
 
int iRecentCellLookup
 
bool dopingSet
 
std::vector< mNodemNodeVector
 
std::vector< mEdgemEdgeVector
 
std::vector< mCellmCellVector
 
std::vector< mLabelmLabelVector
 
std::vector< double > dopingVector
 
std::vector< double > xVector
 
std::vector< double > yVector
 
std::vector< int > visitCellFlagVec
 
std::map< std::string, mLabelmLabelMap
 
int ixMax
 
int iyMax
 
int ** nodeIndices
 
int ** edgeIndices
 
int ** cellIndices
 
std::vector< int > afVisitedVec
 
int * aiBegin
 
int * aiEnd
 
bool adjInfoAllocFlag
 
const DeviceOptionsdevOptions_
 
int sgplotLevel
 
bool useDefaultLabels
 

Detailed Description

Definition at line 119 of file N_DEV_PDE_2DMesh.h.

Constructor & Destructor Documentation

Xyce::Device::PDE_2DMesh::PDE_2DMesh ( const DeviceOptions do1,
int  sgplotLevel1 
)

Definition at line 79 of file N_DEV_PDE_2DMesh.C.

Xyce::Device::PDE_2DMesh::PDE_2DMesh ( const PDE_2DMesh right)

Definition at line 133 of file N_DEV_PDE_2DMesh.C.

Xyce::Device::PDE_2DMesh::~PDE_2DMesh ( )

Definition at line 359 of file N_DEV_PDE_2DMesh.C.

Xyce::Device::PDE_2DMesh::PDE_2DMesh ( )
private

Member Function Documentation

double Xyce::Device::PDE_2DMesh::areaAdjust ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3 
)
private

Definition at line 3344 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::calcAdjacencyInfo ( )
private

Definition at line 3795 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::cellNodes ( )
private

Definition at line 3423 of file N_DEV_PDE_2DMesh.C.

double Xyce::Device::PDE_2DMesh::compAngle ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3 
)

Definition at line 5042 of file N_DEV_PDE_2DMesh.C.

double Xyce::Device::PDE_2DMesh::computeAngle ( int  inode1,
int  inode2,
int  inode3 
)
private

Definition at line 3394 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::computeIntPB ( double &  x,
double &  y,
int  inodeA,
int  inodeB,
int  inodeC 
)
private

Definition at line 3199 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::dopingVectorExist ( )
inline

Definition at line 816 of file N_DEV_PDE_2DMesh.h.

void Xyce::Device::PDE_2DMesh::dumpMesh ( )

Definition at line 3033 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::elementNodes ( int  itri,
int *  ainode 
)
private

Definition at line 3592 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::errorCheckElectrodes ( int  numElectrodes,
std::map< std::string, PDE_2DElectrode * > &  elMap 
)
private

Definition at line 1565 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::fCCWorder ( int  inode1,
int  inode2,
int  inode3 
)
private

Definition at line 3545 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::findCell ( double  r,
double  z,
int &  isuccess,
int &  inode,
int &  iCell,
int  iStartCell = 0 
)

Definition at line 4749 of file N_DEV_PDE_2DMesh.C.

double Xyce::Device::PDE_2DMesh::findMinDist ( int  iCell,
double  r,
double  z 
)

Definition at line 4982 of file N_DEV_PDE_2DMesh.C.

mCell * Xyce::Device::PDE_2DMesh::getCell ( int  i)
inline

Definition at line 844 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::getDopingVector ( std::vector< double > &  cvec_tmp)

Definition at line 4203 of file N_DEV_PDE_2DMesh.C.

double * Xyce::Device::PDE_2DMesh::getDopingVector ( )
inline

Definition at line 819 of file N_DEV_PDE_2DMesh.h.

mEdge * Xyce::Device::PDE_2DMesh::getEdge ( int  i)
inline

Definition at line 839 of file N_DEV_PDE_2DMesh.h.

void Xyce::Device::PDE_2DMesh::getElementInfo ( int  itri,
int *  ainode,
int *  aiedge,
int *  aitri,
int *  auLabel 
)
private

Definition at line 3673 of file N_DEV_PDE_2DMesh.C.

mLabel * Xyce::Device::PDE_2DMesh::getLabel ( int  i)
inline

Definition at line 849 of file N_DEV_PDE_2DMesh.h.

mLabel * Xyce::Device::PDE_2DMesh::getLabel ( std::string &  name)

Definition at line 4248 of file N_DEV_PDE_2DMesh.C.

int Xyce::Device::PDE_2DMesh::getMaxNodeNN ( )
inline

Definition at line 806 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::getMaxSize ( )
inline

Definition at line 808 of file N_DEV_PDE_2DMesh.h.

mNode * Xyce::Device::PDE_2DMesh::getNode ( int  i)
inline

Definition at line 834 of file N_DEV_PDE_2DMesh.h.

int ** Xyce::Device::PDE_2DMesh::getNodeIndexVector ( )
inline

Definition at line 854 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::getNumCells ( )
inline

Definition at line 802 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::getNumEdges ( )
inline

Definition at line 800 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::getNumLabels ( )
inline

Definition at line 804 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::getNumNodes ( )
inline

Definition at line 798 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::getXMax ( )
inline

Definition at line 811 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::getXMin ( )
inline

Definition at line 812 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::getXVector ( std::vector< double > &  xvec_tmp)

Definition at line 4218 of file N_DEV_PDE_2DMesh.C.

double * Xyce::Device::PDE_2DMesh::getXVector ( )
inline

Definition at line 824 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::getYMax ( )
inline

Definition at line 813 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::getYMin ( )
inline

Definition at line 814 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::getYVector ( std::vector< double > &  yvec_tmp)

Definition at line 4233 of file N_DEV_PDE_2DMesh.C.

double * Xyce::Device::PDE_2DMesh::getYVector ( )
inline

Definition at line 829 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::initializeInternalMesh ( int  nx,
int  ny,
double  xlength,
double  ylength,
int  numElectrodes,
std::string &  outputMeshFileName,
std::map< std::string, PDE_2DElectrode * > &  elMap,
bool  cylFlag 
)

Definition at line 970 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::initializeMesh ( const std::string &  meshFileName_tmp)
virtual

Reimplemented from Xyce::Device::PDEMeshContainer.

Definition at line 414 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::initNodeAdjStructure ( NADJ nadj,
int  itri,
int  iVertex,
int  uIntLabel,
bool  fCW 
)
private

Definition at line 3705 of file N_DEV_PDE_2DMesh.C.

double Xyce::Device::PDE_2DMesh::interp ( double *  F,
double  r,
double  z 
)

Definition at line 4378 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::interpVector ( double *  F,
double  r,
double  z,
double &  xvec,
double &  yvec 
)

Definition at line 4465 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::labelEdgeType ( std::string &  labelName)

Definition at line 4181 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::labelNameExist ( std::string &  labelName)

Definition at line 4160 of file N_DEV_PDE_2DMesh.C.

double Xyce::Device::PDE_2DMesh::lengthAdjust ( double  x1,
double  y1,
double  x2,
double  y2 
)

Definition at line 3318 of file N_DEV_PDE_2DMesh.C.

PDE_2DMesh & Xyce::Device::PDE_2DMesh::operator= ( PDE_2DMesh const &  rhsMesh)

Definition at line 248 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::outputMeshInfo ( )

Definition at line 3183 of file N_DEV_PDE_2DMesh.C.

void Xyce::Device::PDE_2DMesh::printLabels ( )

Definition at line 3145 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::readSGFMeshFile ( const std::string &  meshFileName_tmp)
private

Definition at line 461 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::resizeMesh ( double  xlength,
double  ylength 
)

Definition at line 1054 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::scaleMesh ( double  xScale)

Definition at line 4275 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::setupDefaultLabels ( int  numberElectrodes)
private

Definition at line 1641 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::setupGeometry ( )
private

Definition at line 2959 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::setupInternalAdjacencyInfo ( )
private

Definition at line 1421 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::setupInternalLabels ( int  numberElectrodes,
std::map< std::string, PDE_2DElectrode * > &  elMap 
)
private

Definition at line 2448 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::setupInternalMesh ( int  nx,
int  ny,
double  xlength,
double  ylength 
)
private

Definition at line 1130 of file N_DEV_PDE_2DMesh.C.

bool Xyce::Device::PDE_2DMesh::writeSGFMeshFile ( const std::string &  meshFileName_tmp)
private

Definition at line 800 of file N_DEV_PDE_2DMesh.C.

Member Data Documentation

bool Xyce::Device::PDE_2DMesh::adjInfoAllocFlag
private

Definition at line 324 of file N_DEV_PDE_2DMesh.h.

std::vector<int> Xyce::Device::PDE_2DMesh::afVisitedVec
private

Definition at line 321 of file N_DEV_PDE_2DMesh.h.

int* Xyce::Device::PDE_2DMesh::aiBegin
private

Definition at line 322 of file N_DEV_PDE_2DMesh.h.

int* Xyce::Device::PDE_2DMesh::aiEnd
private

Definition at line 323 of file N_DEV_PDE_2DMesh.h.

int** Xyce::Device::PDE_2DMesh::cellIndices
private

Definition at line 318 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::circum
private

Definition at line 269 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::cylGeom

Definition at line 241 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::depth
private

Definition at line 272 of file N_DEV_PDE_2DMesh.h.

const DeviceOptions* Xyce::Device::PDE_2DMesh::devOptions_
private

Definition at line 326 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::dopingSet
private

Definition at line 298 of file N_DEV_PDE_2DMesh.h.

std::vector<double> Xyce::Device::PDE_2DMesh::dopingVector
private

Definition at line 305 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::dx
private

Definition at line 257 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::dy
private

Definition at line 258 of file N_DEV_PDE_2DMesh.h.

int** Xyce::Device::PDE_2DMesh::edgeIndices
private

Definition at line 317 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::externalMeshFlag
private

Definition at line 251 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::invCircum
private

Definition at line 270 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::invVol
private

Definition at line 266 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::iRecentCellLookup
private

Definition at line 288 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::ixMax
private

Definition at line 314 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::iyMax
private

Definition at line 315 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::maxNodeNN
private

Definition at line 286 of file N_DEV_PDE_2DMesh.h.

std::vector<mCell> Xyce::Device::PDE_2DMesh::mCellVector
private

Definition at line 302 of file N_DEV_PDE_2DMesh.h.

std::vector<mEdge> Xyce::Device::PDE_2DMesh::mEdgeVector
private

Definition at line 301 of file N_DEV_PDE_2DMesh.h.

std::string Xyce::Device::PDE_2DMesh::meshFileName
private

Definition at line 249 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::meshScaledFlag
private

Definition at line 263 of file N_DEV_PDE_2DMesh.h.

std::map<std::string, mLabel> Xyce::Device::PDE_2DMesh::mLabelMap
private

Definition at line 311 of file N_DEV_PDE_2DMesh.h.

std::vector<mLabel> Xyce::Device::PDE_2DMesh::mLabelVector
private

Definition at line 303 of file N_DEV_PDE_2DMesh.h.

std::vector<mNode> Xyce::Device::PDE_2DMesh::mNodeVector
private

Definition at line 300 of file N_DEV_PDE_2DMesh.h.

int** Xyce::Device::PDE_2DMesh::nodeIndices
private

Definition at line 316 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numAdj
private

Definition at line 274 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numBndryNodes
private

Definition at line 283 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numCells
private

Definition at line 279 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numEdges
private

Definition at line 278 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numLabels
private

Definition at line 280 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numNodes
private

Definition at line 277 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::numRegLabels
private

Definition at line 281 of file N_DEV_PDE_2DMesh.h.

int Xyce::Device::PDE_2DMesh::sgplotLevel
private

Definition at line 328 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::surfArea
private

Definition at line 268 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::useDefaultLabels
private

Definition at line 330 of file N_DEV_PDE_2DMesh.h.

std::vector<int> Xyce::Device::PDE_2DMesh::visitCellFlagVec
private

Definition at line 309 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::vol
private

Definition at line 265 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::x0
private

Definition at line 262 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::xMax
private

Definition at line 253 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::xMin
private

Definition at line 255 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::xRatio
private

Definition at line 260 of file N_DEV_PDE_2DMesh.h.

std::vector<double> Xyce::Device::PDE_2DMesh::xVector
private

Definition at line 306 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::yMax
private

Definition at line 254 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::yMin
private

Definition at line 256 of file N_DEV_PDE_2DMesh.h.

double Xyce::Device::PDE_2DMesh::yRatio
private

Definition at line 260 of file N_DEV_PDE_2DMesh.h.

std::vector<double> Xyce::Device::PDE_2DMesh::yVector
private

Definition at line 307 of file N_DEV_PDE_2DMesh.h.


The documentation for this class was generated from the following files: