A class for the handling of two dimensional perfectly periodic photonic crystals with quadrilateral unit cells. More...
#include <PHC4.hh>

Public Member Functions | |
| void | assemble () |
| void | bilinearforms (std::vector< Real > epsilon, std::vector< uint > attributes, Real dflt=1.0) |
| void | compute (uint kmax, uint maxiter, Real eps, uint n, bool EF_graph) |
| void | factor (Real k_x, Real k_y, concepts::Array< Real > v1, concepts::Array< Real > v2) |
| void | get_16_matrices_k1_k2_ (std::string path=std::string(".")) |
| void | get_16_matrices_k1_k2_TE (std::string path=std::string(".")) |
| void | get_16_matrices_k1_k2_TM (std::string path=std::string(".")) |
| concepts::SparseMatrix< Real > * | get_ev_TE () |
| concepts::SparseMatrix< Real > * | get_ev_TM () |
| concepts::Array < concepts::Real2d * > | get_k () |
| hp2D::hpAdaptiveSpaceH1 | get_spc (uint i) |
| double | get_time () |
| void | give_matrices (uint Brillouin_Point, uint Ref_Step, std::string tag) |
| uint | nDoF () |
| PHC4 (std::vector< hp2D::hpAdaptiveSpaceH1 * > spc, Brillouin_Base &B, uint i, std::vector< Real > epsilon, std::vector< uint > attributes, Real dflt=1.0) | |
| PHC4 (std::vector< hp2D::hpAdaptiveSpaceH1 * > spc, Brillouin_Base &B, concepts::Array< concepts::Real2d * > k_val, std::vector< Real > epsilon, std::vector< uint > attributes, Real dflt=1.0) | |
| void | rcount () |
| void | rebuild () |
| void | recompute (uint kmax, uint maxiter, Real eps, uint n, bool EF_graph) |
| void | set_tag (std::string tag) |
| ~PHC4 () | |
Private Member Functions | |
| void | brillouinIteration_ (uint kmax, uint maxiter, Real eps, uint n, uint j, concepts::LiCoI< Real > *Id_OP) |
Adding up the matrices and computing the kmax eigenvalues in maximally maxiter iterations and tolerance eps. | |
| concepts::Array< uint > | sort_ (concepts::Array< Cmplx > *unsorted) |
Private Attributes | |
| bool | assembled_ |
| Brillouin_Base & | B_ |
| bool | computed_ |
| bool | EF_graph_ |
| concepts::Vector< Cmplx > * | EF_TE_ |
| concepts::Vector< Cmplx > * | EF_TM_ |
| concepts::Array < concepts::Array< Cmplx > * > * | ev_TE_ |
| concepts::SparseMatrix< Real > * | ev_TE_matrix_ |
| concepts::Array < concepts::Array< Cmplx > * > * | ev_TM_ |
| concepts::SparseMatrix< Real > * | ev_TM_matrix_ |
| concepts::Array< Cmplx > | factor_ |
| hp2D::Identity * | id_TE_ |
| hp2D::Identity * | id_TM_ |
| concepts::Array < concepts::Real2d * > | k_ |
| hp2D::Laplace * | la_TE_ |
| hp2D::Laplace * | la_TM_ |
| std::vector < concepts::SparseMatrix< Real > * > | mat_id_TE_ |
| std::vector < concepts::SparseMatrix< Real > * > | mat_id_TM_ |
| std::vector < concepts::SparseMatrix< Real > * > | mat_la_TE_ |
| std::vector < concepts::SparseMatrix< Real > * > | mat_la_TM_ |
| uint | nDoF_ |
| hp2D::hpFull & | prebuild_ |
| bool | rebuilt_ |
| uint | refine_ |
| concepts::Array< Cmplx > * | resid_TE_ |
| concepts::Array< Cmplx > * | resid_TM_ |
| bool | set_tag_ |
| concepts::Array< Cmplx > | single_factor_ |
| hp2D::hpAdaptiveSpaceH1 & | spc1_ |
| hp2D::hpAdaptiveSpaceH1 & | spc2_ |
| hp2D::hpAdaptiveSpaceH1 & | spc3_ |
| hp2D::hpAdaptiveSpaceH1 & | spc4_ |
| std::vector < hp2D::hpAdaptiveSpaceH1 * > | spc_ |
| double | t_ |
| std::string | tag_ |
A class for the handling of two dimensional perfectly periodic photonic crystals with quadrilateral unit cells.
| phc::PHC4::PHC4 | ( | std::vector< hp2D::hpAdaptiveSpaceH1 * > | spc, |
| Brillouin_Base & | B, | ||
| uint | i, | ||
| std::vector< Real > | epsilon, | ||
| std::vector< uint > | attributes, | ||
| Real | dflt = 1.0 |
||
| ) |
| phc::PHC4::PHC4 | ( | std::vector< hp2D::hpAdaptiveSpaceH1 * > | spc, |
| Brillouin_Base & | B, | ||
| concepts::Array< concepts::Real2d * > | k_val, | ||
| std::vector< Real > | epsilon, | ||
| std::vector< uint > | attributes, | ||
| Real | dflt = 1.0 |
||
| ) |
| phc::PHC4::~PHC4 | ( | ) |
| void phc::PHC4::assemble | ( | ) |
| void phc::PHC4::bilinearforms | ( | std::vector< Real > | epsilon, |
| std::vector< uint > | attributes, | ||
| Real | dflt = 1.0 |
||
| ) |
| void phc::PHC4::brillouinIteration_ | ( | uint | kmax, |
| uint | maxiter, | ||
| Real | eps, | ||
| uint | n, | ||
| uint | j, | ||
| concepts::LiCoI< Real > * | Id_OP | ||
| ) | [private] |
Adding up the matrices and computing the kmax eigenvalues in maximally maxiter iterations and tolerance eps.
It saves the n th eigenfunction in a matlab file. j is the current iteration, the Identity operator needs to be built only once.
| void phc::PHC4::compute | ( | uint | kmax, |
| uint | maxiter, | ||
| Real | eps, | ||
| uint | n, | ||
| bool | EF_graph | ||
| ) |
| void phc::PHC4::factor | ( | Real | k_x, |
| Real | k_y, | ||
| concepts::Array< Real > | v1, | ||
| concepts::Array< Real > | v2 | ||
| ) |
| void phc::PHC4::get_16_matrices_k1_k2_ | ( | std::string | path = std::string(".") | ) |
| void phc::PHC4::get_16_matrices_k1_k2_TE | ( | std::string | path = std::string(".") | ) |
| void phc::PHC4::get_16_matrices_k1_k2_TM | ( | std::string | path = std::string(".") | ) |
| concepts::SparseMatrix<Real>* phc::PHC4::get_ev_TE | ( | ) | [inline] |
| concepts::SparseMatrix<Real>* phc::PHC4::get_ev_TM | ( | ) | [inline] |
| concepts::Array<concepts::Real2d*> phc::PHC4::get_k | ( | ) | [inline] |
| hp2D::hpAdaptiveSpaceH1 phc::PHC4::get_spc | ( | uint | i | ) |
| void phc::PHC4::give_matrices | ( | uint | Brillouin_Point, |
| uint | Ref_Step, | ||
| std::string | tag | ||
| ) |
| void phc::PHC4::rebuild | ( | ) |
| void phc::PHC4::recompute | ( | uint | kmax, |
| uint | maxiter, | ||
| Real | eps, | ||
| uint | n, | ||
| bool | EF_graph | ||
| ) |
| concepts::Array<uint> phc::PHC4::sort_ | ( | concepts::Array< Cmplx > * | unsorted | ) | [private] |
bool phc::PHC4::assembled_ [private] |
Brillouin_Base& phc::PHC4::B_ [private] |
bool phc::PHC4::computed_ [private] |
bool phc::PHC4::EF_graph_ [private] |
concepts::Vector<Cmplx>* phc::PHC4::EF_TE_ [private] |
concepts::Vector<Cmplx>* phc::PHC4::EF_TM_ [private] |
concepts::Array<concepts::Array<Cmplx>*>* phc::PHC4::ev_TE_ [private] |
concepts::SparseMatrix<Real>* phc::PHC4::ev_TE_matrix_ [private] |
concepts::Array<concepts::Array<Cmplx>*>* phc::PHC4::ev_TM_ [private] |
concepts::SparseMatrix<Real>* phc::PHC4::ev_TM_matrix_ [private] |
concepts::Array<Cmplx> phc::PHC4::factor_ [private] |
hp2D::Identity* phc::PHC4::id_TE_ [private] |
hp2D::Identity * phc::PHC4::id_TM_ [private] |
concepts::Array<concepts::Real2d*> phc::PHC4::k_ [private] |
hp2D::Laplace* phc::PHC4::la_TE_ [private] |
hp2D::Laplace * phc::PHC4::la_TM_ [private] |
std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_id_TE_ [private] |
std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_id_TM_ [private] |
std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_la_TE_ [private] |
std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_la_TM_ [private] |
uint phc::PHC4::nDoF_ [private] |
hp2D::hpFull& phc::PHC4::prebuild_ [private] |
bool phc::PHC4::rebuilt_ [private] |
uint phc::PHC4::refine_ [private] |
concepts::Array<Cmplx>* phc::PHC4::resid_TE_ [private] |
concepts::Array<Cmplx>* phc::PHC4::resid_TM_ [private] |
bool phc::PHC4::set_tag_ [private] |
concepts::Array<Cmplx> phc::PHC4::single_factor_ [private] |
hp2D::hpAdaptiveSpaceH1& phc::PHC4::spc1_ [private] |
hp2D::hpAdaptiveSpaceH1& phc::PHC4::spc2_ [private] |
hp2D::hpAdaptiveSpaceH1& phc::PHC4::spc3_ [private] |
hp2D::hpAdaptiveSpaceH1& phc::PHC4::spc4_ [private] |
std::vector<hp2D::hpAdaptiveSpaceH1*> phc::PHC4::spc_ [private] |
double phc::PHC4::t_ [private] |
std::string phc::PHC4::tag_ [private] |