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
|
<?xml version="1.0" encoding="UTF-8"?>
<simulation xmds-version="2">
<testing>
<xsil_file name="cross_propagation_sic_right.xsil" expected="cross_propagation_sic_right_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
</testing>
<name>cross_propagation_sic_right</name>
<author>Graham Dennis</author>
<description>
Sine cross-propagation validity tests, using the SIC integrator.
The 'u' variable checks for errors caused by poorly interpolating
dependencies. The 'v' variable checks for errors just in the
cross-propagation algorithm.
</description>
<features>
<benchmark />
<bing />
<!-- That's right, this script breaks the shackles with FFTW! -->
</features>
<geometry>
<propagation_dimension> z </propagation_dimension>
<transverse_dimensions>
<dimension name="t" lattice="128" domain="(-10, 0)" transform="none" />
</transverse_dimensions>
</geometry>
<vector name="main" type="complex">
<components>
foo
</components>
<initialisation>
<![CDATA[
foo = 0.0;
]]>
</initialisation>
</vector>
<vector name="constants" type="real">
<components>cosine</components>
<initialisation>
<![CDATA[
cosine = cos(-t);
]]>
</initialisation>
</vector>
<vector name="zerodConstants" type="real" dimensions="">
<components>bar</components>
<initialisation>
<![CDATA[
bar = M_PI;
]]>
</initialisation>
</vector>
<vector name="cross" type="complex">
<components>u v</components>
<initialisation>
<![CDATA[
u = 0.0;
v = 1.0;
]]>
</initialisation>
</vector>
<sequence>
<integrate algorithm="SIC" interval="1" steps="2">
<samples>1</samples>
<operators>
<operator kind="cross_propagation" algorithm="SI" propagation_dimension="t">
<integration_vectors>cross</integration_vectors>
<dependencies>constants zerodConstants</dependencies>
<boundary_condition kind="right">
<![CDATA[
// These are shifted back half a step because the interpretation
// of the boundary conditions for SIC is slightly different for normal
// cross-propagators. For normal cross-propagators, they start at the left edge
// for SIC, they start half a step to the left (or right).
u = sin(-t-0.5*_dt);
v = polar(1.0, -t-0.5*_dt);
]]>
</boundary_condition>
<![CDATA[
du_dt = -cosine;
dv_dt = -i*v;
]]>
</operator>
<integration_vectors>main</integration_vectors>
<![CDATA[
dfoo_dz = 0.0;
]]>
</operators>
</integrate>
</sequence>
<output format="binary">
<sampling_group initial_sample="no">
<dimension name="t" />
<moments>error_u error_v</moments>
<dependencies>cross</dependencies>
<![CDATA[
error_u = abs(u - sin(-t));
error_v = abs(v - polar(1.0, -t));
]]>
</sampling_group>
</output>
<info>
Script compiled with xpdeint version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
See http://www.xmds.org for more information.
</info>
<XSIL Name="moment_group_1">
<Param Name="n_independent">1</Param>
<Array Name="variables" Type="Text">
<Dim>3</Dim>
<Stream><Metalink Format="Text" Delimiter=" \n"/>
t error_u error_v
</Stream>
</Array>
<Array Name="data" Type="double">
<Dim>128</Dim>
<Dim>3</Dim>
<Stream><Metalink Format="Binary" UnsignedLong="uint32" precision="double" Type="Remote" Encoding="LittleEndian"/>
cross_propagation_sic_right_expected_mg0.dat
</Stream>
</Array>
</XSIL>
</simulation>
|