1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
\select@language {english}
\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}
\contentsline {chapter}{\numberline {2}Installation}{3}{chapter.2}
\contentsline {section}{\numberline {2.1}Installers}{3}{section.2.1}
\contentsline {section}{\numberline {2.2}Linux installer instructions}{3}{section.2.2}
\contentsline {section}{\numberline {2.3}Mac OS X Installation}{4}{section.2.3}
\contentsline {subsection}{\numberline {2.3.1}Download}{4}{subsection.2.3.1}
\contentsline {subsection}{\numberline {2.3.2}Using the Mac OS X Installer}{4}{subsection.2.3.2}
\contentsline {section}{\numberline {2.4}Manual installation from source}{4}{section.2.4}
\contentsline {chapter}{\numberline {3}Quickstart Tutorial}{9}{chapter.3}
\contentsline {chapter}{\numberline {4}Worked Examples}{15}{chapter.4}
\contentsline {section}{\numberline {4.1}The nonlinear Schr\IeC {\"o}dinger equation}{15}{section.4.1}
\contentsline {section}{\numberline {4.2}Kubo Oscillator}{19}{section.4.2}
\contentsline {section}{\numberline {4.3}Fibre Noise}{21}{section.4.3}
\contentsline {section}{\numberline {4.4}Integer Dimensions}{25}{section.4.4}
\contentsline {section}{\numberline {4.5}Wigner Function}{28}{section.4.5}
\contentsline {section}{\numberline {4.6}Finding the Ground State of a BEC (continuous renormalisation)}{31}{section.4.6}
\contentsline {section}{\numberline {4.7}Finding the Ground State of a BEC again}{35}{section.4.7}
\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{39}{section.4.8}
\contentsline {chapter}{\numberline {5}Reference section}{43}{chapter.5}
\contentsline {section}{\numberline {5.1}Configuration, installation and runtime options}{43}{section.5.1}
\contentsline {section}{\numberline {5.2}Useful XML Syntax}{44}{section.5.2}
\contentsline {section}{\numberline {5.3}XMDS2 XML Schema}{44}{section.5.3}
\contentsline {section}{\numberline {5.4}XMDS2 script elements}{46}{section.5.4}
\contentsline {subsection}{\numberline {5.4.1}Simulation element}{47}{subsection.5.4.1}
\contentsline {subsection}{\numberline {5.4.2}Name element}{47}{subsection.5.4.2}
\contentsline {subsection}{\numberline {5.4.3}Author element}{47}{subsection.5.4.3}
\contentsline {subsection}{\numberline {5.4.4}Description element}{47}{subsection.5.4.4}
\contentsline {subsection}{\numberline {5.4.5}Features Elements}{47}{subsection.5.4.5}
\contentsline {subsubsection}{Arguments Element}{48}{subsubsection*.5}
\contentsline {paragraph}{Argument element}{49}{paragraph*.6}
\contentsline {subsubsection}{Auto\_vectorise element}{49}{subsubsection*.7}
\contentsline {subsubsection}{Benchmark}{49}{subsubsection*.8}
\contentsline {subsubsection}{Bing}{49}{subsubsection*.9}
\contentsline {subsubsection}{C Flags}{49}{subsubsection*.10}
\contentsline {subsubsection}{Chunked Output}{50}{subsubsection*.11}
\contentsline {subsubsection}{Diagnostics}{50}{subsubsection*.12}
\contentsline {subsubsection}{Error Check}{50}{subsubsection*.13}
\contentsline {subsubsection}{Halt\_Non\_Finite}{51}{subsubsection*.14}
\contentsline {subsubsection}{fftw element}{51}{subsubsection*.15}
\contentsline {subsubsection}{Globals}{51}{subsubsection*.16}
\contentsline {subsubsection}{OpenMP}{51}{subsubsection*.17}
\contentsline {subsubsection}{Precision}{51}{subsubsection*.18}
\contentsline {subsubsection}{Validation}{52}{subsubsection*.19}
\contentsline {subsection}{\numberline {5.4.6}Driver Element}{53}{subsection.5.4.6}
\contentsline {subsection}{\numberline {5.4.7}Geometry Element}{53}{subsection.5.4.7}
\contentsline {subsubsection}{The ``dft'' transform}{54}{subsubsection*.24}
\contentsline {subsubsection}{The ``dct'' transform}{55}{subsubsection*.25}
\contentsline {subsubsection}{The ``dst'' transform}{56}{subsubsection*.26}
\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{57}{subsubsection*.27}
\contentsline {subsubsection}{The ``spherical-bessel'' transform}{58}{subsubsection*.28}
\contentsline {subsubsection}{The ``hermite-gauss'' transform}{58}{subsubsection*.29}
\contentsline {subsection}{\numberline {5.4.8}Vector Element}{59}{subsection.5.4.8}
\contentsline {subsubsection}{The dependencies element}{61}{subsubsection*.34}
\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{62}{subsection.5.4.9}
\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{63}{subsection.5.4.10}
\contentsline {subsubsection}{Uniform noise}{64}{subsubsection*.36}
\contentsline {subsubsection}{Gaussian noise}{64}{subsubsection*.37}
\contentsline {subsubsection}{Wiener noise}{64}{subsubsection*.38}
\contentsline {subsubsection}{Poissonian noise}{65}{subsubsection*.39}
\contentsline {subsubsection}{Jump noise}{65}{subsubsection*.40}
\contentsline {subsection}{\numberline {5.4.11}Sequence Element}{65}{subsection.5.4.11}
\contentsline {subsection}{\numberline {5.4.12}Filter element}{66}{subsection.5.4.12}
\contentsline {subsection}{\numberline {5.4.13}Integrate element}{66}{subsection.5.4.13}
\contentsline {subsubsection}{Operators and operator elements}{67}{subsubsection*.42}
\contentsline {subsubsection}{Algorithms}{69}{subsubsection*.47}
\contentsline {paragraph}{SI and SIC algorithms}{69}{paragraph*.48}
\contentsline {paragraph}{Runge-Kutta algorithms}{70}{paragraph*.49}
\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{70}{paragraph*.50}
\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{71}{paragraph*.51}
\contentsline {subsubsection}{Filters element}{71}{subsubsection*.52}
\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{72}{subsection.5.4.14}
\contentsline {subsection}{\numberline {5.4.15}Output element}{72}{subsection.5.4.15}
\contentsline {subsubsection}{Sampling Group Element}{72}{subsubsection*.53}
\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{73}{subsection.5.4.16}
\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{74}{section.5.5}
\contentsline {section}{\numberline {5.6}Bulirsch-Stoer Algorithm}{74}{section.5.6}
\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{76}{section.5.7}
\contentsline {chapter}{\numberline {6}Advanced Topics}{77}{chapter.6}
\contentsline {section}{\numberline {6.1}Importing data}{77}{section.6.1}
\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{79}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}Example 1}{80}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}Example 2}{81}{subsection.6.2.2}
\contentsline {subsection}{\numberline {6.2.3}Example 3}{81}{subsection.6.2.3}
\contentsline {section}{\numberline {6.3}`Loose' \texttt {geometry\_matching\_mode}}{82}{section.6.3}
\contentsline {section}{\numberline {6.4}Dimension aliases}{82}{section.6.4}
\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{83}{chapter.7}
\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{83}{section.7.1}
\contentsline {section}{\numberline {7.2}Where can I get help?}{83}{section.7.2}
\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{83}{section.7.3}
\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{83}{section.7.4}
\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{83}{section.7.5}
\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{84}{section.7.6}
\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{84}{section.7.7}
\contentsline {section}{\numberline {7.8}Visual Editors}{84}{section.7.8}
\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{85}{chapter.8}
\contentsline {chapter}{\numberline {9}Optimisation Hints}{87}{chapter.9}
\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{87}{section.9.1}
\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{87}{subsection.9.1.1}
\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{87}{subsection.9.1.2}
\contentsline {section}{\numberline {9.2}Reduce code complexity}{87}{section.9.2}
\contentsline {subsection}{\numberline {9.2.1}Optimising with the Interaction Picture (IP) operator}{87}{subsection.9.2.1}
\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{88}{subsection.9.2.2}
\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{89}{subsection.9.2.3}
\contentsline {section}{\numberline {9.3}Compiler and library tricks}{89}{section.9.3}
\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{89}{subsection.9.3.1}
\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{89}{subsection.9.3.2}
\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{90}{subsection.9.3.3}
\contentsline {subsection}{\numberline {9.3.4}OpenMP}{90}{subsection.9.3.4}
\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{91}{subsection.9.3.5}
\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{91}{section.9.4}
\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{91}{subsection.9.4.1}
\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{91}{subsection.9.4.2}
\contentsline {chapter}{\numberline {10}xsil2graphics2}{93}{chapter.10}
\contentsline {chapter}{\numberline {11}Developer Documentation}{95}{chapter.11}
\contentsline {section}{\numberline {11.1}Test scripts}{95}{section.11.1}
\contentsline {subsection}{\numberline {11.1.1}Testing element}{96}{subsection.11.1.1}
\contentsline {subsection}{\numberline {11.1.2}command\_line element}{96}{subsection.11.1.2}
\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{96}{subsection.11.1.3}
\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{96}{subsection.11.1.4}
\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{96}{subsection.11.1.5}
\contentsline {section}{\numberline {11.2}XMDS Documentation}{96}{section.11.2}
\contentsline {section}{\numberline {11.3}How to update \texttt {XMDS2} script validator (XML schema)}{98}{section.11.3}
\contentsline {section}{\numberline {11.4}How to introduce a new integrator Stepper into the XMDS2 environment}{101}{section.11.4}
\contentsline {section}{\numberline {11.5}Logical breakdown of XMDS2 Parsing Process}{102}{section.11.5}
\contentsline {subsection}{\numberline {11.5.1}Overall process for parsing XML file in XMDS2}{104}{subsection.11.5.1}
\contentsline {subsection}{\numberline {11.5.2}parser2.py parses XML file (Sub process 3)}{107}{subsection.11.5.2}
\contentsline {subsection}{\numberline {11.5.3}Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}{110}{subsection.11.5.3}
\contentsline {subsection}{\numberline {11.5.4}Parse Top Level Sequence elements (Sub process 3.4.11)}{111}{subsection.11.5.4}
\contentsline {subsection}{\numberline {11.5.5}Parse Integrate Element (Sub process 3.4.11.2)}{112}{subsection.11.5.5}
\contentsline {section}{\numberline {11.6}Directory layout}{113}{section.11.6}
\contentsline {subsection}{\numberline {11.6.1}XMDS2's code and templates}{113}{subsection.11.6.1}
\contentsline {subsection}{\numberline {11.6.2}Support files}{114}{subsection.11.6.2}
\contentsline {chapter}{\numberline {12}Licensing}{115}{chapter.12}
\contentsline {section}{\numberline {12.1}GNU General Public License}{115}{section.12.1}
\contentsline {section}{\numberline {12.2}GNU Free Documentation License}{118}{section.12.2}
\contentsline {chapter}{\numberline {13}News}{125}{chapter.13}
\contentsline {section}{\numberline {13.1}XMDS 2.2.1 ``XMDS2 is a game of two halves'' (September 30, 2014)}{125}{section.13.1}
\contentsline {section}{\numberline {13.2}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.2}
\contentsline {section}{\numberline {13.3}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{126}{section.13.3}
\contentsline {section}{\numberline {13.4}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.4}
\contentsline {section}{\numberline {13.5}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.5}
\contentsline {section}{\numberline {13.6}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.6}
\contentsline {section}{\numberline {13.7}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.7}
\contentsline {chapter}{Index}{129}{section*.55}
|