eps1::name, #name of first pert. variable
pert_type2::integer, #second perturbation type
eps2::name, #name of second pert. variable
order_eps1::integer #expansion order of first pert.
order_eps2::integ #expansion order of second pert.
order_r::integer #radial expansion order
)
Perturbation Types:
TRANS_PRIMARY translation of primary mirror in X
ROT_PRIMARY rotation of primary mirror around Y axis
TRANS_SECONDARY translation of secondary mirror in X
ROT_SECONDARY rotation of secondary mirror around Y axis
FIELD rotation of the input ray around X axis
NOTHING do nothing
Example:
verbosity := 1:
assume( Delta >= 0, psi >= 0 ):
BeamComp( TRANS_PRIMARY, Delta, ROT_SECONDARY, psi, 2, 10 );
NOTE: you MUST assume(eps1 >= 0): and assume(eps2 >= 0):
before calling BeamComp()
Next, we tell Maple that our perturbation parameters are real numbers:
>
assume( psi >= 0, Delta >= 0 ):
A verbosity level of 1 will give us textual information as to the progress of the ray trace.
Levels 2 and 3 will give increasing intermediate expression verbiage.
>
verbosity := 1:
Now we make the run. Let's look at simultaneous translation (along X direction) and
rotation (around Y axis) of the primary mirror. We'll expand to third order in the
perturbation parameters and to twelfth order in radius. The expansion to 12th order in
radius means the resulting output wavefront is good to
f
~
10
(
)
-
12
, or the picometer (or
better) regime.
AESOP Run
>
BeamComp( TRANS_PRIMARY, Delta, ROT_PRIMARY, psi, 3, 12 );
BeamComp_defs[]: Optical element definitions...
BeamComp_defs[]: ...primary mirror...
BeamComp_defs[]: ...secondary mirror...
BeamComp_defs[]: ...detector plane...
BeamComp_defs[1]: ...input beam...
BeamComp_defs[1]: primary mirror:
table([
=
flen f
=
type mirror