Diode Solver using continuous approximation spaces solve \( -\Delta u = f\) on \(\Omega\) and \(u= g\) on \(\Gamma\)
| Dim | the geometric dimension of the problem (e.g. Dim=1, 2 or 3) |
Inheritance diagram for Diode:Public Types | |
|
typedef boost::shared_ptr < backend_type > | backend_ptrtype |
| linear algebra backend factory shared_ptr<> type | |
| typedef Backend< value_type > | backend_type |
| linear algebra backend factory | |
|
typedef bases< Lagrange< Order, Scalar, Discontinuous > > | basis_type |
| the basis type of our approximation space | |
|
typedef bases< Lagrange< Order, Scalar > > | c_basis_type |
| typedef c_space_type::element_type | c_element_type |
|
typedef boost::shared_ptr < c_space_type > | c_space_ptrtype |
|
typedef FunctionSpace < mesh_type, c_basis_type > | c_space_type |
| typedef Simplex< 2, 1 > | convex1_type |
| typedef Simplex< 2, OrderGeo > | convex_type |
| geometry entities type composing the mesh, here Simplex in Dimension Dim of Order 2 | |
| typedef space_type::element_type | element_type |
| an element type of the approximation function space | |
|
typedef boost::shared_ptr < export_type > | export_ptrtype |
| the exporter factory (shared_ptr<> type) | |
|
typedef Exporter< mesh_type, OrderGeo > | export_type |
| the exporter factory type | |
|
typedef boost::shared_ptr < mesh_type > | mesh_ptrtype |
| mesh shared_ptr<> type | |
| typedef Mesh< convex_type > | mesh_type |
| mesh type | |
|
typedef boost::shared_ptr < space_type > | space_ptrtype |
| the approximation function space type (shared_ptr<> type) | |
|
typedef FunctionSpace < mesh_type, basis_type > | space_type |
| the approximation function space type | |
|
typedef backend_type::sparse_matrix_ptrtype | sparse_matrix_ptrtype |
| sparse matrix type associated with backend (shared_ptr<> type) | |
|
typedef backend_type::sparse_matrix_type | sparse_matrix_type |
| sparse matrix type associated with backend | |
| typedef double | value_type |
| numerical type is double | |
|
typedef backend_type::vector_ptrtype | vector_ptrtype |
| vector type associated with backend (shared_ptr<> type) | |
| typedef backend_type::vector_type | vector_type |
| vector type associated with backend | |
Public Member Functions | |
| template<typename ExExpr > | |
| void | checkDG (ExExpr expr) |
| Diode () | |
| template<typename BdyExpr > | |
| void | EulerModifiedStep (double &time, double dt, BdyExpr &wbdy, element_type &Ex, element_type &Ey, element_type &Bz) |
| template<typename BdyExpr > | |
| void | EulerStep (double &time, double dt, BdyExpr &wbdy, element_type &Ex, element_type &Ey, element_type &Bz) |
| template<typename BdyExpr > | |
| void | FSolve (BdyExpr &wbdy, double dt, element_type const &Ex, element_type const &Ey, element_type const &Bz, element_type &Exstar, element_type &Eystar, element_type &Bzstar) |
| template<typename BdyExpr > | |
| void | HeunStep (double &time, double dt, BdyExpr &wbdy, element_type &Ex, element_type &Ey, element_type &Bz) |
| template<typename BdyExpr > | |
| void | RK4Step (double &time, double dt, BdyExpr &wbdy, element_type &Ex, element_type &Ey, element_type &Bz) |
| void | run () |
| void | run (const double *X, unsigned long P, double *Y, unsigned long N) |
Static Public Attributes | |
| static const uint16_type | Order = 4 |
| Polynomial order \(P_2\). | |
| static const uint16_type | OrderGeo = 4 |
|
inline |
Constructor
| void Diode::run | ( | const double * | X, |
| unsigned long | P, | ||
| double * | Y, | ||
| unsigned long | N | ||
| ) |
The function space and some associated elements(functions) are then defined