Xyce  6.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 120 of file N_DEV_PDE_2DMesh.h.

Constructor & Destructor Documentation

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

Definition at line 91 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 145 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 371 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 3403 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3854 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3482 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 5119 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3453 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 3256 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 817 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 3090 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3651 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 1614 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3604 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 4824 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 5059 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 845 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 4266 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 820 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 840 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 3732 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 850 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 4311 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 807 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 809 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 835 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 855 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 803 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 801 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 805 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 799 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 812 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 813 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 4281 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 825 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 814 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 815 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 4296 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 830 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 1002 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 426 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 3764 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 4443 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 4530 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 4244 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 4223 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3377 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 260 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3240 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3202 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 474 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 1088 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 4338 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 1690 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 3016 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 1473 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 2501 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 1172 of file N_DEV_PDE_2DMesh.C.

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

Definition at line 832 of file N_DEV_PDE_2DMesh.C.

Member Data Documentation

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

Definition at line 325 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 322 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 323 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 324 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 319 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 270 of file N_DEV_PDE_2DMesh.h.

bool Xyce::Device::PDE_2DMesh::cylGeom

Definition at line 242 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 273 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 327 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 299 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 306 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 258 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 259 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 318 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 252 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 271 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 267 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 289 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 315 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 316 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 287 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 303 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 302 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 250 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 264 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 312 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 304 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 301 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 317 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 275 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 284 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 280 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 279 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 281 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 278 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 282 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 329 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 269 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 331 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 310 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 266 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 263 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 254 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 256 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 261 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 307 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 255 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 257 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 261 of file N_DEV_PDE_2DMesh.h.

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

Definition at line 308 of file N_DEV_PDE_2DMesh.h.


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