Public Member Functions | Private Member Functions | Private Attributes

SaturableAbsorber Class Reference

#include <SaturableAbsorber.hh>

List of all members.

Public Member Functions

 SaturableAbsorber (string InFileName, OptSignal *oOptSignal2)
void Apply (double *PropagatedLength)
string WriteTypeSaturableAbsorption (void)
string WriteTypeStepSizes (void)

Private Member Functions

void ApplyQuadraticNoLossAnalytic (void)
void ApplyQuadraticWithLossAnalytic (void)
void ApplyHeunsMethod (void)
void ApplyHeunsMethodConstantSteps (void)
void ApplyHeunsMethodLocalError (void)
void ApplyHeunsSingleStep (double StepSizeZ)
void ComputeSAFunction (cplx *U_XIn, cplx *U_YIn, double *SAFOut)
double RungaKutta4Step (cplx *U_XIn, cplx *U_YIn, double x_in, int time_index_in)
double FastSaturableAbsorptionFunction (cplx u)
double CoupledODESatAbsFunction (double Power, double loss)
void UpdateTime (void)
void UpdateFreq (void)
void ComputeDeltaZMax (void)
double ComputeRelativeError (void)
void CopyFftMatricesTimeData (fftMatrices *OrigData, fftMatrices *CopyOfData)

Private Attributes

typeSimulation TypeSimulation
OptSignaloOptSignal
cfftwfft
fftMatrices sfftM
int qtPoints
int DebugFlag
typeSaturableAbsorption TypeSaturableAbsorption
double SaturableAbsorberLength
 Length of SaturableAbsorber in meters.
double FastSaturableAbsorptionNonlinearCoefficient
double FastSaturableAbsorptionAttenuationCoefficient
double CoupledODEUnsaturatedNepperLoss
 Unsaturated Loss parameter l_U in m^{-1} for Coupled ODE model.
double CoupledODERelaxationTime
 Relaxation Time parameter in secs for Coupled ODE model.
double CoupledODESaturationPower
 Saturation Power parameter P_{sat} in Watts for Coupled ODE model.
typeStepSizes TypeStepSizes
int NumSteps
 NumSteps for ODE solver.
double RelativeErrorGoal
double DeltaZMaxInfile
double DeltaZMax
double DeltaZInitial
bool InitializedDeltaZInitialFlag
fftMatrices sfftM_Start
fftMatrices sfftM_Coarse
cplxLaserWorkX
cplxLaserWorkY
double * SAF1
double * SAF2

Constructor & Destructor Documentation

SaturableAbsorber::SaturableAbsorber ( string  InFileName,
OptSignal oOptSignal2 
)

Member Function Documentation

void SaturableAbsorber::Apply ( double *  PropagatedLength  ) 
void SaturableAbsorber::ApplyHeunsMethod ( void   )  [private]
void SaturableAbsorber::ApplyHeunsMethodConstantSteps ( void   )  [private]
void SaturableAbsorber::ApplyHeunsMethodLocalError ( void   )  [private]
void SaturableAbsorber::ApplyHeunsSingleStep ( double  StepSizeZ  )  [private]
void SaturableAbsorber::ApplyQuadraticNoLossAnalytic ( void   )  [private]
void SaturableAbsorber::ApplyQuadraticWithLossAnalytic ( void   )  [private]
void SaturableAbsorber::ComputeDeltaZMax ( void   )  [private]
double SaturableAbsorber::ComputeRelativeError ( void   )  [private]

If S_c and S_f denote the coarse and fine solutions then The relative error is defined to be RelativeError = | S_c - S_f | / | S_f |

References qtPoints, SCALAR, sfftM, sfftM_Coarse, sq(), sqrt(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.

Referenced by ApplyHeunsMethodLocalError().

void SaturableAbsorber::ComputeSAFunction ( cplx U_XIn,
cplx U_YIn,
double *  SAFOut 
) [private]
void SaturableAbsorber::CopyFftMatricesTimeData ( fftMatrices OrigData,
fftMatrices CopyOfData 
) [private]
double SaturableAbsorber::CoupledODESatAbsFunction ( double  Power,
double  loss 
) [private]
double SaturableAbsorber::FastSaturableAbsorptionFunction ( cplx  u  )  [private]

Fast Saturable Absortion is du/dz = F(u)u where F=FastSaturableAbsorptionFunction

References FastSaturableAbsorptionAttenuationCoefficient, FastSaturableAbsorptionNonlinearCoefficient, QUADRATIC_NO_LOSS, QUADRATIC_WITH_LOSS, RATIONAL_QUADRATIC, sq(), and TypeSaturableAbsorption.

Referenced by ComputeSAFunction().

double SaturableAbsorber::RungaKutta4Step ( cplx U_XIn,
cplx U_YIn,
double  x_in,
int  time_index_in 
) [private]
void SaturableAbsorber::UpdateFreq ( void   )  [inline, private]
void SaturableAbsorber::UpdateTime ( void   )  [inline, private]
string SaturableAbsorber::WriteTypeSaturableAbsorption ( void   ) 
string SaturableAbsorber::WriteTypeStepSizes ( void   ) 

References CONSTANT, LOCAL_ERROR_2ND, and TypeStepSizes.

Referenced by SaturableAbsorber().


Member Data Documentation

Relaxation Time parameter in secs for Coupled ODE model.

Referenced by CoupledODESatAbsFunction(), and SaturableAbsorber().

Saturation Power parameter P_{sat} in Watts for Coupled ODE model.

Referenced by CoupledODESatAbsFunction(), and SaturableAbsorber().

Unsaturated Loss parameter l_U in m^{-1} for Coupled ODE model.

Referenced by ComputeSAFunction(), CoupledODESatAbsFunction(), and SaturableAbsorber().

Referenced by Apply(), and SaturableAbsorber().

double SaturableAbsorber::DeltaZMax [private]

For TypeSaturableAbsorption = QUADRATIC_ANALYTIC or QUADRATIC this is in Watts and represents the maximum instantaneous power of electric field that one can have without singularities occuring for any and SaturableAbsorberLength.

Referenced by ApplyQuadraticWithLossAnalytic(), FastSaturableAbsorptionFunction(), and SaturableAbsorber().

For TypeSaturableAbsorption = QUADRATIC_ANALYTIC or QUADRATIC this is in (Wm)^{-1}

Referenced by ApplyQuadraticNoLossAnalytic(), ApplyQuadraticWithLossAnalytic(), FastSaturableAbsorptionFunction(), and SaturableAbsorber().

NumSteps for ODE solver.

Referenced by ApplyHeunsMethodConstantSteps(), and SaturableAbsorber().

double* SaturableAbsorber::SAF1 [private]
double* SaturableAbsorber::SAF2 [private]

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