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

Defines a set of setup routines and checkers for simulators. More...

#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>
#include <limits>
#include "viennashe/forwards.h"
#include "viennashe/accessors.hpp"
#include "viennashe/setters.hpp"
#include "viennashe/device.hpp"
#include "viennashe/exception.hpp"
#include "viennashe/util/misc.hpp"
#include "viennashe/physics/physics.hpp"
#include "viennashe/materials/all.hpp"
#include "viennashe/util/filter.hpp"
#include "viennashe/util/checks.hpp"
#include "viennashe/log/log.hpp"
#include "viennagrid/algorithm/norm.hpp"
#include "viennagrid/algorithm/quantity_transfer.hpp"
#include "viennagrid/algorithm/closest_points.hpp"
#include "viennagrid/algorithm/distance.hpp"
#include "viennagrid/mesh/segmentation.hpp"
#include "viennagrid/mesh/mesh_operations.hpp"

Go to the source code of this file.

Namespaces

namespace  viennashe
 The main ViennaSHE namespace. All functionality resides inside this namespace.
 
namespace  viennashe::detail
 Namespace for implementation details. Typically not of interest for the library user.
 

Functions

template<typename ElementTagT , typename DeviceType , typename AccessorType , typename FilterType , typename CheckerType >
bool viennashe::detail::check_quantity_on_ncell (DeviceType const &device, AccessorType const &accessor, FilterType const &filter, CheckerType const &checker)
 Ensures that a quantity is available on n-cells of a certain dimension. If this is not the case, the quantity is transferred (averaged/interpolated) from cells of other dimension. An exception is thrown if the fallback-transfer fails. More...
 
template<typename TagT , typename FallbackTagT , typename DeviceType , typename AccessorType , typename FilterType , typename CheckerType , typename FallbackAccessorType , typename FallbackSetterType , typename FallbackAveragerType , typename FallbackFilterType , typename FallbackCheckerType >
bool viennashe::detail::setup_and_check_quantity_on_ncell_with_fallback (DeviceType &device, AccessorType const &accessor, FilterType const &filter, CheckerType const &checker, FallbackAccessorType const &fallback_accessor, FallbackSetterType &fallback_setter, FallbackAveragerType const &fallback_averager, FallbackFilterType const &fallback_filter, FallbackCheckerType const &fallback_checker)
 Ensures that a quantity is available on n-cells of a certain dimension. If this is not the case, the quantity is transferred (averaged/interpolated) from cells of other dimension. More...
 
invalid_doping_in_device_exception viennashe::detail::get_invalid_doping_exception (viennashe::carrier_type_id ctype)
 Helper routine for creating the exception thrown if the donator doping is found to be invalid on the device. More...
 
template<typename DeviceType >
void viennashe::setup_doping_on_vertices (DeviceType &device, viennashe::carrier_type_id ctype)
 Sets up donator or acceptor doping on vertices. If doping is provided on cells, it is interpolated accordingly. More...
 
template<typename DeviceType >
void viennashe::setup_doping_on_vertices (DeviceType &device)
 Sets up donator and acceptor doping on vertices. If doping is provided on cells, it is interpolated accordingly. More...
 

Detailed Description

Defines a set of setup routines and checkers for simulators.

Definition in file simulator_setup.hpp.