30 template <
typename SimulatorT >
44 template <
typename SimulatorT >
48 sim.set_initial_guess(name, tacc);
156 viennashe::log::error() <<
"ERROR! set_initial_guess_from_other_sim(): The simulator (sim) must be valid!" << std::endl;
161 viennashe::log::error() <<
"ERROR! set_initial_guess_from_other_sim(): The simulator (other_sim) must be valid!" << std::endl;
166 viennashe::log::error() <<
"ERROR! set_initial_guess_from_other_sim(): The simulators (sim and other_sim)"
167 <<
" must be operating on the same grid!" << std::endl;
196 viennashe::log::error() <<
"ERROR! set_initial_guess_from_other_sim(): Unkown grid type!" << std::endl;
202 viennashe::log::error() <<
"ERROR! set_initial_guess_from_other_sim(): Quantity not found exception! What? '" << ex.what() <<
"'" << std::endl;
226 viennashe::log::error() <<
"ERROR! set_initial_guess(): The simulator (sim) must be valid!" << std::endl;
261 viennashe::log::error() <<
"ERROR! set_initial_guess(): Quantity not found exception! What? '" << ex.what() <<
"'" << std::endl;
Maps a C-array to an element based accessor. Uses element.id() as an index to the C-array.
The main SHE configuration class. To be adjusted by the user for his/her needs.
Exception in case a (requested) quantity cannot be found.
void run()
Launches the solver. Uses the built-in potential as initial guess for the potential and the doping co...
viennashe_config_impl * viennashe_config
The internal C++ namespace of the library.
void set_initial_guess(DeviceT const &device, QuantityT &quan, BoundaryValueAccessorT const &initial_guess_accessor)
Sets the initial guess per quantity and device.
logger< true > error()
Used to log errors. The logging level is logERROR.
std::string hole_density()
std::string electron_density()
VIENNASHE_EXPORT viennasheErrorCode viennashe_run(viennashe_simulator sim)
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_initial_guess_from_other_sim(viennashe_simulator sim, viennashe_simulator other_sim)
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_initial_guess(viennashe_simulator sim, const char *name, double *values)
VIENNASHE_EXPORT viennasheErrorCode viennashe_free_simulator(viennashe_simulator sim)
VIENNASHE_EXPORT viennasheErrorCode viennashe_create_simulator(viennashe_simulator *sim, viennashe_device dev, viennashe_config conf)
Internal C++ to C wrapper for the device. Has typedefs and destructor.
devq2d_type * device_quad_2d
devt2d_type * device_tri_2d
devh3d_type * device_hex_3d
devt3d_type * device_tet_3d
Internal C++ to C wrapper for the simulator. Has typedefs and destructor.
viennashe::simulator< dev1d_type > sim1d_type
viennashe::simulator< devq2d_type > simq2d_type
viennashe::simulator< devh3d_type > simh3d_type
viennashe::simulator< devt3d_type > simt3d_type
viennashe::simulator< devt2d_type > simt2d_type
struct viennashe_simulator_impl viennashe_simulator_impl
Simulator implementation type.
Contains all viennashe includes and most of the C++/C-wrappers. Contains macros.
#define CHECK_ARGUMENT_FOR_NULL(arg, pos, name)