ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
device.h File Reference

Go to the source code of this file.

Typedefs

typedef viennashe_device_implviennashe_device
 

Enumerations

enum  viennashe_topology_type_id {
  viennashe_line_1d , viennashe_quadrilateral_2d , viennashe_triangular_2d , viennashe_hexahedral_3d ,
  viennashe_tetrahedral_3d
}
 Enum of available toplogical mesh configurations. More...
 

Functions

VIENNASHE_EXPORT viennasheErrorCode viennashe_free_device (viennashe_device dev)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_initalize_device (viennashe_device dev, viennashe_material_id *material_ids, double *doping_n, double *doping_p)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_material_on_segment (viennashe_device dev, viennashe_material_id material_id, viennashe_index_type segment_id)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_doping_n_on_segment (viennashe_device dev, double doping_n, viennashe_index_type segment_id)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_doping_p_on_segment (viennashe_device dev, double doping_p, viennashe_index_type segment_id)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_contact_potential_cells (viennashe_device dev, viennashe_index_type *cell_ids, double *values, viennashe_index_type len)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_contact_potential_segment (viennashe_device dev, double value, viennashe_index_type segment_id)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_create_1d_device (viennashe_device *dev, double len_x, size_t points_x)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device (viennashe_device *dev, viennashe_topology_type_id topology_id, double **vertices, viennashe_index_type num_vertices, viennashe_index_type **cells, viennashe_index_type num_cells, viennashe_index_type *segmentation)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device_flat (viennashe_device *dev, viennashe_topology_type_id topology_id, double *vertices, viennashe_index_type num_vertices, viennashe_index_type *cells, viennashe_index_type num_cells, viennashe_index_type *segmentation)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device_from_file (viennashe_device *dev, viennashe_topology_type_id topology_id, char const *filename)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices (viennashe_device dev, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_cells (viennashe_device dev, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_segments (viennashe_device dev, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices_on_segment (viennashe_device dev, viennashe_index_type segment_id, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_cells_on_segment (viennashe_device dev, viennashe_index_type segment_id, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_dimension (viennashe_device dev, viennashe_index_type *dim)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices_per_cell (viennashe_device dev, viennashe_index_type *num)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_grid (viennashe_device dev, double **vertices, viennashe_index_type *num_vertices, viennashe_index_type **cells, viennashe_index_type *num_cells)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nth_vertex (viennashe_device dev, viennashe_index_type vid, double *x, double *y, double *z)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nth_cell (viennashe_device dev, viennashe_index_type cid, viennashe_index_type *vertex_id_list)
 

Typedef Documentation

◆ viennashe_device

Definition at line 37 of file device.h.

Enumeration Type Documentation

◆ viennashe_topology_type_id

Enum of available toplogical mesh configurations.

Enumerator
viennashe_line_1d 
viennashe_quadrilateral_2d 
viennashe_triangular_2d 
viennashe_hexahedral_3d 
viennashe_tetrahedral_3d 

Definition at line 31 of file device.h.

Function Documentation

◆ viennashe_create_1d_device()

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_1d_device ( viennashe_device dev,
double  len_x,
size_t  points_x 
)
Examples
resistor1d-c.c.

◆ viennashe_create_device()

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device ( viennashe_device dev,
viennashe_topology_type_id  topology_id,
double **  vertices,
viennashe_index_type  num_vertices,
viennashe_index_type **  cells,
viennashe_index_type  num_cells,
viennashe_index_type segmentation 
)

◆ viennashe_create_device_flat()

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device_flat ( viennashe_device dev,
viennashe_topology_type_id  topology_id,
double *  vertices,
viennashe_index_type  num_vertices,
viennashe_index_type cells,
viennashe_index_type  num_cells,
viennashe_index_type segmentation 
)

◆ viennashe_create_device_from_file()

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_device_from_file ( viennashe_device dev,
viennashe_topology_type_id  topology_id,
char const *  filename 
)

◆ viennashe_free_device()

VIENNASHE_EXPORT viennasheErrorCode viennashe_free_device ( viennashe_device  dev)

The device!

Examples
resistor1d-c.c.

◆ viennashe_get_dimension()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_dimension ( viennashe_device  dev,
viennashe_index_type dim 
)

◆ viennashe_get_grid()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_grid ( viennashe_device  dev,
double **  vertices,
viennashe_index_type num_vertices,
viennashe_index_type **  cells,
viennashe_index_type num_cells 
)

◆ viennashe_get_nth_cell()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nth_cell ( viennashe_device  dev,
viennashe_index_type  cid,
viennashe_index_type vertex_id_list 
)

◆ viennashe_get_nth_vertex()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nth_vertex ( viennashe_device  dev,
viennashe_index_type  vid,
double *  x,
double *  y,
double *  z 
)

◆ viennashe_get_num_cells()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_cells ( viennashe_device  dev,
viennashe_index_type num 
)
Examples
resistor1d-c.c.

◆ viennashe_get_num_cells_on_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_cells_on_segment ( viennashe_device  dev,
viennashe_index_type  segment_id,
viennashe_index_type num 
)

◆ viennashe_get_num_segments()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_segments ( viennashe_device  dev,
viennashe_index_type num 
)

◆ viennashe_get_num_vertices()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices ( viennashe_device  dev,
viennashe_index_type num 
)

◆ viennashe_get_num_vertices_on_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices_on_segment ( viennashe_device  dev,
viennashe_index_type  segment_id,
viennashe_index_type num 
)

◆ viennashe_get_num_vertices_per_cell()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_num_vertices_per_cell ( viennashe_device  dev,
viennashe_index_type num 
)

◆ viennashe_initalize_device()

VIENNASHE_EXPORT viennasheErrorCode viennashe_initalize_device ( viennashe_device  dev,
viennashe_material_id material_ids,
double *  doping_n,
double *  doping_p 
)
Examples
resistor1d-c.c.

◆ viennashe_set_contact_potential_cells()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_contact_potential_cells ( viennashe_device  dev,
viennashe_index_type cell_ids,
double *  values,
viennashe_index_type  len 
)
Examples
resistor1d-c.c.

◆ viennashe_set_contact_potential_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_contact_potential_segment ( viennashe_device  dev,
double  value,
viennashe_index_type  segment_id 
)

◆ viennashe_set_doping_n_on_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_doping_n_on_segment ( viennashe_device  dev,
double  doping_n,
viennashe_index_type  segment_id 
)

◆ viennashe_set_doping_p_on_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_doping_p_on_segment ( viennashe_device  dev,
double  doping_p,
viennashe_index_type  segment_id 
)

◆ viennashe_set_material_on_segment()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_material_on_segment ( viennashe_device  dev,
viennashe_material_id  material_id,
viennashe_index_type  segment_id 
)