aboutsummaryrefslogtreecommitdiff
path: root/cavity/cavity.m
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2011-04-13 10:51:05 -0400
committerEugeniy Mikhailov <evgmik@gmail.com>2011-04-13 10:51:05 -0400
commit5fd9b5510e7a00295e6e6184a2e73953a2b182ab (patch)
tree0b792346a57aafefc5708015db45904f1ea2cdc2 /cavity/cavity.m
parent8dc8b38794731c43e5a9a7e65174370504a9e15f (diff)
downloadmode_match-5fd9b5510e7a00295e6e6184a2e73953a2b182ab.tar.gz
mode_match-5fd9b5510e7a00295e6e6184a2e73953a2b182ab.zip
moved cavity calculations to separate folder
Ignore-this: b94054824a279aa64b0da28d0cc41bf9 darcs-hash:20110413145105-067c0-44e9a3c8220b834fe364debabeac7495e1533e44
Diffstat (limited to 'cavity/cavity.m')
-rw-r--r--cavity/cavity.m21
1 files changed, 21 insertions, 0 deletions
diff --git a/cavity/cavity.m b/cavity/cavity.m
new file mode 100644
index 0000000..0e38d07
--- /dev/null
+++ b/cavity/cavity.m
@@ -0,0 +1,21 @@
+function answ=q_diff_after_cavity(q_initial)
+ # A B C D should be defined as global variables outside as well
+ # they represent elements of cavity ABCD matrix
+ global A B C D ;
+ q_diff=(A*(q_initial(1)+q_initial(2)*1i)+B)/(C*(q_initial(1)+q_initial(2)*1i) +D)-(q_initial(1)+q_initial(2)*1i) ;
+ answ=[real(q_diff), imag(q_diff)];
+endfunction
+
+
+## looks like it always return some result even if cavity is unstable ##
+function answ=find_q_at_the_mirror(q_initial_guess)
+ [q_array,info]=fsolve("q_diff_after_cavity", [real(q_initial_guess),imag(q_initial_guess)]);
+ if ( info == 1 )
+ answ=q_array(1)+q_array(2)*1i ;
+ else
+ error("unable to find waste at mirror of the cavity, may be cavity is unstable")
+ quit()
+ endif
+endfunction
+
+