Open PaperOpt
Component Class Reference

#include <Component.h>

Inheritance diagram for Component:
Collaboration diagram for Component:

List of all members.

Public Member Functions

void SetFluorescent (Fluorescence *pFluor)
virtual ~Component (void)
virtual int Process (WavePacket &wp) const =0
virtual int Process (WavePacket &wp, int ComponentNumber, bool EntryScattering=false, complex_LC *pPrevRefrIndex=0) const =0

Public Attributes

FluorescencempFluorescence

Protected Types

enum  Occurrence { NOTHING, SCATTERING, ABSORPTION }

Protected Member Functions

 Component ()
 Component (const StructureObject *const pStructureObject, vector< complex_LC > *pRefrIndex, vector< double > *pQScat, vector< double > *pQAbs, vector< double > *pQAbsFluo, Distributions::Distribution *pDistScat, double ContactReduction, V2< float > *pRoughness)
Occurrence CheckFreePath (const V3< double > &rPrevPos, V3< double > &rCurPos, int NbrLambda, double *pT) const
int ScatterEnvelope (V3< double > &rDirection, V3< double > &rPolarization, double Lambda, complex_LC N1, complex_LC N2, const V3< double > &rNormal) const
void ScatterDirection (V3< double > &rDir, V3< double > &rPol, int NbrLambda=0) const
virtual int WhatWillHappenNext (double Depth, int ComponentNumber) const

Protected Attributes

const StructureObjectmpStructureObject
vector< complex_LC > * mpRefrIndex
V2< float > * mRoughness
vector< double > * mpQScat
vector< double > * mpQAbs
vector< double > * mpQAbsFluo
vector< double > mpQExt
Distributions::DistributionmpDistScat
double mContactReduction
long mIterationLimit
bool mAbsFluoOrNot

Detailed Description

Abstract class with common functions and parameters to all basesheet components (Fibers, pores and fillers).

See also:
Version:
2008

Member Enumeration Documentation

enum Component::Occurrence [protected]
Enumerator:
NOTHING 
SCATTERING 
ABSORPTION 

Constructor & Destructor Documentation

Component::Component ( ) [protected]
Component::Component ( const StructureObject *const  pStructureObject,
vector< complex_LC > *  pRefrIndex,
vector< double > *  pQScat,
vector< double > *  pQAbs,
vector< double > *  pQAbsFluo,
Distributions::Distribution pDistScat,
double  ContactReduction,
V2< float > *  pRoughness 
) [protected]

Constructor.

Parameters:
pBasesheetInstance of basesheet in component to refer components of basesheer(filler,fiber,pore)
pDistCompsRepresents component distribution in the thickness direction of the paper
rRefrIndexReftractive index to handle complex values of results
pQScatDistribution scattering vector
pQAbsAbsorption coefficient
pQabsFluoAbsorption coefficient for fluorescing absorption
pDistScatScattering distribution. DistributionHenyeyGreenstein is common.
ContactReductionReduction of probablity for wave packet to travel from one component to another component
YMinY-coordinte to present minimum size of component
YMaxY-coordinte to present maximum size of basesheet
pRoughnessRoughness vector root mean suare roughness of the paper over the small area
pElInstance of StructureObject class is used to appraoch next layer untill last one
Component::~Component ( void  ) [virtual]

Destructor.


Member Function Documentation

Component::Occurrence Component::CheckFreePath ( const V3< double > &  rPrevPos,
V3< double > &  rCurPos,
int  NbrLambda,
double *  pT 
) const [protected]

Free path check.

Check if the wavepacket has travelled further then the free path. In that case it updates cur_pos to the end of the free path.

Parameters:
rPrevPosPrevious position.
rCurPosCurrent position.
Returns:
Occurence NOTHING, ABSORBED or SCATTERED.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual int Component::Process ( WavePacket wp) const [pure virtual]

Calculate transmission/reflection

Parameters:
wpWave Packet's object to calculate ditance of interception and call many fuctions of wave packet..

Implemented in Fiber, Filler, and HomogeneousScatteringMaterial.

Here is the caller graph for this function:

virtual int Component::Process ( WavePacket wp,
int  ComponentNumber,
bool  EntryScattering = false,
complex_LC pPrevRefrIndex = 0 
) const [pure virtual]
void Component::ScatterDirection ( V3< double > &  rDir,
V3< double > &  rPol,
int  NbrLambda = 0 
) const [protected]

Here is the call graph for this function:

Here is the caller graph for this function:

int Component::ScatterEnvelope ( V3< double > &  rDirection,
V3< double > &  rPolarization,
double  Lambda,
complex_LC  N1,
complex_LC  N2,
const V3< double > &  rNormal 
) const [protected]

Performs the refraction, reflection or scattering in the fiberwall

Parameters:
rDirectionWavepacket direction vector.
rPolarizationWavepacket polarization vector.
LambdaWavelength.
N1Complex refraction index of incident medium.
N2Complex refraction index of refractive medium.
rNormalNormal vector.
Returns:
int 1 - Reflected, 2 - Transmitted

Here is the call graph for this function:

Here is the caller graph for this function:

void Component::SetFluorescent ( Fluorescence pFluor) [inline]

Here is the caller graph for this function:

int Component::WhatWillHappenNext ( double  Depth,
int  ComponentNumber 
) const [protected, virtual]

Here is the caller graph for this function:


Member Data Documentation

bool Component::mAbsFluoOrNot [protected]

Used for differenting different versions of fluorescence process implementation If 1, non fluorescing and fluorescing absorption coefficients are used. If 0, only one absorption coefficient is defined, and it is also used to start fluorescence according to the quantum yield fluorescence matrix

double Component::mContactReduction [protected]
long Component::mIterationLimit [protected]

Maximum scattering event within a StructureObject

See also:
Component::mIterationLimit
vector<double>* Component::mpQAbs [protected]
vector<double>* Component::mpQAbsFluo [protected]
vector<double> Component::mpQExt [protected]
vector<double>* Component::mpQScat [protected]
vector<complex_LC>* Component::mpRefrIndex [protected]
V2<float>* Component::mRoughness [protected]

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