BMWlibs, calculation of superconducting gap functions: allow to choose between to different parameterization of the temperature dependence of the gap. For details see the memo in the source code.
This commit is contained in:
parent
a4c948db7f
commit
78fa497de6
14
ChangeLog
14
ChangeLog
@ -23,8 +23,8 @@ NEW 2012-11-19 added a flag in the Fourier block (dc-corrected) which can
|
||||
be used to subtract a potential DC-offset before the Fourier
|
||||
transform is carried out.
|
||||
NEW 2012-10-25 (i) add PRINT_LEVEL to the command block (0='nothing' to
|
||||
3='everything'). This allows to tune the Minuit2 output. (ii) added the
|
||||
possibilty to give the fit range in bins. For details see the docu.
|
||||
3='everything'). This allows to tune the Minuit2 output. (ii) added the
|
||||
possibilty to give the fit range in bins. For details see the docu.
|
||||
NEW 2012-09-24 add header information for printing.
|
||||
NEW 2012-05-31 added Noakes-Kalvius function (see A. Yaouanc and P. Dalmas de Reotiers,
|
||||
"Muon Spin Rotation, Relaxation, and Resonance" Oxford, Section 6.4.1.3).
|
||||
@ -60,6 +60,10 @@ FIXED 2012-09-23 fixed wrong chisq output in musrview if expected chisq is
|
||||
present.
|
||||
FIXED 2012-05-30 fixed RRF bug in single histo plotting.
|
||||
FIXED 2012-05-18 fixed wrong forward/backward tag for ROOT-PPC (MUSR-215)
|
||||
CHANGED 2014-10-28 BMWlibs, calculation of superconducting gap functions:
|
||||
allow to choose between to different parameterization of the
|
||||
temperature dependence of the gap. For details see the memo
|
||||
in the source code.
|
||||
CHANGED 2014-10-25 updated docu, since git is now available for ALL users
|
||||
CHANGED 2014-02-12 since we moved to git, I cleaned up the svn prop's from
|
||||
the sources.
|
||||
@ -67,8 +71,8 @@ CHANGED 2013-12-20 upgrade of cuba to version 3.2. Merge in from BMW
|
||||
CHANGED 2013-12-16 prettyfied the Noakes-Kalvius formulae. Furthermore added
|
||||
a sub-folder with cross checks for these formulae.
|
||||
CHANGED 2013-11-12 changed normalization of log max likelihood according to S.
|
||||
Backer and R.D. Cousins NIM 221, 437 (1984), in order to have a
|
||||
"goodness-of-fit" criteria.
|
||||
Backer and R.D. Cousins NIM 221, 437 (1984), in order to have a
|
||||
"goodness-of-fit" criteria.
|
||||
CHANGED 2012-12-11 if multiple SAVE are present in the COMMAND block, append
|
||||
MINUIT2.OUTPUT file. Added docu for PRINT_LEVEL (MUSR-244).
|
||||
CHANGED 2012-11-19 replaced hard coded gyromagnetic ratio of the muon in the
|
||||
@ -78,7 +82,7 @@ CHANGED 2012-11-09 when converting to WKM, take the beamline tag to decide
|
||||
CHANGED 2012-08-28 prevent LF from allocating too much memory
|
||||
CHANGED 2012-06-29 changed handling of the timeout for musrfit.
|
||||
CHANGED 2012-05-10 prevent any2many from overwriting an input file. At the
|
||||
some additional bug fixing of any2many has be carried out.
|
||||
some additional bug fixing of any2many has be carried out.
|
||||
CHANGED 2012-05-08 updating docu
|
||||
|
||||
changes since 0.10.0
|
||||
|
@ -1,15 +1,16 @@
|
||||
Test libGapIntegrals (arbitrary data), ASCII data file
|
||||
Test superconductor data
|
||||
###############################################################
|
||||
FITPARAMETER
|
||||
# Nr. Name Value Step Pos_Error Boundaries
|
||||
1 lambdaInvSq0 12.7664 0.40786 none
|
||||
2 Tc 15 0.0203235 none 0 2
|
||||
3 Delta0 26 0.00576485 none
|
||||
1 lambdaInvSq0 11.69 0.39 none
|
||||
2 Tc 0.558 0.018 none 0 2
|
||||
3 Delta0 0.0673 0.0035 none
|
||||
4 aG 1 0 none
|
||||
|
||||
###############################################################
|
||||
THEORY
|
||||
asymmetry 1
|
||||
userFcn libGapIntegrals TGapDWave 2 3
|
||||
userFcn libGapIntegrals TGapSWave 2 3 4
|
||||
|
||||
###############################################################
|
||||
#FUNCTIONS
|
||||
@ -18,8 +19,8 @@ userFcn libGapIntegrals TGapDWave 2 3
|
||||
RUN data/libGapIntegrals-test PIM3 PSI ASCII (name beamline institute data-file-format)
|
||||
fittype 8 (non muSR fit)
|
||||
map 0 0 0 0 0 0 0 0 0 0
|
||||
xy-data 1 2
|
||||
fit 0.00 10.00
|
||||
xy-data 1 2
|
||||
fit 0 10
|
||||
packing 1
|
||||
|
||||
###############################################################
|
||||
@ -32,8 +33,8 @@ SAVE
|
||||
###############################################################
|
||||
PLOT 8 (non muSR plot)
|
||||
runs 1
|
||||
range 0.00 20
|
||||
range 0 1.5
|
||||
|
||||
###############################################################
|
||||
STATISTIC --- 2010-01-08 13:54:19
|
||||
chisq = 15.4862481, NDF = 8, chisq/NDF = 1.93578101
|
||||
STATISTIC --- 2014-10-28 10:40:31
|
||||
chisq = 14.3, NDF = 8, chisq/NDF = 1.790471
|
||||
|
BIN
src/external/libGapIntegrals/GapIntegrals.pdf
vendored
BIN
src/external/libGapIntegrals/GapIntegrals.pdf
vendored
Binary file not shown.
30
src/external/libGapIntegrals/GapIntegrals.tex
vendored
30
src/external/libGapIntegrals/GapIntegrals.tex
vendored
@ -61,9 +61,9 @@
|
||||
\vskip 1cm
|
||||
%
|
||||
\begin{tabular}{@{\hspace{-0.5cm}}ll@{\hspace{4cm}}ll}
|
||||
Date: & September 19, 2009 / August 19, 2014 & & \\[3ex]
|
||||
Date: & \today & & \\[3ex]
|
||||
From: & B.M.~Wojek / Modified by A. Suter & \\
|
||||
E-Mail: & \verb?bastian.wojek@psi.ch? / \verb?andreas.suter@psi.ch? &&
|
||||
E-Mail: & \verb?andreas.suter@psi.ch? &&
|
||||
\end{tabular}
|
||||
%
|
||||
\vskip 0.3cm
|
||||
@ -102,8 +102,9 @@ For the numerical integration we use algorithms of the \textsc{Cuba} library \ci
|
||||
\end{equation}
|
||||
|
||||
\subsection*{Implemented gap functions and function calls from MUSRFIT}
|
||||
At the moment the calculation of $\tilde{I}(T)$ is implemented for various gap functions all using the approximate \textsc{BCS} temperature dependence~\cite{Prozorov}
|
||||
\begin{equation}\label{eq:gapT}
|
||||
Currently the calculation of $\tilde{I}(T)$ is implemented for various gap functions.
|
||||
The temperature dependence of the gap functions is either given by Eq.(\ref{eq:gapT_Prozorov}) \cite{Prozorov}, or by Eq.(\ref{eq:gapT_Manzano}) \cite{Manzano}.
|
||||
\begin{equation}\label{eq:gapT_Prozorov}
|
||||
\Delta(\varphi,T) \simeq \Delta(\varphi,0)\,\tanh\left[\frac{\pi k_{\rm B} T_{\rm c}}{\Delta_0}\sqrt{a_{\rm G} \left(\frac{T_{\rm c}}{T}-1\right)}\right]
|
||||
\end{equation}
|
||||
\noindent with $\Delta_0$ as given below, and $a_{\rm G}$ depends on the pairing state:
|
||||
@ -113,8 +114,7 @@ At the moment the calculation of $\tilde{I}(T)$ is implemented for various gap f
|
||||
\item [\textit{d}-wave:] $a_{\rm G}=4/3$ \quad with $\Delta_0 = 2.14\, k_{\rm B} T_c$
|
||||
\end{description}
|
||||
|
||||
\noindent Eq.(\ref{eq:gapT}) replaces the \emph{previously} used approximation~\cite{Manzano}:
|
||||
\begin{equation}
|
||||
\begin{equation}\label{eq:gapT_Manzano}
|
||||
\Delta(\varphi,T) \simeq \Delta(\varphi)\tanh\left(1.82\left(1.018\left(\frac{T_{\mathrm c}}{T}-1\right)\right)^{0.51}\right)\,.
|
||||
\end{equation}
|
||||
The \gapint plug-in calculates $\tilde{I}(T)$ for the following $\Delta(\varphi)$:
|
||||
@ -125,31 +125,36 @@ The \gapint plug-in calculates $\tilde{I}(T)$ for the following $\Delta(\varphi)
|
||||
\Delta(\varphi) = \Delta_0
|
||||
\end{equation}
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapSWave 1 2 [3]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 1$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\item[\textit{d}-wave gap \cite{Deutscher}:]
|
||||
\begin{equation}
|
||||
\Delta(\varphi) = \Delta_0\cos\left(2\varphi\right)
|
||||
\end{equation}
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapDWave 1 2 [3]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 4/3$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\item[non-monotonic \textit{d}-wave gap \cite{Matsui}:]
|
||||
\begin{equation}
|
||||
\Delta(\varphi) = \Delta_0\left[a \cos\left(2\varphi\right) + (1-a)\cos\left(6\varphi\right)\right]
|
||||
\end{equation}
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapNonMonDWave1 1 2 3 [4]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 4/3$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\item[non-monotonic \textit{d}-wave gap \cite{Eremin}:]
|
||||
\begin{equation}
|
||||
\Delta(\varphi) = \Delta_0\left[\frac{2}{3} \sqrt{\frac{a}{3}}\cos\left(2\varphi\right) / \left( 1 + a\cos^2\left(2\varphi\right)\right)^{\frac{3}{2}}\right],\,a>1/2
|
||||
\end{equation}
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapNonMonDWave2 1 2 3 [4]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $a~(1)$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 4/3$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $a~(1)$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\item[anisotropic \textit{s}-wave gap \cite{AnisotropicSWave}:]
|
||||
\begin{equation}
|
||||
\Delta(\varphi) = \Delta_0\left[1+a\cos\left(4\varphi\right)\right]\,,\,0\leqslant a\leqslant1
|
||||
\end{equation}
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapAnSWave 1 2 3 [4]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 1$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $a~(1)$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\end{description}
|
||||
|
||||
\noindent It is also possible to calculate a power law temperature dependence (in the two fluid approximation $n=4$) and the dirty \textit{s}-wave expression.
|
||||
@ -167,7 +172,8 @@ Obviously for this no integration is needed.
|
||||
\end{equation}
|
||||
with $\Delta(T)$ given by Eq.(\ref{eq:gapT}).\\
|
||||
\musrfit theory line: \verb?userFcn libGapIntegrals TGapDirtySWave 1 2 [3]?\\
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$, if $a_{\rm G}$ is not given, $a_{\rm G} = 1$)
|
||||
(Parameters: $T_{\mathrm c}~(\mathrm{K})$, $\Delta_0~(\mathrm{meV})$, $[a_{\rm G}~(1)]$. If $a_{\rm G}$ is given, the temperature dependence
|
||||
according to Eq.(\ref{eq:gapT_Prozorov}) will be used, otherwise Eq.(\ref{eq:gapT_Manzano}) will be utilized.)
|
||||
\end{description}
|
||||
|
||||
\noindent Currently there are two gap functions to be found in the code which are \emph{not} documented here:
|
||||
|
130
src/external/libGapIntegrals/TGapIntegrals.cpp
vendored
130
src/external/libGapIntegrals/TGapIntegrals.cpp
vendored
@ -460,12 +460,9 @@ TLambdaInvNonMonDWave2::~TLambdaInvNonMonDWave2() {
|
||||
double TGapSWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 2) || (par.size() == 3)); // two or three parameters: Tc (K), Delta(0) (meV), [a (1)]
|
||||
// see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// 2 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 3 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
double aa = 1.0;
|
||||
if (par.size() == 3)
|
||||
aa = par[2];
|
||||
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -509,7 +506,11 @@ double TGapSWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
vector<double> intPar; // parameters for the integral, T & Delta(T)
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aa*(par[0]/t-1.0)))); // tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 2) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[2]*(par[0]/t-1.0)))); // tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
|
||||
fGapIntegral->SetParameters(intPar);
|
||||
ds = 1.0-1.0/intPar[0]*fGapIntegral->IntegrateFunc(0.0, 2.0*(t+intPar[1]));
|
||||
@ -536,12 +537,9 @@ double TGapSWave::operator()(double t, const vector<double> &par) const {
|
||||
double TGapDWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 2) || (par.size() == 3)); // two or three parameters: Tc (K), Delta(0) (meV), [a (1)]
|
||||
// see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// 2 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 3 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
double aa = 4.0/3.0;
|
||||
if (par.size() == 3)
|
||||
aa = par[2];
|
||||
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -584,7 +582,11 @@ double TGapDWave::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral, T & Delta(T)
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aa*(par[0]/t-1.0)))); // tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 2) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[2]*(par[0]/t-1.0)))); // tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(4.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::PiOver2()); // upper limit of phi-integration
|
||||
|
||||
@ -617,14 +619,9 @@ double TGapDWave::operator()(double t, const vector<double> &par) const {
|
||||
double TGapCosSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 3) || (par.size() == 5)); // three or five parameters: Tc (K), DeltaD(0) (meV), DeltaS(0) (meV), [aD (1), aS (1)]
|
||||
|
||||
double aD = 4.0/3.0;
|
||||
double aS = 1.0;
|
||||
if (par.size() == 5) {
|
||||
aD = par[3];
|
||||
aS = par[4];
|
||||
}
|
||||
|
||||
// 3 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 5 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -667,10 +664,18 @@ double TGapCosSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral, T & Delta(T)
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aD*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[3]*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(1.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::Pi()); // upper limit of phi-integration
|
||||
intPar.push_back(par[2]*tanh(0.2707214816*par[0]/par[2]*sqrt(aS*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[2]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[2]*tanh(0.2707214816*par[0]/par[2]*sqrt(par[4]*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
|
||||
// double xl[] = {0.0, 0.0}; // lower bound E, phi
|
||||
// double xu[] = {4.0*(t+intPar[1]), 0.5*PI}; // upper bound E, phi
|
||||
@ -701,14 +706,9 @@ double TGapCosSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
double TGapSinSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 3) || (par.size() == 5)); // three or five parameters: Tc (K), DeltaD(0) (meV), DeltaS(0) (meV), [aD (1), aS (1)]
|
||||
|
||||
double aD = 4.0/3.0;
|
||||
double aS = 1.0;
|
||||
if (par.size() == 5) {
|
||||
aD = par[3];
|
||||
aS = par[4];
|
||||
}
|
||||
|
||||
// 3 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 5 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -751,10 +751,18 @@ double TGapSinSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral, T & Delta(T)
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aD*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[3]*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(1.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::Pi()); // upper limit of phi-integration
|
||||
intPar.push_back(par[2]*tanh(0.2707214816*par[0]/par[2]*sqrt(aS*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[2]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[2]*tanh(0.2707214816*par[0]/par[2]*sqrt(par[4]*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
|
||||
// double xl[] = {0.0, 0.0}; // lower bound E, phi
|
||||
// double xu[] = {4.0*(t+intPar[1]), 0.5*PI}; // upper bound E, phi
|
||||
@ -785,12 +793,9 @@ double TGapSinSqDWave::operator()(double t, const vector<double> &par) const {
|
||||
double TGapAnSWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 3) || (par.size() == 4)); // three or four parameters: Tc (K), Delta(0) (meV), a (1), [aS_Gap (1)]
|
||||
|
||||
double aS = 1.0;
|
||||
if (par.size() == 4) {
|
||||
aS = par[3];
|
||||
}
|
||||
|
||||
// 3 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 4 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -833,7 +838,11 @@ double TGapAnSWave::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral, T & Delta(T)
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aS*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[3]*(par[0]/t-1.0)))); // DeltaS(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(par[2]);
|
||||
intPar.push_back(4.0*(t+(1.0+par[2])*intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::PiOver2()); // upper limit of phi-integration
|
||||
@ -867,12 +876,9 @@ double TGapAnSWave::operator()(double t, const vector<double> &par) const {
|
||||
double TGapNonMonDWave1::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 3) || (par.size() == 4)); // three or four parameters: Tc (K), Delta(0) (meV), a (1), [aD_Gap (1)]
|
||||
|
||||
double aD = 4.0/3.0;
|
||||
if (par.size() == 4) {
|
||||
aD = par[3];
|
||||
}
|
||||
|
||||
// 3 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 4 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -915,7 +921,11 @@ double TGapNonMonDWave1::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral: 2 k_B T, Delta(T), a, E_c, phi_c
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aD*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[3]*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(par[2]);
|
||||
intPar.push_back(4.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::PiOver2()); // upper limit of phi-integration
|
||||
@ -946,12 +956,9 @@ double TGapNonMonDWave1::operator()(double t, const vector<double> &par) const {
|
||||
double TGapNonMonDWave2::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert((par.size() == 3) || (par.size() == 4)); // three parameters: Tc (K), Delta(0) (meV), a (1), [aD_Gap (1)]
|
||||
|
||||
double aD = 4.0/3.0;
|
||||
if (par.size() == 4) {
|
||||
aD = par[3];
|
||||
}
|
||||
|
||||
// 3 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 4 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
@ -994,7 +1001,11 @@ double TGapNonMonDWave2::operator()(double t, const vector<double> &par) const {
|
||||
double ds;
|
||||
vector<double> intPar; // parameters for the integral: 2 k_B T, Delta(T), a, E_c, phi_c
|
||||
intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(aD*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
if (par.size() == 3) { // Carrington/Manzano
|
||||
intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
} else { // Prozorov/Giannetta
|
||||
intPar.push_back(par[1]*tanh(0.2707214816*par[0]/par[1]*sqrt(par[3]*(par[0]/t-1.0)))); // DeltaD(T) : tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
intPar.push_back(par[2]);
|
||||
intPar.push_back(4.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy
|
||||
intPar.push_back(TMath::PiOver2()); // upper limit of phi-integration
|
||||
@ -1045,14 +1056,21 @@ double TGapPowerLaw::operator()(double t, const vector<double> &par) const {
|
||||
*/
|
||||
double TGapDirtySWave::operator()(double t, const vector<double> &par) const {
|
||||
|
||||
assert(par.size() == 2); // two parameters: Tc (K), Delta(0) (meV)
|
||||
|
||||
assert((par.size() == 2) || (par.size() == 3)); // two or three parameters: Tc (K), Delta(0) (meV) [a (1)]
|
||||
// 2 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205
|
||||
// 3 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67
|
||||
// and Erratum Supercond. Sci. Technol. 21 (2008) 082003
|
||||
if (t<=0.0)
|
||||
return 1.0;
|
||||
else if (t >= par[0])
|
||||
return 0.0;
|
||||
|
||||
double deltaT(tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51)));
|
||||
double deltaT = 0.0;
|
||||
if (par.size() == 2) { // Carrington/Manzano
|
||||
deltaT = tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51));
|
||||
} else { // Prozorov/Giannetta
|
||||
deltaT = tanh(0.2707214816*par[0]/par[1]*sqrt(par[2]*(par[0]/t-1.0))); // tanh(pi kB Tc / Delta(0) * sqrt()), pi kB = 0.2707214816 meV/K
|
||||
}
|
||||
|
||||
return deltaT*tanh(par[1]*deltaT/(0.172346648*t)); // Delta(T)/Delta(0)*tanh(Delta(T)/2 kB T), kB in meV/K
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user