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

Provides all routines for distributing unknown indices (dofs) over the device. Includes expansion order smoothing routines. More...

#include <iostream>
#include "viennagrid/element/element.hpp"
#include "viennagrid/mesh/mesh.hpp"
#include "viennagrid/mesh/coboundary_iteration.hpp"
#include "viennashe/util/misc.hpp"
#include "viennashe/forwards.h"
#include "viennashe/materials/all.hpp"
#include "viennashe/physics/constants.hpp"
#include "viennashe/config.hpp"
#include "viennashe/she/assemble_common.hpp"
#include "viennashe/simulator_quantity.hpp"
#include "viennashe/she/timestep_quantities.hpp"
#include "viennashe/she/she_quantity.hpp"
#include "viennashe/she/exception.hpp"
#include "viennashe/util/filter.hpp"
#include "viennashe/log/log.hpp"
#include "viennashe/she/log_keys.h"

Go to the source code of this file.

Namespaces

namespace  viennashe
 The main ViennaSHE namespace. All functionality resides inside this namespace.
 
namespace  viennashe::she
 
namespace  viennashe::she::detail
 

Functions

template<typename DeviceType , typename SHEQuantity >
void viennashe::she::lower_expansion_order_near_bandedge (DeviceType const &device, SHEQuantity &quan)
 Assigns the various expansion orders to the device. Uniform expansion order implemented here. More...
 
template<typename DeviceType , typename SHEQuantity >
void viennashe::she::smooth_expansion_order (DeviceType const &device, SHEQuantity &quan)
 Smoothes the expansion order over the device such that neighboring vertices differ in their expansion order by less than two. More...
 
template<typename DeviceType , typename SHEQuantity >
void viennashe::she::write_expansion_order_to_facets (DeviceType &device, SHEQuantity &quan)
 Writes expansion orders on edges. Edge expansion order is given as max(order(v1), order(v2)), where v1 and v2 denote the cells of the facet. More...
 
template<typename DeviceType , typename VertexT , typename EdgeT >
void viennashe::she::detail::distribute_expansion_orders_impl (DeviceType const &device, viennashe::she::unknown_she_quantity< VertexT, EdgeT > &quan, viennashe::config const &conf)
 Assigns the various expansion orders to the device. This is the implementation. More...
 
template<typename DeviceType , typename VertexT , typename EdgeT >
void viennashe::she::distribute_expansion_orders (DeviceType &device, viennashe::she::unknown_she_quantity< VertexT, EdgeT > &quan, viennashe::config const &conf)
 Assigns the various expansion orders to the device. This is the public interface. More...
 
template<typename DeviceType >
void viennashe::she::distribute_expansion_orders (DeviceType const &device, timestep_quantities< DeviceType > &quantities, viennashe::config const &conf)
 

Detailed Description

Provides all routines for distributing unknown indices (dofs) over the device. Includes expansion order smoothing routines.

Definition in file expansion_order.hpp.