PLaSK library
Loading...
Searching...
No Matches
optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT > Struct Template Reference
Inheritance diagram for optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >:
[legend]
Collaboration diagram for optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >:
[legend]

Public Member Functions

size_t size () const override
 Get the number of elements in this vector.
 
 FieldDataEfficient (EffectiveIndex2D *solver, std::size_t num, const shared_ptr< const RectangularMesh< 2 > > &rect_mesh)
 
FieldT at (size_t idx) const override
 
DataVector< const FieldT > getAll () const override
 Get all values as non-lazy vector.
 
- Public Member Functions inherited from optical::effective::EffectiveIndex2D::FieldDataBase< FieldT >
 FieldDataBase (EffectiveIndex2D *solver, std::size_t num)
 
- Public Member Functions inherited from plask::LazyDataImpl< FieldT >
virtual ~LazyDataImpl ()
 
virtual FieldT at (std::size_t index) const=0
 Get index-th value from vector.
 
virtual DataVector< FieldT > claim () const
 

Public Attributes

shared_ptr< const RectangularMesh< 2 > > rect_mesh
 
std::vector< dcomplex, aligned_allocator< dcomplex > > valx
 
std::vector< dcomplex, aligned_allocator< dcomplex > > valy
 
- Public Attributes inherited from optical::effective::EffectiveIndex2D::FieldDataBase< FieldT >
EffectiveIndex2D * solver
 
std::size_t num
 
std::vector< dcomplex, aligned_allocator< dcomplex > > kx
 
std::vector< dcomplex, aligned_allocator< dcomplex > > ky
 
std::size_t stripe
 

Additional Inherited Members

- Public Types inherited from plask::LazyDataImpl< FieldT >
typedef FieldT CellType
 
- Protected Member Functions inherited from optical::effective::EffectiveIndex2D::FieldDataBase< FieldT >
FieldT value (dcomplex val) const
 
void setScale ()
 
void setScale ()
 
double value (dcomplex val) const
 
void setScale ()
 
Vec< 3, dcomplex > value (dcomplex val) const
 
- Protected Attributes inherited from optical::effective::EffectiveIndex2D::FieldDataBase< FieldT >
double scale
 

Detailed Description

template<typename FieldT>
struct optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >

Definition at line 822 of file eim.cpp.

Constructor & Destructor Documentation

◆ FieldDataEfficient()

template<typename FieldT >
optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::FieldDataEfficient ( EffectiveIndex2D *  solver,
std::size_t  num,
const shared_ptr< const RectangularMesh< 2 > > &  rect_mesh 
)
inline

Definition at line 828 of file eim.cpp.

Member Function Documentation

◆ at()

template<typename FieldT >
FieldT optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::at ( size_t  idx) const
inlineoverride

Definition at line 873 of file eim.cpp.

◆ getAll()

template<typename FieldT >
DataVector< const FieldT > optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::getAll ( ) const
inlineoverridevirtual

Get all values as non-lazy vector.

Returns
non-lazy representation of this

Reimplemented from plask::LazyDataImpl< FieldT >.

Definition at line 879 of file eim.cpp.

◆ size()

template<typename FieldT >
size_t optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::size ( ) const
inlineoverridevirtual

Get the number of elements in this vector.

Returns
the number of elements in this vector

Implements plask::LazyDataImpl< FieldT >.

Definition at line 826 of file eim.cpp.

Member Data Documentation

◆ rect_mesh

template<typename FieldT >
shared_ptr<const RectangularMesh<2> > optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::rect_mesh

Definition at line 823 of file eim.cpp.

◆ valx

template<typename FieldT >
std::vector<dcomplex, aligned_allocator<dcomplex> > optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::valx

Definition at line 824 of file eim.cpp.

◆ valy

template<typename FieldT >
std::vector<dcomplex, aligned_allocator<dcomplex> > optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >::valy

Definition at line 824 of file eim.cpp.


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