Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Private Member Functions | Private Attributes
phc::PHC4 Class Reference

A class for the handling of two dimensional perfectly periodic photonic crystals with quadrilateral unit cells. More...

#include <PHC4.hh>

Collaboration diagram for phc::PHC4:
Collaboration graph
[legend]

List of all members.

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_BaseB_
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::Identityid_TE_
hp2D::Identityid_TM_
concepts::Array
< concepts::Real2d * > 
k_
hp2D::Laplacela_TE_
hp2D::Laplacela_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::hpFullprebuild_
bool rebuilt_
uint refine_
concepts::Array< Cmplx > * resid_TE_
concepts::Array< Cmplx > * resid_TM_
bool set_tag_
concepts::Array< Cmplx > single_factor_
hp2D::hpAdaptiveSpaceH1spc1_
hp2D::hpAdaptiveSpaceH1spc2_
hp2D::hpAdaptiveSpaceH1spc3_
hp2D::hpAdaptiveSpaceH1spc4_
std::vector
< hp2D::hpAdaptiveSpaceH1 * > 
spc_
double t_
std::string tag_

Detailed Description

A class for the handling of two dimensional perfectly periodic photonic crystals with quadrilateral unit cells.

Author:
Peter Kauf, 2006

Definition at line 39 of file PHC4.hh.


Constructor & Destructor Documentation

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 ( )

Member Function Documentation

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]

Definition at line 124 of file PHC4.hh.

concepts::SparseMatrix<Real>* phc::PHC4::get_ev_TM ( ) [inline]

Definition at line 125 of file PHC4.hh.

concepts::Array<concepts::Real2d*> phc::PHC4::get_k ( ) [inline]

Definition at line 63 of file PHC4.hh.

hp2D::hpAdaptiveSpaceH1 phc::PHC4::get_spc ( uint  i)
double phc::PHC4::get_time ( ) [inline]

Definition at line 127 of file PHC4.hh.

void phc::PHC4::give_matrices ( uint  Brillouin_Point,
uint  Ref_Step,
std::string  tag 
)
uint phc::PHC4::nDoF ( ) [inline]

Definition at line 122 of file PHC4.hh.

void phc::PHC4::rcount ( ) [inline]

Definition at line 114 of file PHC4.hh.

void phc::PHC4::rebuild ( )
void phc::PHC4::recompute ( uint  kmax,
uint  maxiter,
Real  eps,
uint  n,
bool  EF_graph 
)
void phc::PHC4::set_tag ( std::string  tag) [inline]

Definition at line 126 of file PHC4.hh.

concepts::Array<uint> phc::PHC4::sort_ ( concepts::Array< Cmplx > *  unsorted) [private]

Member Data Documentation

bool phc::PHC4::assembled_ [private]

Definition at line 145 of file PHC4.hh.

Definition at line 139 of file PHC4.hh.

bool phc::PHC4::computed_ [private]

Definition at line 147 of file PHC4.hh.

bool phc::PHC4::EF_graph_ [private]

Definition at line 148 of file PHC4.hh.

Definition at line 167 of file PHC4.hh.

Definition at line 168 of file PHC4.hh.

Definition at line 165 of file PHC4.hh.

Definition at line 159 of file PHC4.hh.

Definition at line 166 of file PHC4.hh.

Definition at line 160 of file PHC4.hh.

Definition at line 155 of file PHC4.hh.

Definition at line 143 of file PHC4.hh.

Definition at line 143 of file PHC4.hh.

Definition at line 140 of file PHC4.hh.

Definition at line 142 of file PHC4.hh.

Definition at line 142 of file PHC4.hh.

std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_id_TE_ [private]

Definition at line 152 of file PHC4.hh.

std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_id_TM_ [private]

Definition at line 153 of file PHC4.hh.

std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_la_TE_ [private]

Definition at line 150 of file PHC4.hh.

std::vector<concepts::SparseMatrix<Real>* > phc::PHC4::mat_la_TM_ [private]

Definition at line 151 of file PHC4.hh.

uint phc::PHC4::nDoF_ [private]

Definition at line 138 of file PHC4.hh.

Definition at line 136 of file PHC4.hh.

bool phc::PHC4::rebuilt_ [private]

Definition at line 146 of file PHC4.hh.

uint phc::PHC4::refine_ [private]

Definition at line 137 of file PHC4.hh.

Definition at line 162 of file PHC4.hh.

Definition at line 163 of file PHC4.hh.

bool phc::PHC4::set_tag_ [private]

Definition at line 171 of file PHC4.hh.

Definition at line 157 of file PHC4.hh.

Definition at line 131 of file PHC4.hh.

Definition at line 132 of file PHC4.hh.

Definition at line 133 of file PHC4.hh.

Definition at line 134 of file PHC4.hh.

std::vector<hp2D::hpAdaptiveSpaceH1*> phc::PHC4::spc_ [private]

Definition at line 135 of file PHC4.hh.

double phc::PHC4::t_ [private]

Definition at line 172 of file PHC4.hh.

std::string phc::PHC4::tag_ [private]

Definition at line 170 of file PHC4.hh.


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)