qpms/notes/tftests.lyx

470 lines
9.8 KiB
Plaintext
Raw Permalink Normal View History

#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{unicode-math}
% Toto je trik, jimž se z fontspec získá familyname pro následující
\ExplSyntaxOn
\DeclareExpandableDocumentCommand{\getfamilyname}{m}
{
\use:c { g__fontspec_ \cs_to_str:N #1 _family }
}
\ExplSyntaxOff
% definujeme novou rodinu, jež se volá pomocí \MyCyr pro běžné použití, avšak pro účely \DeclareSymbolFont je nutno získat název pomocí getfamilyname definovaného výše
\newfontfamily\MyCyr{CMU Serif}
\DeclareSymbolFont{cyritletters}{EU1}{\getfamilyname\MyCyr}{m}{it}
\newcommand{\makecyrmathletter}[1]{%
\begingroup\lccode`a=#1\lowercase{\endgroup
\Umathcode`a}="0 \csname symcyritletters\endcsname\space #1
}
\count255="409
\loop\ifnum\count255<"44F
\advance\count255 by 1
\makecyrmathletter{\count255}
\repeat
\renewcommand{\lyxmathsym}[1]{#1}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language czech
\language_package default
\inputencoding auto
\fontencoding global
\font_roman TeX Gyre Pagella
\font_sans default
\font_typewriter default
\font_math default
\font_default_family default
\use_non_tex_fonts true
\font_sc false
\font_osf true
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format pdf4
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 10
\spacing single
\use_hyperref true
\pdf_title "Accelerating lattice mode calculations with T-matrix method"
\pdf_author "Marek Nečada"
\pdf_bookmarks true
\pdf_bookmarksnumbered false
\pdf_bookmarksopen false
\pdf_bookmarksopenlevel 1
\pdf_breaklinks false
\pdf_pdfborder false
\pdf_colorlinks false
\pdf_backref false
\pdf_pdfusetitle true
\papersize a5paper
\use_geometry true
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\leftmargin 2cm
\topmargin 2cm
\rightmargin 2cm
\bottommargin 2cm
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language german
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header
\begin_body
\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\svecp}[1]{#1}
\end_inset
\begin_inset FormulaMacro
\newcommand{\svect}[1]{#1}
\end_inset
\begin_inset FormulaMacro
\newcommand{\vect}[1]{\mathbf{#1}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\FoR}[1]{\mathfrak{#1}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\ud}{\mathrm{d}}
\end_inset
\begin_inset FormulaMacro
\newcommand{\WignerD}{\mathcal{D}}
\end_inset
\end_layout
\begin_layout Title
Testování numerické správnosti QPMS
\end_layout
\begin_layout Author
Marek Nečada
\end_layout
\begin_layout Abstract
Všeliké poznámky vztahující se k psaní testů knihovny QPMS.
\end_layout
\begin_layout Section
Operátor přesunu
\end_layout
\begin_layout Standard
Rozmohl se mi takový nešvar, že souměrné soustavy (například vůči zrcadlení
\begin_inset Formula $y\leftrightarrow-y$
\end_inset
) dávají nesouměrné výsledky např.
pro účinný průřez.
Zdá se, že k chybě dochází v některém z kroků výpočtu operátoru přesunu
\begin_inset Formula $S(b\leftarrow a)$
\end_inset
.
Ověřme jeho výpočtem v různě otočených či převrácených soustavách souřadnic.
Buďtež tedy
\begin_inset Formula $\FoR F$
\end_inset
,
\begin_inset Formula $\FoR G$
\end_inset
dvě různé soustavy souřadnic v euklidovském navzájem otočené či převrácené,
a pakliže vyjádření vektoru
\begin_inset Formula $\vect v$
\end_inset
v soustavě
\begin_inset Formula $\FoR F$
\end_inset
je
\begin_inset Formula $\vect v_{j}^{\FoR F}$
\end_inset
, pak jeho vyjádření v soustavě
\begin_inset Formula $\FoR G$
\end_inset
budiž
\begin_inset Formula $\vect v_{j}^{\FoR G}=\Psi_{ji}\vect v_{i}^{\FoR F}$
\end_inset
, kde
\begin_inset Formula $\Psi\in O(3)$
\end_inset
.
Odpovídající transformace kulového vektoru (např.
vyzařovaných kulových el.
vln) jest
\begin_inset Formula
\[
\svect A_{l'm'}^{\FoR G}=\WignerD_{l'm'\leftarrow lm}^{(\Psi)}\svect A_{lm}^{\FoR F}.
\]
\end_inset
Pakliže se jedná o kombinovaný kulový vektor-pseudovektor (jako třeba vyzařovaný
ch kulových elektrických a magnetických vln), dostáváme (OVĚŘ)
\begin_inset Formula
\[
\svecp A_{t'l'm'}^{\FoR G}=\WignerD_{t'l'm'\leftarrow tlm}^{(\Psi)}\svecp A_{tlm}^{\FoR F}=\left(\det\Psi\right)^{\left(t'-t\right)}\WignerD_{l'm'\leftarrow lm}^{(\Psi)}\svecp A_{tlm}^{\FoR F}.
\]
\end_inset
\end_layout
\begin_layout Standard
Vezměmež elementární případ dílčího rozptylu částice v bodě
\begin_inset Formula $b$
\end_inset
záření vyzařovaného částicí v bodě
\begin_inset Formula $a$
\end_inset
.
Nezávisle na soustavě:
\begin_inset Formula
\[
P^{(b)}=S_{b\leftarrow a}T^{(a)}P^{(a)}
\]
\end_inset
\end_layout
\begin_layout Standard
V soustavě
\begin_inset Formula $\FoR F$
\end_inset
:
\begin_inset Formula
\[
P^{(b)\FoR F}=S_{(b\leftarrow a)^{\FoR F}}^{\FoR F}T^{(a)\FoR F}P^{(a)\FoR F}.
\]
\end_inset
V soustavě
\begin_inset Formula $\FoR G$
\end_inset
(pro jednoduchost píši
\begin_inset Formula $\WignerD\equiv\WignerD^{(\Psi)}$
\end_inset
atd.):
\begin_inset Formula
\begin{eqnarray*}
P^{(b)\FoR G} & = & \WignerD P^{(b)\FoR F}=\WignerD S_{(b\leftarrow a)^{\FoR F}}^{\FoR F}T^{(a)\FoR F}P^{(a)\FoR F}\\
& = & \underbrace{\WignerD S_{(b-a)^{\FoR F}}^{\FoR F}\WignerD^{-1}}_{S_{(b-a)^{\FoR F}}^{\FoR G}=S_{\Psi^{-1}(b-a)^{\FoR G}}^{\FoR G}???}\underbrace{\WignerD T^{(a)\FoR F}\WignerD^{-1}}_{T^{(a)\FoR G}}\underbrace{\WignerD P^{(a)\FoR F}}_{P^{(a)\FoR G}}.
\end{eqnarray*}
\end_inset
\end_layout
\begin_layout Standard
Nemá první svorka býti
\begin_inset Formula $S_{\left(b-a\right)^{\FoR G}}^{\FoR G}$
\end_inset
?!
\end_layout
\begin_layout Standard
Test správnosti tedy může vypadat následovně:
\end_layout
\begin_layout Enumerate
Vytvoř náhodně vektor přesunu
\begin_inset Formula $\vect v$
\end_inset
(což bude naše
\begin_inset Formula $(b-a)^{\FoR G}$
\end_inset
) a transformaci
\begin_inset Formula $\Psi\in O(3)$
\end_inset
.
\end_layout
\begin_layout Enumerate
TODO
\end_layout
\begin_layout Subsection
Nalezené nesrovnalosti
\end_layout
\begin_layout Standard
Xuovy vzorce ve starší práci
\begin_inset CommandInset citation
LatexCommand cite
after "(7780)"
key "xu_calculation_1996"
\end_inset
a v novější práci
\begin_inset CommandInset citation
LatexCommand cite
after "(6365, ...)"
key "xu_efficient_1998"
\end_inset
pro koefficienty
\begin_inset Formula $B_{mn\mu\nu}$
\end_inset
se lišejí v několika ohledech:
\end_layout
\begin_layout Enumerate
Ve starší práci suma začíná na
\begin_inset Formula $q=0$
\end_inset
, kdežto v novější práci až na
\begin_inset Formula $q=1$
\end_inset
.
Ovšem členy s
\begin_inset Formula $q=0$
\end_inset
jsou identicky nulové, takže je zbytečné začínat na nule.
(Ověřeno numericky i tam jsou to přesně nuly.)
\end_layout
\begin_layout Enumerate
Ve starší práci je poslední člen sumy
\begin_inset Formula $q=\min\left(n+1,\nu,\frac{n+\nu+1-\left|\mu-m\right|}{2}\right)$
\end_inset
, zatímco v novější je to
\begin_inset Formula $q=\min\left(n,\nu,\frac{n+\nu+1-\left|\mu-m\right|}{2}\right)$
\end_inset
.
Tyto hodnoty se pochopitelně mohou lišit, například pro
\begin_inset Formula $\left(m,n,\mu,\nu\right)=\left(-1,1,-1,3\right)$
\end_inset
.
Numericky ověřeno, že „přebytečné“ členy ze starší práce jsou nulové (avšak
vypočtené hodnoty nejsou přesně nuly, něco zbude kvůli zaokrouhlovacích
chyb).
\end_layout
\begin_layout Enumerate
!!! Některé hodnoty nesedějí, například pro
\begin_inset Formula $\left(m,n,\mu,\nu\right)=\left(0,1,-1,1\right)$
\end_inset
!!! (Při numerickém srovnání Xuových vzorců
\begin_inset CommandInset citation
LatexCommand cite
after "(7780)"
key "xu_calculation_1996"
\end_inset
ve staré práci a cruzanovských vzorců
\begin_inset CommandInset citation
LatexCommand cite
after "(5961, ...)"
key "xu_efficient_1998"
\end_inset
.)
\end_layout
\begin_layout Enumerate
A nakonec samotné vzorce pro sčítance mají poněkud jiný tvar.
\end_layout
\begin_layout Subsection
Možné zdroje nepřesností
\end_layout
\begin_layout Standard
I po opravě na Cruzanovy/Xuovy vzorce dochází k tomu, že posunuté vlny mají
chybu řádově v procentech a více.
Přitom hodnota se nezlepšuje se zvýšením lMax.
Možné zdroje nepřesností, jež je třeba vyloučit:
\end_layout
\begin_layout Itemize
Odčítání podobných hodnot.
Řešení: nahradit všechny podezřelé součty Kahanovým sčítáním.
\end_layout
\begin_layout Itemize
Nepřesnosti v implementaci GSL.
Otestovat a porovnat s
\end_layout
\begin_deeper
\begin_layout Itemize
Legendreovy polynomy,
\end_layout
\begin_layout Itemize
Besselovy funkce nepřesné jak sviňa zejména u derivací besselových funkcí
prvního druhu.
Nutno zvolit jinou implementaci.
\end_layout
\end_deeper
\begin_layout Itemize
Vzorce v Xu blbě? To by bylo blbé, ale byl ještě jeden článek v jakémsi
obskurním plátku.
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
\begin_inset CommandInset bibtex
LatexCommand bibtex
bibfiles "/l/necadam1/repo/qpms/Electrodynamics"
options "plain"
\end_inset
\end_layout
\end_body
\end_document