Difference between revisions of "File:KellerDoyaT.png"

From TORI
Jump to navigation Jump to search
(Importing image file)
 
Line 1: Line 1:
  +
Comparison of the [[transfer function]]s for realistic laser amplifiers at the continuous–wave operation (the [[Doya function]]) and for the short pulses (the [[Keller function]]).
Importing image file
 
  +
  +
==C++ Generator of cureves==
  +
// Files [[doya.cin]] and [[ado.cin]] should be loaded to the working directory in order to compile the [[C++]] code below:
  +
  +
#include <math.h>
  +
#include <stdio.h>
  +
#include <stdlib.h>
  +
#define DB double
  +
#define DO(x,y) for(x=0;x<y;x++)
  +
using namespace std;
  +
#include <complex>
  +
typedef complex<double> z_type;
  +
#define Re(x) x.real()
  +
#define Im(x) x.imag()
  +
#define I z_type(0.,1.)
  +
  +
#include"ado.cin"
  +
#include"doya.cin"
  +
  +
z_type Shoka(z_type z) { return z + log(exp(-z)+(M_E-1.)); }
  +
z_type ArcShoka(z_type z){ return z + log((1.-exp(-z))/(M_E-1.)) ;}
  +
  +
#define M(x,y) fprintf(o,"%6.3f %6.3f M\n",0.+x,0.+y);
  +
#define L(x,y) fprintf(o,"%6.3f %6.3f L\n",0.+x,0.+y);
  +
main(){ int j,k,m,n; DB x,y, a;
  +
FILE *o;o=fopen("KellerDoya.eps","w");ado(o,308,410);
  +
fprintf(o,"4 4 translate\n 100 100 scale 2 setlinecap 1 setlinejoin\n");
  +
for(m=0;m<4;m++){ M(m,0)L(m,4)}
  +
for(n=0;n<5;n++){ M(0,n)L(3,n)}
  +
// M(0,0)L(3,3)
  +
fprintf(o,".004 W 0 0 0 RGB S\n");
  +
DO(n,154){x=.005+.02*n;y=Re(Shoka(1.+ArcShoka(x)));if(n==0)M(x,y)else L(x,y)} fprintf(o,".02 W 0 0 .6 RGB S\n");
  +
DO(n,154){x=.005+.02*n;y=Re(Tania(1.+ArcTania(x)));if(n==0)M(x,y)else L(x,y)} fprintf(o,".02 W .6 0 0 RGB S\n");
  +
fprintf(o,"showpage\n%cTrailer",'%'); fclose(o);
  +
system("epstopdf KellerDoya.eps");
  +
system( "open KellerDoya.pdf"); //these 2 commands may be specific for macintosh
  +
getchar(); system("killall Preview");// if run at another operational sysetm, may need to modify
  +
}
  +
  +
==Latex generator of labels==
  +
  +
% File [[KellerDoya.pdf]] should be generated with the code above in order to compile the [[Latex]] document below.
  +
%<nomathjax>%<br>
  +
\documentclass[12pt]{article} %<br>
  +
\usepackage{geometry} %<br>
  +
\usepackage{graphicx} %<br>
  +
\usepackage{rotating} %<br>
  +
\paperwidth 318pt %<br>
  +
\paperheight 424pt %<br>
  +
\topmargin -104pt %<br>
  +
\oddsidemargin -83pt %<br>
  +
\textwidth 1200pt %<br>
  +
\textheight 600pt %<br>
  +
\pagestyle {empty} %<br>
  +
\newcommand \sx {\scalebox} %<br>
  +
\newcommand \rot {\begin{rotate}} %<br>
  +
\newcommand \ero {\end{rotate}} %<br>
  +
\newcommand \ing {\includegraphics} %<br>
  +
\begin{document} %<br>
  +
\sx{1}{ \begin{picture}(310,410) %<br>
  +
\put(1,9){\ing{KellerDoya}} % <br>
  +
\put(-12,400){\sx{2.8}{$y$}} % <br>
  +
\put(-12,303){\sx{2.8}{$3$}} % <br>
  +
\put(-12,203){\sx{2.8}{$2$}} % <br>
  +
\put(-12,103){\sx{2.8}{$1$}} % <br>
  +
\put(0,-8){\sx{2.5}{$0$}} % <br>
  +
\put(100,-8){\sx{2.5}{$1$}} % <br>
  +
\put(200,-8){\sx{2.5}{$2$}} % <br>
  +
%\put(300,-9){\sx{2.5}{$3$}} % <br>
  +
\put(292,-7){\sx{2.6}{$x$}} % <br>
  +
%\put(560,214){\rot{37}\sx{4}{$y=\mathrm{Tania}(x)$}\ero} % <br>
  +
%\put( 88,354){\rot{53}\sx{2.8}{$t\!=\!3$}\ero} %<br>
  +
%\put(160,354){\rot{50}\sx{2.8}{$t\!=\!2$}\ero} %<br>
  +
\put(158,264){\rot{48}\sx{2.8}{$y\!=\!\mathrm{Keller}(x)$}\ero} %<br>
  +
\put(190,231){\rot{47}\sx{2.8}{$y\!=\!\mathrm{Doya}(x)$}\ero} %<br>
  +
\end{picture} %<br>
  +
} %<br>
  +
\end{document}$<br>
  +
% Copyleft 2011 by Dmitrii Kouznetsov %<br>
  +
%</nomathjax>
  +
  +
%[[Category:Keller function]]
  +
%[[Category:Doya function]]
  +
%[[Category:Transfer function]]
  +
%[[Category:Elementary function]]
  +
%[[Category:Explicit plot]]
  +
%[[Category:Laser science]]
  +
%[[Category:C++]]
  +
%[[Category:Latex]]
  +
%[[Category:TORI]]

Revision as of 20:24, 20 June 2013

Comparison of the transfer functions for realistic laser amplifiers at the continuous–wave operation (the Doya function) and for the short pulses (the Keller function).

C++ Generator of cureves

// Files doya.cin and ado.cin should be loaded to the working directory in order to compile the C++ code below:

#include <math.h> 
#include <stdio.h>
#include <stdlib.h>
#define DB double
#define DO(x,y) for(x=0;x<y;x++)
using namespace std;
#include <complex>
typedef complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#include"ado.cin"
#include"doya.cin"
z_type Shoka(z_type  z)  { return z + log(exp(-z)+(M_E-1.)); }
z_type ArcShoka(z_type z){ return z + log((1.-exp(-z))/(M_E-1.)) ;}  
#define M(x,y) fprintf(o,"%6.3f %6.3f M\n",0.+x,0.+y);
#define L(x,y) fprintf(o,"%6.3f %6.3f L\n",0.+x,0.+y);
main(){ int j,k,m,n; DB x,y, a;
FILE *o;o=fopen("KellerDoya.eps","w");ado(o,308,410);
fprintf(o,"4 4 translate\n 100 100 scale 2 setlinecap 1 setlinejoin\n");
for(m=0;m<4;m++){ M(m,0)L(m,4)}
for(n=0;n<5;n++){ M(0,n)L(3,n)}
// M(0,0)L(3,3) 
fprintf(o,".004 W 0 0 0 RGB S\n");
DO(n,154){x=.005+.02*n;y=Re(Shoka(1.+ArcShoka(x)));if(n==0)M(x,y)else L(x,y)} fprintf(o,".02 W 0 0 .6 RGB S\n");
DO(n,154){x=.005+.02*n;y=Re(Tania(1.+ArcTania(x)));if(n==0)M(x,y)else L(x,y)} fprintf(o,".02 W .6 0 0 RGB S\n");
fprintf(o,"showpage\n%cTrailer",'%'); fclose(o);
    system("epstopdf KellerDoya.eps");
    system(    "open KellerDoya.pdf"); //these 2 commands may be specific for macintosh
getchar(); system("killall Preview");// if run at another operational sysetm, may need to modify
}

Latex generator of labels

% File KellerDoya.pdf should be generated with the code above in order to compile the Latex document below. %%
\documentclass[12pt]{article} %
\usepackage{geometry} %
\usepackage{graphicx} %
\usepackage{rotating} %
\paperwidth 318pt %
\paperheight 424pt %
\topmargin -104pt %
\oddsidemargin -83pt %
\textwidth 1200pt %
\textheight 600pt %
\pagestyle {empty} %
\newcommand \sx {\scalebox} %
\newcommand \rot {\begin{rotate}} %<br> \newcommand \ero {\end{rotate}} %
\newcommand \ing {\includegraphics} %
\begin{document} %<br> \sx{1}{ \begin{picture}(310,410) %<br> \put(1,9){\ing{KellerDoya}} % <br> \put(-12,400){\sx{2.8}{$y$}} % <br> \put(-12,303){\sx{2.8}{$3$}} % <br> \put(-12,203){\sx{2.8}{$2$}} % <br> \put(-12,103){\sx{2.8}{$1$}} % <br> \put(0,-8){\sx{2.5}{$0$}} % <br> \put(100,-8){\sx{2.5}{$1$}} % <br> \put(200,-8){\sx{2.5}{$2$}} % <br> %\put(300,-9){\sx{2.5}{$3$}} % <br> \put(292,-7){\sx{2.6}{$x$}} % <br> %\put(560,214){\rot{37}\sx{4}{$y=\mathrm{Tania}(x)$}\ero} % <br> %\put( 88,354){\rot{53}\sx{2.8}{$t\!=\!3$}\ero} %<br> %\put(160,354){\rot{50}\sx{2.8}{$t\!=\!2$}\ero} %<br> \put(158,264){\rot{48}\sx{2.8}{$y\!=\!\mathrm{Keller}(x)$}\ero} %<br> \put(190,231){\rot{47}\sx{2.8}{$y\!=\!\mathrm{Doya}(x)$}\ero} %<br> \end{picture} %
} %
\end{document}$
% Copyleft 2011 by Dmitrii Kouznetsov %
%

% % % % % % % % %

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current17:50, 20 June 2013Thumbnail for version as of 17:50, 20 June 2013661 × 881 (70 KB)Maintenance script (talk | contribs)Importing image file

The following 3 pages use this file:

Metadata