| ▼ doc | |
| manual | |
| ▼ examples | |
| ► devices | |
| half-trigate-PETSC.cpp | |
| half-trigate.cpp | |
| mos1d-dg.cpp | |
| mosfet-dg.cpp | |
| mosfet-PETSC.cpp | |
| mosfet.cpp | |
| nin-diode-1d.cpp | |
| nin-diode-2d-hde.cpp | |
| nin-diode-2d.cpp | |
| np-diode-bipolar.cpp | |
| resistor.cpp | |
| ► libviennashe | |
| resistor1d-c.c | |
| ► python | |
| resistor.py | |
| ▼ libviennashe | |
| ► include | |
| config.h | |
| device.h | |
| error.h | |
| libviennashe.h | |
| material.h | |
| output.h | |
| quantity.h | |
| simulator.h | |
| sys.h | |
| ► src | |
| config.cpp | |
| device.cpp | |
| libviennashe.cpp | |
| material.cpp | |
| output.cpp | |
| quantity.cpp | |
| quantity_register.hpp | Common routines for the registry of simulator dependent quantities |
| quantity_wrappers.hpp | Routines to wrap ViennaSHE quantities (doping, potential, distribution functions, ...) |
| simulator.cpp | |
| viennashe_all.hpp | Contains all viennashe includes and most of the C++/C-wrappers. Contains macros |
| ▼ src | |
| ► solvers | |
| ► native | |
| dense_linear_solver.hpp | Implements a dense Gauss solver |
| ► petsc | |
| petsc.hpp | |
| petsc_solver.hpp | |
| ► viennacl | |
| all.h | Convenience header file for all the ViennaCL solver bindings |
| parallel_linear_solver.hpp | Provides bindings to a multithreaded block-ILU solver based on functionality in ViennaCL |
| serial_linear_solver.hpp | Provides bindings to a serial ILUT-based solver shipped with ViennaCL |
| log_keys.h | Defines all the log keys used within the viennashe::solvers namespace |
| solve.hpp | Provides a generic solver layer, providing bindings to a dense Gauss solver, ViennaCL, etc |
| solver.cpp | |
| ▼ tests | |
| ► src | |
| common.hpp | Contains common functions, functors and other classes often needed by the tests |
| equilibrium_resistor.cpp | |
| external_1.cpp | |
| external_2.cpp | |
| hde_1d.cpp | |
| logtest.cpp | |
| markov_chains.cpp | |
| mos1d_dg.hpp | Contains common code for the 1D MOS DG tests |
| mos1d_dg_n.cpp | |
| mos1d_dg_p.cpp | |
| mos1d_potential_kink.cpp | |
| quantity_transfer.cpp | |
| random_numbers.cpp | |
| simple_impurity_scattering.cpp | |
| spherical_harmonics.cpp | |
| spherical_harmonics_iter.cpp | |
| ushape_2d.cpp | |
| ▼ viennashe | |
| ► io | |
| add_to_writer.hpp | Convenience functions for viennagrid::io (mostly adders) |
| all.hpp | Convenience header, which includes all I/O functionality available |
| device_reader_vtk.hpp | |
| exception.hpp | All the exceptions used within the viennashe::io namespace |
| gnuplot_writer.hpp | |
| gnuplot_writer_edf.hpp | Writes the energy distribution function to a file which can be processed by Gnuplot |
| initial_guess_writer.hpp | A writer function for writing the initial guess to an output file |
| log_keys.h | Defines the log keys used within the viennashe::io namespace |
| she_vtk_writer.hpp | Provides a VTK writer for the computed distribution function. Outputs the (x, H)-space |
| vector.hpp | Simple routines for reading a vector from file, or writing a vector to file |
| ► log | |
| log.hpp | A logging facility providing fine-grained control over logging in ViennaSHE |
| nullstream.hpp | Provides a streamer which discards all inputs. Similar in effect to a redirection to /dev/null. Used if logging is disabled |
| ► materials | |
| all.hpp | A very simple material database. Needs to be replaced by something more versatile soon |
| dos_RSi.hpp | Contains the density of states (DOS) and group velocity for electrons and holes in relaxed silicon (RSi) |
| exception.hpp | Contains all the exceptions used for accessing materials |
| ► math | |
| bernoulli.hpp | Implementation of the Bernoulli function |
| constants.hpp | Provides a number of fundamental math constants |
| exception.hpp | All the exceptions used within the viennashe::math namespace |
| integrator.hpp | Implementation of numerical integration routines |
| linalg_util.hpp | Implementation of various utilities related to linear algebra |
| log_keys.h | Defines the log keys used within the viennashe::math namespace |
| random.hpp | Implementation of pseudo-random number generators |
| spherical_harmonics.hpp | Implementation of spherical harmonics plus helper functions |
| ► models | |
| ► markovchain | |
| chain.hpp | Implements the concept of a state (in a finite-state diagram) and markov chains |
| exception.hpp | Contains exceptions for markov-models in viennashe::models |
| reaction_rates.hpp | Contains the basic reaction rate interface |
| ssa.hpp | Contains an impelemtation of the SSA algorithm for Markov-Chains (cf. viennashe/models/markovchain/chain.hpp) |
| all.hpp | Contains the basic models interface |
| bandgap.hpp | Contains a basic/constant and an extended bandgap model |
| carrier_mass.hpp | Contains the basic carrier mass models (Taylor series) |
| exception.hpp | Contains exceptions for viennashe::models |
| lineshape.hpp | Contains lineshape function "models" |
| mobility.hpp | |
| mobility_model.hpp | Contains basic mobility models for lattice, impurity, field and surface mobility changes |
| mobility_parameters.hpp | Contains PODs for the mobility parameters of the mobility models |
| srh_kinetics.hpp | |
| tunneling.hpp | Contains tunneling models |
| ► phonon | |
| joule_heating.hpp | |
| ► physics | |
| constants.hpp | Provides a number of fundamental constants. All constants in SI units |
| dispersion.hpp | Contains the dispersion relations for different materials and different polarities |
| exception.hpp | All the exceptions used within the viennashe::physics namespace |
| physics.hpp | Returns a few helper routines for computing physical quantities. To be replaced in the future |
| ► postproc | |
| all.hpp | Convenience header, which includes all postprocessing quantities available |
| current_density.hpp | Computes the current density (both Jn and Jp) after using a drift diffusion solution |
| displacement_current.hpp | Computes the electric field from a potential |
| electric_field.hpp | Computes the electric field from a potential |
| electric_flux_density.hpp | Computes the electric flux density from a potential |
| potential.hpp | Writer for the potential |
| terminal_current.hpp | Convenience functions to access the terminal (contact) current |
| ► she | |
| ► postproc | |
| all.hpp | Convenience header, which includes all postprocessing quantities available |
| carrier_density.hpp | Provides an accessor for the carrier density |
| carrier_energy.hpp | Provides an accessor for the average carrier energy |
| carrier_velocity.hpp | Provides an accessor for computing the average carrier drift velocity in each (semiconductor) cell |
| current_density.hpp | Provides an accessor for the current density |
| expansion_order.hpp | Provides an accessor for the expansion order in (x,H)-space |
| macroscopic.hpp | Writer for arbitrary macroscopic quantities |
| ► scattering | |
| acoustic_phonon_scattering.hpp | Implements the acoustic phonon scattering processes |
| all.hpp | File to gather all scattering operators |
| assemble_ee_scattering.hpp | Implements the assembly for electron-electron scattering |
| common.hpp | Common classes for scattering operators |
| config.hpp | Scattering operators (and their parameters) are defined here |
| fixed_charge_scattering.hpp | Implements the scattering of carriers with fixed charges |
| impact_ionization_scattering.hpp | Implements impact ionization scattering processes |
| impurity_scattering.hpp | Implements the ionized impurity scattering processes |
| optical_phonon_scattering.hpp | Implements the optical phonon scattering processes |
| surface_acoustic_phonon_scattering.hpp | |
| surface_roughness_scattering.hpp | |
| surface_scattering.hpp | Implements the surface scattering processes using a phenomenological description (Lombardi) |
| trapped_charge_scattering.hpp | Implements the trapped charge scattering processes |
| assemble_all.hpp | Generic assembly of traps is implemented here |
| assemble_boundary.hpp | |
| assemble_common.hpp | Common routines for the assembly of SHE equations |
| assemble_scattering.hpp | Generic assembly of the scattering operator(s) is implemented here |
| assemble_streaming.hpp | Assembly of the free-streaming operator is implemented here |
| assemble_timederivative.hpp | |
| assemble_traps.hpp | Generic assembly of traps is implemented here. At the moment only SRH type traps are supported |
| boundary_conditions.hpp | Writes the SHE boundary conditions to the mesh |
| df_wrappers.hpp | Provides a convenience wrapper for accessing the distribution function coefficients over the device |
| eliminate.hpp | Implements the elimination and the recovery of odd-order unknowns from the discrete system of equations |
| exception.hpp | Provides the exceptions used inside the viennashe::she namespace |
| expansion_order.hpp | Provides all routines for distributing unknown indices (dofs) over the device. Includes expansion order smoothing routines |
| harmonics_coupling.hpp | Provides the SHE coupling matrices and computes higher-order coupling matrices if required. May be replaced by ViennaMath in the future |
| linear_solver.hpp | Provides the linear solvers for SHE |
| log_keys.h | Defines the log keys used within the viennashe::she namespace |
| rescaling.hpp | Rescales the linear system such that unknowns are approximately the same order of magnitude |
| setup_energies.hpp | Writes the kinetic energies to each nodes in the (x,H)-domain |
| she_quantity.hpp | Defines a SHE quantity in (x, H)-space for use within the solvers of ViennaSHE |
| timestep_quantities.hpp | A container of all quantities defined for a certain timestep t |
| transfer_to_new_h_space.hpp | Interpolation of a solution defined in one H-space to another H-space (required by Newton's method) |
| ► solvers | |
| config.hpp | The SHE configuration class is defined here |
| exception.hpp | Provides the exceptions used inside the viennashe::she namespace |
| forwards.h | Forward declarations for a generic solver layer, providing bindings to a native Gauss solver, ViennaCL, etc |
| ► util | |
| block_matrix_writer.hpp | Writes a possibly scaled block matrix to the system matrix. Includes similar functionality for computing residual contributions |
| checks.hpp | Defines a set of checker functors for micro-tests within ViennaSHE |
| dual_box_flux.hpp | Helper routines for projecting normal components of a vector-valued quantity defined on edges to vertices (e.g. for visualization purposes) |
| dump_device_mesh.hpp | |
| enable_if.hpp | Simple enable-if variant that uses the SFINAE pattern |
| exception.hpp | Defines all exceptions used/thrown in the viennashe/util/ namespace |
| filter.hpp | Defines several filter functors for the device. A filter functor returns true if the supplied argument is accepted, false otherwise |
| generate_device.hpp | Contains a very simple mesh generator (ortho-grids) for one and two spatial dimensions |
| log_keys.h | Defines the log keys used within the viennashe::util namespace |
| misc.hpp | Miscellaneous utilities |
| smooth_doping.hpp | Routines for ensuring a constant doping along contacts |
| timer.hpp | Contains a timer class. Contains one windows implementation and one *NIX implementation |
| accessors.hpp | Contains the definition of per-device accessors (read-only!) for various quantities |
| assemble.hpp | Dimension-independent assembling routines for the Drift-diffusion model using a Newton scheme or Gummel scheme for self-consistency |
| config.hpp | The SHE configuration class is defined here |
| core.hpp | Convenience header, which includes all core functionality available in ViennaSHE |
| device.hpp | Contains the definition of a device class independent of the actual macroscopic model to be solved |
| exception.hpp | Provides the exceptions used in the main viennashe namespace |
| forwards.h | Contains forward declarations and definition of small classes that must be defined at an early stage |
| log_keys.h | Defines the log keys used within the main viennashe:: namespace |
| mapping.hpp | Distributes the unknown indices ('mapping') for the Poisson equation and the continuity equations |
| scharfetter_gummel.hpp | Scharfetter-Gummel stabilization of the continuity equations |
| setters.hpp | Contains the definition of convenience functors for accessing device quantities (see class device). Does not contain simulator-specific setters! |
| simulator.hpp | Implements the SHE simulator classes (both self-consistent and non-self-consistent) |
| simulator_quantity.hpp | Defines a generic simulator quantity for use within the solvers of ViennaSHE |
| simulator_setup.hpp | Defines a set of setup routines and checkers for simulators |
| trap_level.hpp | Contains the definition of a trap level |
| version.hpp | Convenience functions for returning the current version of ViennaSHE |
| changelog | |