ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mapping.hpp File Reference

Distributes the unknown indices ('mapping') for the Poisson equation and the continuity equations. More...

#include <iostream>
#include <fstream>
#include <vector>
#include <memory>
#include <petsc.h>
#include "viennagrid/mesh/mesh.hpp"
#include "viennashe/forwards.h"
#include "viennashe/materials/all.hpp"
#include "viennashe/simulator_quantity.hpp"
#include "viennashe/she/timestep_quantities.hpp"
#include "viennashe/she/assemble_common.hpp"
#include "viennashe/util/misc.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 DeviceType , typename VertexT >
long viennashe::create_mapping (DeviceType const &device, viennashe::unknown_quantity< VertexT > &quantity, long start_index=0)
 Maps unkown indices in the system matrix to the given unknown spatial quantity. More...
 
template<typename DeviceType , typename CellType , typename SHEQuantity >
void viennashe::detail::map_cell (DeviceType const &device, CellType const &cell, std::size_t index_H, SHEQuantity &quan, viennashe::config const &conf, long &current_index)
 Handles the mapping of a SHE unkown quantity on a single cell and H-space index. More...
 
template<typename DeviceType , typename SHEQuantity , typename FacetType >
void viennashe::detail::map_facet (DeviceType const &device, SHEQuantity &quan, viennashe::config const &conf, FacetType const &facet, std::size_t index_H, long &current_index)
 Assigns an unknown index for odd SHE unknowns to a facet. Preconditions: More...
 
template<typename DeviceType , typename SHEQuantity >
long viennashe::create_even_mapping (DeviceType const &device, SHEQuantity &quan, viennashe::config const &conf, long unknown_offset=0)
 Distributes SHE unknown indices (dofs) over the device. More...
 
template<typename DeviceType , typename SHEQuantity >
long viennashe::create_odd_mapping (DeviceType const &device, SHEQuantity &quan, viennashe::config const &conf, long unknown_offset=0)
 Distributes SHE unknown indices (dofs) over the device. More...
 
template<typename DeviceT >
map_info_type viennashe::create_mapping (DeviceT const &device, viennashe::she::timestep_quantities< DeviceT > &quantities, viennashe::config const &conf)
 Creates an unkown mapping for spatial quantities. More...
 

Detailed Description

Distributes the unknown indices ('mapping') for the Poisson equation and the continuity equations.

Definition in file mapping.hpp.