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 146 147 148 149 150 151
|
<?xml version="1.0" encoding="UTF-8"?>
<simulation xmds-version="2">
<testing>
<xsil_file name="cross_propagation_right.xsil" expected="cross_propagation_right_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
</testing>
<name>cross_propagation_right</name>
<author>Graham Dennis</author>
<description>
Sine cross-propagation validity tests.
The 'u' variable checks for errors caused by poorly interpolating
dependencies. The 'v' variable checks for errors just in the
cross-propagation algorithm. The 'w' variable checks for errors due
to IP cross-propagation (should be the smallest). The 'x' variable checks
for errors due to EX cross-propagation, they should be the same as 'v'.
You can choose the cross-propagation algorithm to be either 'SI' or 'RK4'.
</description>
<features>
<benchmark />
<bing />
</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">
<components>bar</components>
<initialisation>
<![CDATA[
bar = M_PI;
]]>
</initialisation>
</vector>
<vector name="cross" type="complex">
<components>u v w x</components>
<initialisation>
<![CDATA[
u = 0.0;
v = 0.0;
w = 0.0;
x = 0.0;
]]>
</initialisation>
</vector>
<sequence>
<integrate algorithm="RK9" 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[
u = sin(-t);
v = polar(1.0, -t);
w = polar(1.0, -t);
x = polar(1.0, -t);
]]>
</boundary_condition>
<operator kind="ip" constant="yes">
<operator_names>L</operator_names>
<![CDATA[
L = -i;
]]>
</operator>
<operator kind="ex" constant="yes">
<operator_names>M</operator_names>
<![CDATA[
M = -i;
]]>
</operator>
<![CDATA[
du_dt = -cosine;
dv_dt = -i*v;
dw_dt = L[w]; // this one is pretty much exact
dx_dt = M[x];
]]>
</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 error_w error_x</moments>
<dependencies>cross</dependencies>
<![CDATA[
error_u = abs(u - sin(-t));
error_v = abs(v - polar(1.0, -t));
error_w = abs(w - polar(1.0, -t));
error_x = abs(x - 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>5</Dim>
<Stream><Metalink Format="Text" Delimiter=" \n"/>
t error_u error_v error_w error_x
</Stream>
</Array>
<Array Name="data" Type="double">
<Dim>128</Dim>
<Dim>5</Dim>
<Stream><Metalink Format="Binary" UnsignedLong="uint32" precision="double" Type="Remote" Encoding="LittleEndian"/>
cross_propagation_right_expected_mg0.dat
</Stream>
</Array>
</XSIL>
</simulation>
|