/usr/share/doc/xmds/examples/ndparamp.xmds is in xmds 1.6.6-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <?xml version="1.0"?>
<!--Non-Degenerate Parametric Amplifier-->
<!--Simulton formation for logical switching-->
<!-- $Id: ndparamp.xmds 1526 2007-08-21 17:30:14Z paultcochrane $ -->
<!-- Copyright (C) 2000-2007 -->
<!-- -->
<!-- Code contributed by Greg Collecutt, Joseph Hope and Paul Cochrane -->
<!-- -->
<!-- This file is part of xmds. -->
<!-- -->
<!-- This program is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU General Public License -->
<!-- as published by the Free Software Foundation; either version 2 -->
<!-- of the License, or (at your option) any later version. -->
<!-- -->
<!-- This program is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!-- GNU General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU General Public License -->
<!-- along with this program; if not, write to the Free Software -->
<!-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -->
<!-- MA 02110-1301, USA. -->
<simulation>
<!-- Global system parameters and functionality -->
<name>ndparamp</name>
<author>Unknown Author</author>
<description>
Non-degenerate parametric amplifier. Simulton formation for
logical switching.
</description>
<prop_dim>z</prop_dim>
<error_check>yes</error_check>
<benchmark>yes</benchmark>
<!-- Global variables for the simulation -->
<globals>
<![CDATA[
const double e1 =350;
const double e2 =350;
const double r1 = 1;
const double r2 = 1;
const double vy1 = 0.5;
const double vy2 = -0.5;
const double yc1 = -0.2;
const double yc2 = 0.2;
const double tc1 = 0;
const double tc2 = 0;
double amp1=sqrt(e1/2/M_PI/r1/r1);
double amp2=sqrt(e2/2/M_PI/r2/r2);
]]>
</globals>
<!-- Field to be integrated over -->
<field>
<name>main</name>
<dimensions> y t </dimensions>
<lattice> 50 50 </lattice>
<domains> (-10,10) (-10,10) </domains>
<samples>1 1</samples>
<vector>
<name>main</name>
<type>complex</type>
<components>ff1 ff2 sh</components>
<fourier_space>no no</fourier_space>
<![CDATA[
ff1 = pcomplex(amp1*exp(-pow((y - yc1)/r1/2,2)
-pow((t - tc1)/r1/2,2)),+vy1*y);
ff2 = pcomplex(amp2*exp(-pow((y - yc2)/r2/2,2)
-pow((t - tc2)/r2/2,2)),+vy2*y);
sh = rcomplex(0,0);
]]>
</vector>
<vector>
<name>vc1</name>
<type>double</type>
<components>damping</components>
<fourier_space>no no</fourier_space>
<![CDATA[
damping=1.0*(1-exp(-pow((y*y + t*t)/8/8,10)));
]]>
</vector>
</field>
<!-- The sequence of integrations to perform -->
<sequence>
<integrate>
<algorithm>RK4IP</algorithm>
<interval>10</interval>
<lattice>500</lattice>
<samples>50 50</samples>
<k_operators>
<constant>yes</constant>
<operator_names>Lap1 Lap2</operator_names>
<![CDATA[
Lap1 = i*(-(ky*ky + kt*kt) - 1);
Lap2 = i*(-(ky*ky + kt*kt)/2 - 1);
]]>
</k_operators>
<vectors>main vc1</vectors>
<![CDATA[
dff1_dz = Lap1[ff1] + i*~ff2*sh - damping*ff1;
dff2_dz = Lap1[ff2] + i*~ff1*sh - damping*ff2;
dsh_dz = Lap2[sh] + i* ff1*ff2 - damping* sh;
]]>
</integrate>
</sequence>
<!-- The output to generate -->
<output format="ascii" precision="double">
<group>
<sampling>
<fourier_space> no no </fourier_space>
<lattice> 50 0 </lattice>
<moments>pow_dens</moments>
<![CDATA[
pow_dens = ~ff1*ff1 + ~ff2*ff2 + 2*~sh*sh;
]]>
</sampling>
</group>
<group>
<sampling>
<fourier_space> no no </fourier_space>
<lattice> 0 0 </lattice>
<moments>etot</moments>
<![CDATA[
etot = ~ff1*ff1 + ~ff2*ff2 + 2*~sh*sh;
]]>
</sampling>
</group>
</output>
</simulation>
|