| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When CAMFR produces results that are clearly nonphysical, here are number of things you can do to improve convergence:
set_precision(p),
where p is an integer number that defaults to 100. If you expect missing
radiation modes, increase set_precision_rad() beyond the default of 100.
set_chunk_tracing(0) at the expense
of longer run times.
set_stability(extra) to use extra row and column equilibration.
With set_stability(SVD) a pseudo inverse is calculated using singular
value decomposition.
set_degenerate(0).
set_orthogonal(0).
This will cause CAMFR to treat modes which are not exactly orthogonal due to rounding errors as non-orthogonal.
set_solver(series) and set_mode_surplus(n). This will first construct an initial estimate of the modes based on a plane wave expansion. The number of plane waves used in this expansion is n times get_N(). These estimates are subsequently refined using the full dispersion relation.
set_unstable_exp_threshold. E.g. setting it to 1e-6 will mean waveguides will be treated sooner as decoupled than when the parameter was 1e-12.
set_backward_modes(1) for extra stability.
If CAMFR crashes, make sure you haven't called free_tmps() too
soon, i.e. before you're done with the objects. Another common cause of
crashes to look out for is defining a wall or an InfStack inside
an expression. Also, if you're upgrading from a pre 1.0 version of CAMFR, make
sure all your coordinates are purely real.
Finally, we want to remind the user that in Python 1/3 = 0 rather than
.3333. This will change in Python 3.0, but if you already want such
behaviour now, include from __future__ import division at the top
of your scripts.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by root on August, 27 2008 using texi2html 1.76.